Как создать график в Zabbix с вычисляемым полем на основе количества записей журнала?

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

Используя этот ключ: 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)

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

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


person Kevin Korb    schedule 08.09.2011    source источник
comment
Получили ли вы какое-либо решение для вашей проблемы. Я также изо всех сил пытаюсь создать график из данных мониторинга файла журнала. Все работает нормально, показывает данные в истории, запускает триггеры и действия. Но когда я добавляю тот же элемент на график, данные не отображаются. Некоторые люди даже говорили мне, что вы можете создать новый шаблон orabbix для мониторинга файла журнала с помощью zabbix. Но я понятия не имею. Не могли бы вы поделиться своим решением. Большое спасибо.   -  person R. Rahul    schedule 17.11.2011
comment
Теперь я очень хорошо разобрался с шаблонами... с этим ничего нельзя сделать.....пожалуйста, помогите мне в создании графика из данных мониторинга файла журнала   -  person R. Rahul    schedule 23.11.2011


Ответы (3)


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

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

  • Ключ 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 секунд.

Теперь этот элемент можно отображать на графике, запускать и т. д.

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

person Algirdas    schedule 18.08.2014
comment
Это не сработало. Я изменил файл журнала следующим образом: log[/var/log/nginx/access.log,HTTP], и он сказал: не поддерживается. Доступно только как активная проверка - person The One; 15.09.2017
comment
Accessible only as active check — это другая проблема с конфигурацией, попробуйте некоторые предложения из здесь (например, установка имени хоста в файле zabbix и т. д.) - person Algirdas; 16.09.2017

Вот шаги для мониторинга файла журнала через 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 со следующими деталями.

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. И проверьте в Monitoring->Latest Value.

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

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

person R. Rahul    schedule 28.11.2011
comment
Я заметил, что вы использовали файл журнала на диске C Windows. Что с журналом линукса? Тот же скрипт подойдет? @echo off или /F %%x in ('findstr /r /n ERROR var/log/nginx/access.log ^| find /var/log/nginx :') do echo %%x - person The One; 15.09.2017

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

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

person user3132194    schedule 19.10.2018