【问题标题】:How to parse an internal json part from log4j record using egrok如何使用 egrok 从 log4j 记录中解析内部 json 部分
【发布时间】:2017-07-02 08:56:14
【问题描述】:

这是我的输入 log4j 行由 filebeat 提供

2017-07-02 08:46:28,702 INFO  com.company.service.EventService - Consumed event: {
  "details": {
    "A": 10,
    "B": "EUR"
  },
  "eventId": "45YHJAIBpPeExHtskhqRbTDI9oEk2wPl",
  "eventArrivalTime": "2017-07-02T08:46:28.700Z"
}

我设法删除了2017-07-02 08:46:28,702 INFO part(将其映射到字段:msgbody),现在我尝试将其中的 json 部分解析为 kibana 上的字段。

我想将事件内的字段索引到 kibana:{..} 例如 eventId 详细信息

这是我到目前为止所做的,我不知道如何提取这个 json

filter {
  if [type] == "log" {
    grok {
       match => {
        "message" => "%{TIMESTAMP_ISO8601:logdate} %{LOGLEVEL:loglevel} %{GREEDYDATA:msgbody}"
      }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => ["logdate", "yyyy-MM-dd HH:mm:ss,SSS", "ISO8601"]
    }
  }
}

谢谢

【问题讨论】:

  • 请查看更新后的答案

标签: logstash elastic-stack logstash-grok filebeat kibana-5


【解决方案1】:

msgbody 在您的过滤器中使用GREEDYDATA 进行映射,这与新行不匹配。这意味着您的 msgbody 将仅匹配 com.company.service.EventService - Consumed event: {

您需要将INFO}, 之后的所有内容映射到一个单独的字段中,可以使用匹配,

(?m)%{DATA:msgbody}\},

它会匹配,

"msgbody": [
    [
      "  com.company.service.EventService - Consumed event: {\n  "details": {\n    "A": 10,\n    "B": "EUR"\n  "
    ]
  ]

剩下的数据,即

  "eventId": "45YHJAIBpPeExHtskhqRbTDI9oEk2wPl",
  "eventArrivalTime": "2017-07-02T08:46:28.700Z"

需要在自己的块中进行匹配,以便随后可以使用json 过滤器对其进行过滤,

%{TIMESTAMP_ISO8601:logdate} %{LOGLEVEL:loglevel}(?m)%{DATA:msgbody}\},%{GREEDYDATA:json}

这会产生,

  "msgbody": [
    [
      "  com.company.service.EventService - Consumed event: {\n  "details": {\n    "A": 10,\n    "B": "EUR"\n  "
    ]
  ],
  "json": [
    [
      "\n  "eventId": "45YHJAIBpPeExHtskhqRbTDI9oEk2wPl",\n  "eventArrivalTime": "2017-07-02T08:46:28.700Z"\n}"
    ]
  ]

现在我们将 json 字段放入一个名为 json 的新字段中。

然后可以按如下方式对其应用json过滤器,

json{
    source => "json"
    target => "parsed_json"
}

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多