Udplogbeat는 개발자가 Elasticsearch에서 색인화할 이벤트를 기록할 수 있도록 고안된 맞춤형 Beats 애플리케이션입니다. 로그 항목은 로컬 UDP 소켓으로 전송된 다음 선택한 출력을 통해 배송됩니다. 이 도구의 목적은 모든 애플리케이션이 디스크에 쓰지 않고도 로컬에서 쉽게 메시지를 기록할 수 있도록 하고 beats 프레임워크의 다양한 내장 출력 및 기능을 활용하는 것입니다.
이 폴더가 ${GOPATH}/github.com/hartfordfive
위치에 있는지 확인하세요.
이 비트는 이제 protologbeat로 대체됩니다. 이 비트는 잘 작동하지만, 일부 개선 사항과 tcp 또는 udp 중에서 선택할 수 있는 기능이 있으므로 대신 후속 비트를 사용하는 것이 좋습니다. 이 프로젝트는 더 이상 변경되지 않습니다.
udplogbeat.port
: 프로세스가 수신할 UDP 포트(기본값 = 5000)udplogbeat.max_message_size
: 허용되는 최대 메시지 크기(기본값 = 1024)udplogbeat.enable_syslog_format_only
: syslog 메시지만 허용해야 하는지 여부를 나타내는 부울 값입니다. (기본값 = false)udplogbeat.enable_json_validation
: json
형식 메시지에 JSON 스키마 유효성 검사를 적용해야 하는지 여부를 나타내는 부울 값(기본값 = false)udplogbeat.publish_failed_json_invalid
: 검증 실패 시 JSON 객체를 직렬화하여 전송해야 하는지 여부를 나타내는 부울 값입니다. 그러면 _udplogbeat_jspf
태그가 추가됩니다. (기본값 = false)udplogbeat.json_document_type_schema
: Elasticsearch 유형을 키로, 절대 로컬 스키마 파일 경로를 값으로 구성된 해시입니다.syslog 교체를 위한 샘플 구성
udplogbeat:
port: 5000
max_message_size: 4096
enable_syslog_format_only: false
JSON 형식 이벤트에 대한 스키마를 적용하는 샘플 구성
udplogbeat:
port: 5001
max_message_size: 2048
enable_json_validation: true
json_document_type_schema:
email_contact: "/etc/udplogbeat/app1_schema.json"
stock_item: "/etc/udplogbeat/app2_schema.json"
JSON 스키마는 http://jsonschema.net/의 객체에서 자동으로 생성될 수 있습니다. 포함된 샘플 스키마 app1_schema.json
및 app2_schema.json
을 예로 볼 수도 있습니다.
Rsyslog를 사용한 로깅에 대한 드롭인 대체 방법으로 이 방법을 사용하려는 경우 이 방법은 데이터를 디스크의 파일에 유지하지 않습니다.
어떤 이유로든 udplogbeat가 다운되면 구성된 UDP 포트로 전송된 메시지는 처리되지 않거나 ELK 클러스터로 전송되지 않습니다. 각 메시지가 최소한 한 번 전달된다는 100% 보장이 필요한 경우 이것이 최선의 솔루션이 아닐 수도 있습니다.
로그 이벤트의 일부 손실 가능성이 허용되는 경우 이것이 합리적인 솔루션일 수 있습니다.
udplogbeat 애플리케이션이 이벤트를 수락하려면 syslog 형식 전용 모드가 아닌 경우( 활성화_syslog_format_only: false ) 이벤트가 다음 형식으로 구성되어야 합니다.
[형식]:[ES_TYPE]:[이벤트_데이터]
json
또는 plain
. JSON으로 인코딩된 항목은 자동으로 구문 분석됩니다.예:
일반 인코딩된 이벤트:
plain:syslog:Nov 26 18:51:42 my-web-host01 dhclient: DHCPACK of 10.2.1.2 from 10.2.1.3
JSON으로 인코딩된 이벤트:
json:my_application:{"message":"This is a test JSON message", "application":"my_application", "log_level":"INFO"}
현재 날짜/시간은 각 로그 항목에 자동으로 추가됩니다.
다양한 언어로 된 클라이언트의 예를 보려면 sample_clients/
디렉터리를 참조하세요.
Udplogbeat를 실행하고 종속성도 설치하려면 다음 명령을 실행하세요.
make setup
각 주요 단계에 대해 깨끗한 Git 기록을 생성합니다. 변경 사항을 푸시하기 전에 원하는 경우 언제든지 기록을 다시 작성할 수 있습니다.
Udplogbeat를 git 저장소에 푸시하려면 다음 명령을 실행하세요.
git remote set-url origin https://github.com/hartfordfive/udplogbeat
git push origin master
추가 개발에 대해서는 비트 개발자 가이드를 확인하세요.
Udplogbeat용 바이너리를 빌드하려면 아래 명령을 실행하세요. 그러면 동일한 디렉터리에 udplogbeat라는 이름의 바이너리가 생성됩니다.
make
또는 OSX, Windows 및 Linux용 압축 바이너리를 빌드하려면 다음을 수행하세요.
./build_os_binaries.sh "[VERSION_NUMBER]"
이는 bin/
디렉토리에 배치됩니다.
디버깅 출력이 활성화된 상태에서 Udplogbeat를 실행하려면 다음을 실행하세요.
./udplogbeat -c udplogbeat.yml -e -d "*"
Udplogbeat를 테스트하려면 다음 명령을 실행하세요.
make testsuite
대안적으로:
make unit-tests
make system-tests
make integration-tests
make coverage-report
테스트 적용 범위는 ./build/coverage/
폴더에 보고됩니다.
각 비트에는 Elasticsearch의 매핑을 위한 템플릿과 etc/fields.yml
기반으로 자동 생성되는 필드에 대한 문서가 있습니다. etc/udplogbeat.template.json 및 etc/udplogbeat.asciidoc을 생성하려면
make update
Udplogbeat 소스 코드를 정리하려면 다음 명령을 실행하세요.
make fmt
make simplify
빌드 디렉터리와 생성된 아티팩트를 정리하려면 다음을 실행하세요.
make clean
git 저장소에서 Udplogbeat를 복제하려면 다음 명령을 실행하세요.
mkdir -p ${GOPATH}/github.com/hartfordfive
cd ${GOPATH}/github.com/hartfordfive
git clone https://github.com/hartfordfive/udplogbeat
추가 개발에 대해서는 비트 개발자 가이드를 확인하세요.
비트 프레임워크는 다양한 플랫폼에 맞게 비트를 크로스컴파일하고 패키징하는 도구를 제공합니다. 이를 위해서는 위에서 설명한 대로 도커와 벤더링이 필요합니다. 비트 패키지를 빌드하려면 다음 명령을 실행하세요.
make package
그러면 빌드 프로세스에 필요한 모든 이미지를 가져오고 생성합니다. 구멍을 뚫는 과정을 완료하는 데 몇 분이 걸릴 수 있습니다.
알랭 르페브르 <hartfordfive 'at' gmail.com>
Apache 라이센스 버전 2.0의 적용을 받습니다. Copyright (c) 2016 Alain Lefebvre