【发布时间】:2020-09-03 14:23:57
【问题描述】:
我的 Logstash 将日志发送到 ElasticSearch,在 Logstash 输出文件中,我看到新日志已发送,但在 Kibana Discover 页面中单击刷新时未显示它们。发现页面显示约 1 小时前的日志。
什么可能导致这个问题? 有什么方法可以检查记录是否在 ElasticSearch 中而不是使用 Kibana?
我的日志文件中的时间戳是这样的:[2020-09-02 13:53:07,392Z]
这是我的 logstash 使用的 pipeline.yml:
input {
#stdin {}
beats {
port => "5055"
}
# file {
}
filter {
grok {
patterns_dir => "C:\logstash-7.4.2\patterns"
match => { "message" => "^\[%{TIMESTAMP_ISO8601:timestamp}\]\[%{LOGLEVEL:level}\]\[%{Thread:thread}\]\[%{JAVACLASS:class}\](\[\d*\])? %{GREEDYDATA:msg}" }
}
if "_grokparsefailure" in [tags] {
drop{}
}
}
output {
file {
path => "C:\logstash-7.4.2\logstash_output.txt"
}
elasticsearch {
hosts => [ "localhost:9200" ]
index => "ts_services-%{+YYYY.MM.dd}"
}
}
在删除现有索引模式并创建新索引模式后,我看到了最新日志。但我认为这不是解决方案。
【问题讨论】:
-
这可能是时间戳问题。 Kibana 会解释浏览器时区中的时间戳,因此如果您的日志最后没有时区,它们可能无法正确显示。您能否展示一下您的日志文件中的时间戳以及您的 Logstash 配置?
-
这也可能是 Logstash 命名约定的问题,而不是在 Logstash/Kibana 中使用别名的方式。您能否也添加您的索引设置?
-
@Val 我在我的问题中添加了时间戳格式和 Logstash 配置。
-
@Jaycreation 在 Logstash yml 文件中的索引设置现在是我的问题。
-
刚刚发现Kibana中定义的默认索引模式月份为08:someservice-2020.08*。删除“08”后,最新的日志显示在 Kibana 中。谢谢@Jaycreation。
标签: elasticsearch logstash kibana