Назад | Перейти на главную страницу

Rsyslog. Как подсчитать сообщения, отправленные на кафку

Я использую rsyslog для отправки данных из nginx в kafka. Конвейер выглядит следующим образом:

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

Модуль Omkafka для rsyslog использует tcp для передачи сообщений, поэтому я могу легко подсчитать байты потока данных, отправленных в kafka, и количество пакетов tcp, но эти метрики для меня недостаточно репрезентативны. Похоже, мне следует использовать какое-то решение на уровне приложения для точного подсчета сообщений.

Я знаю, что модуль impstats может подсчитывать сообщения rsyslog, но он не поддерживает модуль omkafka.

Ищу совета, чтобы собрать статистику для моего случая. Спасибо!

Хорошо. Ну наконец то impstat похоже хорошее решение.

При простой конфигурации он выдает достаточно информации, так как омкафка по умолчанию добавляет свои счетчики в глобальные счетчики.

Конфиг:

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