Udplogbeat 是一個自訂 Beats 應用程序,旨在允許開發人員記錄要在 Elasticsearch 中建立索引的事件。日誌條目被傳送到本機 UDP 套接字,然後透過選定的輸出發送出去。該工具的預期目的是允許任何應用程式輕鬆地在本地記錄訊息,而無需寫入磁碟並利用beats框架的各種內建輸出和功能。
確保此資料夾位於以下位置: ${GOPATH}/github.com/hartfordfive
此節拍現在已被 protologbeat 取代。儘管此節拍應該可以正常工作,但建議您使用它的後繼器,因為它有一些改進,並且能夠在 tcp 或 udp 之間進行選擇。將不再對該項目進行更改。
udplogbeat.port
:進程將偵聽的 UDP 連接埠(預設 = 5000)udplogbeat.max_message_size
:接受的最大訊息大小(預設 = 1024)udplogbeat.enable_syslog_format_only
:指示是否僅接受系統日誌訊息的布林值。 (預設=假)udplogbeat.enable_json_validation
:布林值,指示是否應對json
格式訊息套用 JSON 模式驗證(預設值 = false)udplogbeat.publish_failed_json_invalid
:布林值,指示在驗證失敗時是否應序列化 JSON 物件。這將會新增_udplogbeat_jspf
標籤。 (預設=假)udplogbeat.json_document_type_schema
:由 Elasticsearch 類型作為鍵、絕對本機模式檔案路徑作為值所組成的雜湊。系統日誌替換的範例配置
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 格式模式 ( enable_syslog_format_only: false ) 時,它們必須採用以下格式建構:
[格式]:[ES_TYPE]:[EVENT_DATA]
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
如需進一步開發,請查看beat開發者指南。
若要建置 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/
中報告
每個beat都有一個用於在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
如需進一步開發,請查看beat開發者指南。
Beat 框架提供了不同平台交叉編譯和打包 Beat 的工具。這需要如上所述的 docker 和供應商。要建立節拍包,請執行以下命令:
make package
這將獲取並創建構建過程所需的所有圖像。完成打孔過程可能需要幾分鐘。
Alain Lefebvre <hartford Five 'at' gmail.com>
受 Apache 授權 2.0 版保護 版權所有 (c) 2016 Alain Lefebvre