时间戳仅显示logstash获取日志并保存到elasticsearch的时间。 Logstash无法知道何时创建了日志。唯一可能的方法就是知道这一点,如果它们是系统日志或你自己的日志里面有时间戳,你可能会把时间保存在日志里面。然后,您可以在logstash中创建一个过滤器,然后将其用作键。
您可以使用grok过滤器。
http://grokconstructor.appspot.com/do/match
例:
输出日志
55.3.244.1 GET /index.html 15824 0.043
过滤
%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}
Logstash配置
input { file { path => "/var/log/http.log" } } filter { grok { match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" } } }