我正在尝试复制文档中详述的elasticsearch过滤器的确切用例 https://www.elastic.co/guide/en/logstash/current/plugins-filters-elasticsearch.html
我的输出也是同一个弹性搜索服务器。
我需要计算两个事件之间的持续时间。并且结束事件在启动事件之后出现@< 10ms。
我正在观察的是logstash无法获取某些结束事件的启动事件。 我的猜测是,当logstash在ES中查找它们时,这些启动事件仍然会被缓冲。 我已经尝试在输出过滤器中将flush_size属性设置为较低的值,这只会有所帮助。当配置为低值时,“未命中”情况较少。我也尝试将它设置为1,只是为了确认这一点。还有一些退出事件无法找到他们的入场事件。
还有什么我应该寻找的,这可能会导致问题,因为将flush_size设置得太低没有帮助,也看起来不是最佳解决方案。
这是我的logstash配置:
filter{
elasticsearch {
hosts => ["ES_SERVER_IP:9200"]
index=>"logstash-filebeat-*"
query => "event:ENTRY AND id:%{[id]}"
fields => {"log-timestamp" => "started"}
sort => ["@timestamp:desc"]
}
ruby {
code => "event['processing_time'] = event['log-timestamp'] - event['started']"
}
}
output{
elasticsearch{
hosts=>["ES_SERVER_IP:9200"]
}
}