如何测量 filebeat 已消耗和 logstash 已处理的日志事件数

how to measure number of log events filebeat has consumed and logstash has processed

我有一个 ELK 堆栈如下:
FileBeat --> Redis --> Logstash --> ES --> Kibana。

我在 Logstash 中使用 metrics 插件,但我无法理解它。

如何测量在给定时间点从日志中读取并通过 filebeat 发送到 redis 的事件数以及 logstash 处理的事件数?

input
     generator {
        type => "generated"
      }
filter

     metrics {
        meter => "events"
        add_tag => "metric"
      }
output

    if "metric" in [tags] {
        stdout {
          codec => line {
            format => "rate: %{[events][rate_5m]}"
          }
        }
      }

我可以看到输出为

rate: some number

doc 解释了您看到的数字。

"[thing][rate_5m]" - the per-second event rate in a 5-minute sliding window

所以您看到的数字是过去 5 分钟内每秒发生的事件数。

但解决方案与您的解决方案相去不远:您必须使用 [events][count],就像 [events][rate_5m] 一样。这将为您提供过去 5 分钟的事件数(可以使用 flush_interval 设置进行更改)