Previous Entry Share Next Entry
Мониторинг логов с помощью Zabbix
lykoz
Дано: Zabbix 1.8.1, n серверов, Zabbix агенты в режиме Active Checks (важно!)
Необходимо: мониторить лог ошибок php на предмет Fatal Error и уведомлять разработчиков текстом ошибки по e-mail и/или jabber.

С минимальными модификациями способ применим к логам любых сервисов.
Zabbix Server и Zabbix Agent уже настроены на мониторинг стандартных параметров серверов и сервисов. Т.е. это инструкция не для настройки с "нуля".

1. В Configuration -> Hosts создаем шаблон Template_Log и определяем его в группу.

Zabbix Log Template

2. В этом шаблоне создаем Item.
Host: Template_Log
Description: phpError
Type: Zabbix Agent (active)
Key: log["/var/log/php/php-error.log","PHP Fatal error","UTF-8",100].
Первый параметр указывает местоположение лога, конечно на всех серверах он должен быть одинаковый. Второй параметр - регулярное выражение для шаблона, нам же нужны записи определенного типа, плюс в купе с четвертым параметром (максимальное кол-во строк в секунду для передачи серверу) снижает нагрузку на сеть и сервер мониторинга.
Type of information: log
Подробнее о параметрах мониторинга логов.

Zabbix Log Item

3. Создаем Trigger
Name: PHP Fatal Error on {HOSTNAME}
Expression: {Template_Log:log["/var/log/php/php-error.log","PHP Fatal error","UTF-8",100].str(Fatal)}=1&{Template_Log:log["/var/log/php/php-error.log","PHP Fatal error","UTF-8",100].nodata(30)}=0
Триггер срабатывает при наличии строки Fatal в пересылаемых данных и отключается через 30 секунд отсутствия новых данных. Подробнее о выражениях триггера.
Event generation: Normal + Multiple TRUE events

Zabbix Log Trigger

Уведомления об ошибках мы уже получаем. Как получить текст ошибки?
4. В Configuration -> Actions создаем новое действие
Name: Log_Error
Event source: Triggers
В Default message дописываем: {ITEM.LASTVALUE}
Action conditions: Host template = "Template_Log"

Zabbix Log Action

PROFIT!
Исправления и дополнения принимаются.

  • 1
Спасибо за вводную, попытался приспособить это к ошибкам Апача.
Сервер удалённого агента видит, агент активный. Но ничего не мониторится пока.

Темплейт/итем/триггер создал, хосту темплейт навязал.
Ничего не приходит :(

ключ в итеме: log["/var/log/apache2/error.log","error","UTF-8",100]

лог апача стандартный:

[Thu Nov 04 16:16:31 2010] [error] [client 82.207.42.57] File does not exist: /var/www/5
[Thu Nov 04 16:16:31 2010] [error] [client 82.207.42.57] File does not exist: /var/www/5
[Thu Nov 04 16:16:32 2010] [error] [client 82.207.42.57] File does not exist: /var/www/5

О какой предварительной настройке идёт речь ?
Чего не хватает в моей стации, спасибо :)

кстати выражение в триггере такое:

{Template_Apache_Logs:log["/var/log/apache2/error.log","error","UTF-8",100].str(error)}=1&{Template_Apache_Logs:log["/var/log/apache2/error.log","error","UTF-8",100].nodata(30)}=0

  • 1
?

Log in

No account? Create an account