在 logstash 和 elasticsearch 之间丢失消息

Losing messages between logstash and elasticsearch

在测试 ESK 堆栈并了解其工作原理时,我的设置如下:

这是问题所在:

CS 生成一条消息。它肯定会被发送到 AN,在那里 logstash 过滤它并转发它(在回显到 logstash.stdout 之后)。 ESK 上的 logstash 实例也能看到它(并将其写入 logstash.stdout)。我可以在两个 logstash 实例中看到消息。它们匹配并被适当标记。但它们在 Kibana 中不可见。

我们的配置和来自两个日志的示例消息都以要点形式显示在这里:https://gist.github.com/wortmanb/ebd37b8bea278d06ffa058c1513ef940

这些消息会去哪里?它们不会出现在 Kibana 中——如果我过滤带有标签的消息:"puppet",在我知道这些消息正在流动的时间范围内,我基本上什么也得不到。

有调试建议吗?

问题是您正在使用日期过滤器解析日志的日期,默认情况下,它会替换 @timestamp 字段,该字段用于根据日期进行过滤。

I get basically nothing during timeframes when I know these messages are flowing.

所以消息不在它们流动的时间范围内,而是在它们被写入的时间范围内。

您可以看到“_grokparsefailure”日志,因为它们的日期未被解析,那么 @timestamp 是 Logstash 中的接收日期。

因此,您需要将时间范围更改为包含日志日期的时间范围。