我正在将日志回填到 Elasticsearch 中。因此,为了按时间戳中的日志日期创建索引,我使用date
像这样过滤:
date {
"locale" => "en"
match => ["timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss", "ISO8601"]
target => "@timestamp"
}
我正在使用 syslog 中的日志,并且 syslog 时间戳格式没有年份:
# Syslog Dates: Month Day HH:MM:SS
SYSLOGTIMESTAMP %{MONTH} +%{MONTHDAY} %{TIME}
所以使用日期过滤器后,创建的索引就像logstash-2015.12.26
如果我正在阅读 2014 年 12 月 26 日的日志。因此,由于日志中没有时间戳,因此它默认选择当前年份。
知道如何制作正确的索引吗?
由于 Joda Time 解析的字符串中缺少年份,Logstash 目前默认为 Logstash 进程启动的年份。看github.com/logstash-plugins/logstash-filter-date 错误 #3。作为临时解决方法,添加临时过滤器以将正确的年份 (2014) 附加到时间戳字段的末尾并调整您的日期过滤器模式包括 YYYY。
filter {
mutate {
replace => ["timestamp", "%{timestamp} 2014"]
}
date {
locale => "en"
match => ["timestamp",
"MMM d HH:mm:ss YYYY",
"MMM dd HH:mm:ss YYYY",
"ISO8601"]
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)