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