如何管理Graylog正确解析我的JSON日志?

时间:2018-10-22 19:11:01

标签: ruby-on-rails filebeat graylog2 graylog

我有一个Rails应用,我正在尝试将日志记录配置为graylog。管道包括以下步骤: 1)通过SemanticLogger gem将日志以JSON格式写入文件。日志消息由标头信息(第一级标签)和有效载荷组成,该有效载荷具有多个层次结构:

test$sim <- rowSums(test[, 1:5], na.rm = T) >= 1 | test[, 6] == 1

2)Filebeat服务正在读取文件并将其发送到Graylog。

并且Graylog无法正确解析有效内容:

enter image description here

如您所见-键在一个字符串中以“:”串联,方式为:key1 = value1:key2 = value2。这不是我所期望的。如果我可以管理Graylog将有效负载的内容解析为名称为有效负载.key1,payload.key2等的不同字段(这样我就可以在这些字段上执行搜索),将是完美的

ps:我的日志数据是异构的,即有效载荷的内容取决于产生它的功能,因此我希望会有大量不同的字段,例如“ payload.xxxxx”-可以吗? >

1 个答案:

答案 0 :(得分:1)

这并不是filebeat问题,因为filebeat仅以原始JSON格式(如果需要,压缩)发送日志。

从Graylog网站上:http://docs.graylog.org/en/2.4/pages/extractors.html

使用JSON提取器 从1.2版开始,Graylog还支持从以JSON格式发送的消息中提取数据。

  

使用JSON提取器很容易:一旦收到Graylog输入   JSON格式的邮件,您可以通过以下方式创建提取器:   系统->输入并单击管理提取器按钮   输入。接下来,您需要加载一条消息以从中提取数据,并且   选择包含JSON文档的字段。下页让   您添加了一些额外的信息来告诉Graylog应该如何提取   信息。

这应该可以帮助您。