Thursday, June 25, 2009

Мониторинг лог-файлов с использованием Zabbix

Программный комплекс Zabbix (www.zabbix.com) - популярное средство для мониторинга компьютерных систем. Zabbix позволяет отслеживать различные системные и прикладные показатели, например, загруженность CPU и сетевых интерфейсов, скорость работы сайтов, размер пула соединений и др. При возникновении внештатных ситуаций можно настроить уведомление по различным каналам вроде емейл и SMS.

Часто возникает необходимость мониторинга лог-файлов. А именно, при возникновении ошибочной ситуации было бы полезно отсылать письмо или SMS. В версии 1.4 Zabbix нет встроенных средств, которые бы позволяли такое сделать. Мне пришлось для этого написать небольшой скрипт на bash, который потом подключить как пользовательский параметр в Zabbix. Скрипт можно скачать здесь diglog.sh

Для подключения скрипта в Zabbix нужно выполнить следующее:

1. Прописать в zabbix-agentd.conf строку для определения нового пользовательского параметра: UserParameter=diglog[*],/etc/zabbix/alert.d/diglog.sh $1 $2 После чего перезапустить zabbix-agent

2. Через веб-интерфейс Zabbix добавить новый Item. Ключ (key) у него должен быть, например, таким diglog[/home/application/application.log,/tmp/application.log.diglog] Первый параметр - это путь к лог-файлу, который нужно мониторить. Второй параметр - путь к файлу состояния, в котором будет хранится текущее положение в лог-файле. Файл состояния должен быть свой для каждого лог-файла.
Тип у Item'а должен быть Character по крайней мере для Zabbix 1.4.
После добавления Zabbix сразу же начнет выбирать по одной строчки из лог-файла.

3. Добавить триггер для обработку ошибок в лог-файле, например, с таким выражением: {ZABBIX Server:diglog[/home/application/application.log,/tmp/application.logdiglog].str(ERROR)}=1
4. Подключить к триггеру действия для отсылки уведомления об ошибке.

1 comment:

Anonymous said...
This comment has been removed by a blog administrator.