为什么elasticsearch有时不显示logstash发送的最新日志?

tgabmvqs  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(1)|浏览(366)

我的logstash将日志发送到elasticsearch,在logstash输出文件中,我看到发送了新的日志,但在kibana discover页面中单击refresh时,它们不会显示。发现页面显示~1小时前的日志。
是什么导致了这个问题?有没有什么方法可以检查一个记录是否在elasticsearch中而不是使用kibana?
我的日志文件中的时间戳如下:[2020-09-02 13:53:07392Z]
这是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}"
    }
}

在我删除了现有的索引模式并创建了一个新的索引模式之后,我看到了最新的日志。但我不认为这是解决办法。

9cbw7uwe

9cbw7uwe1#

关注评论中的讨论。这里的问题很常见。
kibana的索引模式非常具体:

ts_services-2020-08*

所以9月份的数据被kibana忽略了,即使它们在elasticsearch中。
更改kibana索引模式将解决以下问题:

ts_services*

但您必须更正所有自定义的可视化效果。

相关问题