Как создать график в Zabbix с вычисленным полем на основе количества записей в журнале? - PullRequest
6 голосов
/ 08 сентября 2011

У меня есть настройка элемента для отслеживания фатальных ошибок, и я хочу добавить еще один элемент, чтобы он вычислял количество фатальных ошибок и отображал их.

Используя этот ключ: log ["/ d2 /httpd / logs / myDomain-error_log "," PHP Fatal "," UTF-8 ", 100]

Он правильно получает те данные, которые мне нужны, но не отображает их, я думаю, у меня естьдля подсчета записей и получения формата как целого числа, но это не работает:

count (log ["/ d2 / httpd / logs / myDomain-error_log", "PHP Fatal", "UTF-8", 100], 60)

Любые идеи о том, каким должен быть мой ключ, или как я собираюсь построить график для этих данных, чтобы увидеть, с течением времени, сколько было ошибок?

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

Ответы [ 3 ]

2 голосов
/ 18 августа 2014

Что сработало для меня:

Создать элемент для разбора какой-то строки в журнале.

  • Ключ log["C:/Logs/log.log",ERROR].
  • Тип Zabbix agent (active)
  • Тип информации Log.

Этот элемент должен отображать все строки из журнала с указанной строкой "ОШИБКА".

Во-вторых, создать вычисляемый элемент с экранированными кавычками:

  • Ключ my.special.app.error.count
  • Тип Calculated
  • Формула count("log[\"C:/Logs/log.log\",ERROR]", 60)

Это будет подсчитывать, сколько раз «ОШИБКА» повторялась в журнале в течение 60 секунд.

Теперь этот элемент может быть отображен, запущен и т. Д.

Я не совсем уверен, почему требуется анализ элемента, но без него этот вычисленный элемент не работает.

0 голосов
/ 19 октября 2018

Это будет считать совпадения регулярного выражения @NginxNotOK в новых записях журнала с момента последней проверки файла с именем, определенным в макросе {$NGINX_ACCESS_LOG_FILE}:

log.count[{$NGINX_ACCESS_LOG_FILE},@NginxNotOK,,,skip]

0 голосов
/ 28 ноября 2011

Вот шаги для мониторинга файла журнала через Zabbix.

1) Создайте командный файл, например.

//test.bat

@echo off

or /F %%x in ('findstr /r /n "ERROR" C:\test.log ^| find /C ":"') do echo %%x

2) Замените «test.log» вашим лог-файлом

3) Внести следующие изменения в файл Zabbix_agentd.config

EnableRemoteCommands=1

DisableActive=0

UnsafeUserParameters=1

UserParameter=key.in.zabbix.frontend,c:/temp/test.bat

4) C: /temp/test.bat - путь к пакетному файлу

5) Создайте элемент в Zabbix GUI со следующей информацией

Key= key.in.zabbix.frontend // This is any name but the name in GUI and abbix_agentd.config file must be same.

Type=Zabbix_Agent or Zabbix_Agent(Active)

Type of Information= Numeric(Unsigned)

Остальные все одинаковы.

6) Перезапустите Zabbix агент. И проверьте в Мониторинг-> Последнее значение.

7) Для тестирования мы можем проверить вывод на сервере также командой

Go to root->zabbix 1.8.6->src->zabbix_get

...