Rsyslog. 如何统计发送到 kafka 的消息

Rsyslog. 如何统计发送到 kafka 的消息

我正在使用 rsyslog 将数据从 nginx 发送到 kafka。管道如下所示:

nginx -> unix_socket -> rsyslog -> omkafka module -> kafka

rsyslog 的 Omkafka 模块使用 tcp 传输消息,因此我可以轻松计算发送到 kafka 的数据流字节数和 tcp 数据包数,但这些指标对我来说不够有代表性。看来我应该使用一些应用程序级解决方案来精确计算消息数。

我知道“impstats”模块能够计算 rsyslog 消息,但它不支持 omkafka 模块。

寻求任何建议来获取适合我的情况的统计数据。谢谢!

答案1

好的。最后伊普斯塔特看起来是一个很好的解决方案。

通过简单的配置它可以产生足够的信息,因为 omkafka 默认将其计数器添加到全局计数器中。

配置:

module(
  load="impstats"
  interval="10"             # how often to generate stats
  resetCounters="on"        # to get deltas (e.g. # of messages submitted in the last 10 seconds)
  log.file="/var/log/impstats"     # file to write those stats to
  log.syslog="off"          # don't send stats through the normal processing pipeline. More on that in a bit
)

我的管道的输出:

Tue Oct  4 12:40:22 2016: imuxsock: origin=imuxsock submitted=12942 ratelimit.discarded=0 ratelimit.numratelimiters=0 
Tue Oct  4 12:40:22 2016: omkafka: submitted=12942 maxoutqsize=1434 failures=0 topicdynacache.skipped=0 topicdynacache.miss=0 topicdynacache.evicted=0 

相关内容