我有Nginx作为loadbalancer,它在时间戳中生成没有年份和第二个信息的日志。其中一个日志是
08-10 09:28 root ERROR Error connecting to CRS REST API : [Errno 111] Connection refused
Error connecting to CRS REST API : [Errno 111] Connection refused
这种模式是:
(?m)%{MONTHNUM:monthNum}\-%{MONTHDAY:monthDay}\s*%{HOUR:hour}:%{MINUTE:minute}\s*%{WORD}\s*%{LOGLEVEL_CUSTOM:severity}\s*%{GREEDYDATA:messagePayload}
虽然我知道Logstash可以用当前年份来完成年份信息,这对我来说很好,因为日志不是很老并且每天收集,但是秒数部分很重要。我不知道该怎么办? 另外一件事,我使用date过滤器将其转换为时间戳以存储在Elasticsearch中,如下所示:
mutate {
add_field => { "timestamp" => "%{monthDay}%{monthNum} %{hour}:{minute}" }
}
date {
match => ["timestamp","ddMM HH:mm", "YYYY-MM-dd HH:mm:ss,SSS", "YYYY-MM-dd HH:mm:ss", "YYYY/MM/dd HH:mm:ss", "dd/MMM/yyyy:HH:mm:ss Z", "ddMMYYYY HH:mm:ss", "ISO8601", "YYYY-MM-dd HH:mm:ss,SSSSSS", "YYYY-MM-dd HH:mm:ss.SSS", "YYYY-MM-dd HH:mm:ss.SSSSSS"]
locale => "en"
timezone => "UTC"
target => "@timestamp"
}
它没有正确解析它并且Elasticsearch中的时间戳不相同,而不是日期和时间。 任何线索?
答案 0 :(得分:0)