【发布时间】:2018-10-22 19:11:00
【问题描述】:
我有一个 Rails 应用程序,我正在尝试将日志记录配置到 graylog。管道包括以下步骤: 1) 日志由 SemanticLogger gem 以 JSON 格式写入文件。日志消息由标头信息(第一级标签)和具有多个层次结构的有效负载组成:
{
"tag": "mortgage",
"app": "sneakers",
"pid": 3448,
"env": "production",
"host": "thesaurus-mortgage",
"thread": "91090300",
"level": "info",
"name": "Sneakers",
"payload": {
"class": "EgrnListenerWorker",
"method": "work",
"json": {
"resource": "kontur",
"action": "request_egrn_done",
"system_code": "thesaurus",
"id": 35883717,
"project_id": "mortgage",
"bank_id": "ab",
"params": {
"egrn": {
"zip": "rosreestr/kontur/kontur_4288_2018-10-11_021848.zip",
"pdf": "rosreestr/kontur/kontur_4288_2018-10-11_021848.pdf",
"xml": "rosreestr/kontur/kontur_4288_2018-10-11_021848.xml"
},
"code": "SUCCESS"
}
},
"valid_json": true
},
"created_at": "2018-10-11T17:44:58.262+00:00"
}
2) Filebeat 服务正在读取文件并发送到 Graylog。
而graylog无法正确解析payload内容:
如您所见 - 键在一个字符串中以这样的方式与“:”连接:key1=value1:key2=value2。这不是我所期望的。如果我可以管理 graylog 将有效负载的内容解析为名称为 payload.key1、payload.key2 等的不同字段(这样我就可以对这些字段执行搜索)
ps:我的日志数据是异构的,即负载内容取决于生成它的功能,所以我预计会有大量不同的字段类型“payload.xxxxx” - 可以吗?
【问题讨论】:
标签: ruby-on-rails filebeat graylog2 graylog