如何在elasticsearch 5.x和Filebeat

时间:2017-05-15 20:17:12

标签: elasticsearch timestamp filebeat

我正在使用elasticsearch 5.x和Filebeat,想知道是否有一种直接在filebeat中解析日期(时间戳)的方法(不想使用logstash)。我正在使用json.keys_under_root: true并且效果很好,但问题是时间戳(在我们身上)被识别为字符串。所有其他字段都被自动识别为正确的类型,只有这一个不是。 enter image description here

如何将其映射为日期?

1 个答案:

答案 0 :(得分:4)

您可以将Filebeat与ES Ingest Node功能一起使用来解析您的timestamp字段,并将该值应用于@timestamp字段。

您可以在Elasticsearch中设置一个简单的管道,将date应用于传入的事件。

PUT _ingest/pipeline/my-pipeline
{
  "description" : "parse timestamp and update @timestamp",
  "processors" : [
    {
      "date" : {
        "field" : "timestamp",
        "target_field" : "@timestamp"
      }
    },
    {
      "remove": {
        "field": "timestamp"
      }
    }
  ],
  "on_failure": [
    {
      "set": {
        "field": "error.message",
        "value": "{{ _ingest.on_failure_message }}"
      }
    }
  ]
}

然后在Filebeat configure中使用elasticsearch输出将数据推送到新管道。

output.elasticsearch:
  hosts: ["http://localhost:9200"]
  pipeline: my-pipeline