Zabbix можно использовать для централизованного мониторинга и анализа файлов журналов с/без поддержки ротации журналов.
Можно использовать оповещения для предупреждения пользователей, когда файл журнала содержит конкретные строки или шаблоны строк.
Для наблюдения за файлом журнала у вас должно быть:
Максимальный размер наблюдаемого файла журнала зависит от поддержки файлов большого объема.
Убедитесь, что в файле конфигурации агента:
Настройте элемент данных для мониторинга журнала:
Специально для элементов данных наблюдения за журналами вы должны указать:
Тип | Здесь выберите Zabbix агент (активный). |
Ключ | Используйте один из представленных ключей элементов данных: log[] или logrt[] Эти два ключа элементов данных позволяют мониторить файлы журналов и фильтровать их содержимое в соответствии с регулярным выражением, если задано. Например: log[/var/log/syslog,error] . Убедитесь, что этот файл имеет права на чтения для 'zabbix' пользователя, в противном случае статус элемента данных будет изменён на 'неподдерживается'.Для получения более подробных сведений по этим ключам элементов данных и их параметрам смотрите раздел Zabbix агент элемента данных. |
Тип информации | Здесь выберите Журнал (лог) .Если используется опциональный параметр вывод , вы можете выбрать подходящий тип информации, отличный от Журнал (лог) .Обратите внимание, что выбор не журнального типа информации приведет к потере локального штампа времени. |
Интервал обновления (в сек) | Этот параметр задает как часто Zabbix агент будет проверять наличие любых изменений в файле журнала. Указав этот параметр равным 1 секунде, вы можете быть уверенными, что получите новые записи как можно скорее. |
Формат времени журнала | В этом поле вы можете опционально задать шаблон для анализа штампа времени строки журнала. Если оставить пустым, штамп времени не будет анализироваться. Поддерживаемые значения: * y: Год (0001-9999) * M: Месяц (01-12) * d: День (01-31) * h: Час (00-23) * m: Минута (00-59) * s: Секунда (00-59) Например, рассмотрим следующую строку из файла журнала Zabbix агента: " 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211)." Она начинается шестью символами обозначающими PID, далее следует дата, время, и остальная часть строки. Форматом времени журнала для этой строки является "pppppp:yyyyMMdd:hhmmss". Обратите внимание, что символы "p" и ":" являются лишь заменителями и могут быть чем угодно, за исключением "yMdhms". |
logrt[]
и Zabbix агент следит за наиболее новым из них и этот более новый файл журнал удаляется, предупрежающиее сообщение будет записано "there are no files matching "<regexp mask>" in "<directory>"
. Zabbix агент игнорирует файлы журналы с временем изменения меньше чем последнее время модификации полученное агентом во время проверки элемента данных logrt[]
.log[]
или logrt[]
имеет Интервал обновления 1 секунда, по умолчанию агент будет анализировать не более чем 400 строк файла журнала и будет отправлять не более чем 80 совпавших записей Zabbix серверу за одну проверку. Увеличением параметра MaxLinesPerSecond в файле конфигурации агента или указанием параметра макс. кол-во строк в ключе элемента данных, лимит можно увеличить вплоть до 4000 проанализированных записей в журнале и 1000 совпадающих записей для отправки Zabbix серверу за одну проверку. Если Интервал обновления указан значением в 2 секунды, лимиты для одной проверки могут быть увеличены в два раза больше, чем для Интервала обновления в 1 секунду.logrt[]
становится НЕПОДДЕРЖИВАЕМЫМ, в случае если папка не существует где файл журнала должен был бы находиться.logrt[]
не переводит его в состояние НЕПОДДЕРЖИВАЕТСЯ.logrt[]
записываются в журнал агента как предупреждения, но не переводят элемент данных в состояние НЕПОДДЕРЖИВАЕТСЯ.log[]
или logrt[]
становятся НЕПОДДЕРЖИВАЕМЫМИ. Zabbix может мониторить свой файл журнала, за исключением случая когда он в режиме DebugLevel=4.Иногда мы можем захотеть извлечь только интересующие значения из требуемого файла вместо того, чтобы получать всю строку, в случае когда найдено совпадение с регулярным выражением.
Начиная с Zabbix 2.2.0, элементы данных файлов журналов расширены возможностью получения извлечения требуемых значений из строк файла. Добавился дополнительный параметр вывод у элементов данных log
и logrt
.
вывод
позволяет обозначить подгруппу совпадения в которой мы можем быть заинтересованы.
И так, например
должно позволить получить количество записей со следующего содержания:
Fr Feb 07 2014 11:07:36.6690 */ Thread Id 1400 (GLEWF) large result
buffer allocation - /Length: 437136/Entries: 5948/Client Ver: >=10/RPC
ID: 41726453/User: AUser/Form: CFG:ServiceLevelAgreement
Причина, почему Zabbix вернет только одно число, потому что параметр вывод
здесь определен как \1 ссылка только на первую интересующую подгруппу: ([0-9]+)
Вместе с возможностью извлечения и получения числа, значение можно использовать в определениях триггеров.