json - NXLog:Json 输入到 GELF UDP 输出

标签 json graylog2 nxlog gelf

我们有一个设置,其中程序以遵循 GELF 规范的格式记录到 .Json 文件。

目前这是使用 HTTP 发送到 Graylog2 服务器。这行得通,但由于 HTTP 的性质,存在明显的延迟,如果有大量日志消息,这就是一个问题。

我想将 HTTP 传输方法更改为 UDP,以便“即发即弃”。

日志是这样写入文件的:

{ "short_message": "<message>", "host": "<host>", "full_message": "<message>", "_extraField1": "<value>", "_extraField2": "<value>", "_extraField3": "<value>" }

当前配置是这样的:

<Extension json>
    Module xm_json
</Extension>

<Input jsonLogs>
    Module        im_file
    File          '<File Location>'
    PollInterval  5
    SavePos       True
    ReadFromLast  True
    Recursive     False
    RenameCheck   False
    CloseWhenIdle True
</Input>

<Output udp>
    Module        om_udp
    Host          <IP>
    Port          <Port>
    OutputType    GELF_UDP
</Output>

使用此设置,部分 json 日志消息将添加到 GELF 消息的“消息”字段,并发送到服务器。

我已经尝试添加行 `Exec parse_json(),但这只会导致除 short_message 和 full_message 之外的所有字段都被排除。

我不确定如何正确配置它。即使只是将完整的日志消息添加到一个字段也是可取的,因为我可以在服务器端添加一个提取器。

最佳答案

您需要 Exec parse_json() 以便 GELF_UDP 生成正确的输出,但不清楚 messagefull/短消息

您可以尝试的另一种选择是通过 om_tcp 发送日志。在这种情况下,您不需要使用 OutputType GELF_TCP,因为它已经以这种方式格式化。

关于json - NXLog:Json 输入到 GELF UDP 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48165862/

相关文章:

ssl - NxLogs 到 Fluentd/SSL?

ssl - 无法通过 SSL 将 nxlog 获取到 logstash

jquery - Rails 无法正确解码来自 jQuery 的 JSON(数组变成带有整数键的散列)

javascript - 使用 javascript/jQuery 构建 JSON 字符串

logging - 如何使用 Logstash 处理多个异构输入?

logging - Graylog2 和 Kibana 的主要区别是什么

json - 如何获取带有对象列表的文档? -消防站

json - 使用 jq + bash 将 json 转换为 ini 文件

graylog2 - 自定义 GrayLog2 GELF View

Graylog Collector Sidecar 作为非 root