【问题标题】:How could I manage Graylog to parse my JSON logs correctly?如何管理 Graylog 以正确解析我的 JSON 日志?
【发布时间】: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


    【解决方案1】:

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

    来自 Graylog 网站:http://docs.graylog.org/en/2.4/pages/extractors.html

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

    使用 JSON 提取器很容易:一旦接收到 Graylog 输入 JSON 格式的消息,您可以通过转到 System -> Inputs 并点击 Manage extractors 按钮 输入。接下来,您需要加载一条消息以从中提取数据,并且 选择包含 JSON 文档的字段。下面的页面让 你添加一些额外的信息来告诉 Graylog 它应该如何提取 信息。

    这应该能让你继续前进。

    【讨论】:

    • 不,提取器不起作用,我已经尝试过了,我认为原因是在提取器到位的那一刻,有效载荷密钥的 json 格式被破坏了。所以它无法从中提取数据
    • 要求 graylog 开发人员修复损坏的连接器不是正确的方法吗? :)
    • 他们需要帮助才能做到这一点)首先,我们需要找出我们链的损坏单元 - 我的 json 日志文件或 filebeat 或 graylog 本身?目前所有投票都反对后者
    猜你喜欢
    • 2022-06-17
    • 1970-01-01
    • 2022-11-10
    • 2011-09-24
    • 2018-10-09
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 2022-11-21
    相关资源
    最近更新 更多