我们有一个程序以遵循GELF规范的格式登录到.Json文件的设置。
目前,这是发送到一个Graylog2服务器使用HTTP。这是可行的,但是由于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消息的" message“字段中,并发送到服务器。
我尝试添加` `Exec parse_json()行,但这只会导致排除除short_message和full_message之外的所有字段。
我不知道如何正确配置它。即使将完整的日志消息添加到字段中也更好,因为我可以在服务器端添加提取器。
发布于 2018-01-10 08:34:32
您需要Exec parse_json()才能使GELF_UDP生成正确的输出,但不清楚message和full/short_message的确切问题是什么。
您可以尝试的另一个选项是,只需通过om_tcp发送日志。在这种情况下,您不需要使用OutputType GELF_TCP,因为它已经以这种方式格式化了。
https://stackoverflow.com/questions/48165862
复制相似问题