gpt4 book ai didi

elasticsearch - 没有年份的系统日志时间戳?

转载 作者:行者123 更新时间:2023-11-29 02:46:36 25 4
gpt4 key购买 nike

我正在将我的日志回填到 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 bug #3 .作为临时解决方法,添加一个临时过滤器以将正确的年份 (2014) 附加到时间戳字段的末尾并调整您的 date filter包含 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"]
}
}

关于elasticsearch - 没有年份的系统日志时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29384754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com