在kibana中将filebeat消息字段拆分为多个字段

m528fe3b  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(1421)

我有以下数据 message 由filebeat运送到elasticseatch的字段。我不是在用logstash

2020-09-20 15:44:23 ::1 get / - 80 - ::1 mozilla/5.0+(windows+nt+10.0;+win64;+x64)+windows/537.36+(khtml,+like+gecko)+chrome/85.0.4183.102+chrome/537.36 - 200 0 0 10

我想在每个空间分割上述数据,并将它们分配给不同的字段,新字段应反映在kibana发现门户中。
我们怎么做?
我曾尝试在kibana中使用脚本字段,但我无法实现它,因为我不知道脚本字段查询。

igetnqfo

igetnqfo1#

您可以在elasticsearch中设置摄取管道,并使用grok处理器解析 message 字段转换为多个字段。参考文献:https://www.elastic.co/guide/en/elasticsearch/reference/master/grok-processor.html
例如,根据您的日志:

POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "description" : "...",
    "processors": [
      {
        "grok": {
          "field": "message",
          "patterns": ["%{DATESTAMP:timestamp} %{DATA} %{WORD:request.method} %{DATA:request.url} - %{NUMBER:port} %{GREEDYDATA:useragent} - %{NUMBER:response.status_code} %{GREEDYDATA}"]
        }
      }
    ]
  },
  "docs":[
    {
      "_source": {
        "message": "2020-09-20 15:44:23 ::1 get / - 80 - ::1 mozilla/5.0+(windows+nt+10.0;+win64;+x64)+windows/537.36+(khtml,+like+gecko)+chrome/85.0.4183.102+chrome/537.36 - 200 0 0 10"
      }
    }
  ]
}

相关问题