На странице
- #6 Мониторинг файлов журналов
Обзор
Zabbix можно использовать для централизованного мониторинга и анализа файлов журналов с/без поддержки ротации журналов.
Можно использовать оповещения для предупреждения пользователей, когда файл журнала содержит конкретные строки или шаблоны строк.
Для наблюдения за файлом журнала у вас должно быть:
- Zabbix агент запущенный на узле сети
- Настроенный элемент данных для мониторинга журнала
Максимальный размер наблюдаемого файла журнала зависит от поддержки файлов большого объема.
Настройка
Проверка параметров агента
Убедитесь, что в файле конфигурации агента:
- Параметр 'Hostname' совпадает с именем узла сети в веб-интерфейсе
- Для обработки активных проверок указаны сервера в параметре 'ServerActive'
Настройка элемента данных
Настройте элемент данных для мониторинга журнала:

Конкретно для элементов данных наблюдения за журналами вы должны ввести:
| Тип | Здесь выберите Zabbix агент (активный). |
| Ключ | Установите: log[имя файла с размещением файла,<регулярное выражение>,<кодировка>,<макс. кол-во строк>,<режим>] или logrt[имя файла с размещением файла,<регулярное выражение>,<кодировка>,<макс. кол-во строк>,<режим>] Например: log[/var/log/syslog] log[/var/log/syslog,error] logrt["/home/user/filelog_.*_[0-9]{1,3}","совпадение_с_шаблоном","UTF-8",100]. Последний пример будет собирать данные из таких файлов как "filelog_abc_1" или "filelog__001". Для получения более подробных сведений смотрите информацию о log и logrt в разделе поддерживаемых ключей элементов данных. Убедитесь, что у файла выставлены права на чтение для пользователя 'zabbix', в противном случае состояние элемента данных будет установлено равным 'unsupported'. 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 и отправляются агенту, для уверенности, что он начнет читать файл журнала с этой позиции.
- Всякий раз, когда лог-файл становится меньше, чем известное агенту значение счетчика размера, счетчик обнуляется и агент начинает читать лог-файл с самого начала, принимая во внимание счетчик времени.
- Все файлы, соответствующие формату имени файла в соответствующей папке, анализируются каждый цикл и агент пытается получить следующую строку из лог-файла (для logrt).
- Если в папке существует несколько соответствующих файлов с тем же временем последнего изменения, то агент будет лексикографически читать наименьший из этих файлов.
- Zabbix агент обрабатывает новые записи лог-файла один раз на Период обновления в секундах.
- Zabbix агент отправляет не более чем maxlines записей из лог-файла в секунду. Это ограничение предотвращает перегрузку сети и ресурсов процессора и переопределяет значение по умолчанию предусмотренное параметром MaxLinesPerSecond в файле конфигурации агента.
- Кроме того, данные из лог файлов всегда ограничены 50% от размера буфера отправки у агента, даже если в буфере нет значений не связанных с данными из лог файлов. Таким образом, значения maxlines будут отправлены за одно соединение (и не в нескольких соединений), параметр BufferSize агента должен быть по крайней мере равен maxlines x 2.
- При остутствии элементов данных журналов весь размер буфера используется для значений не связанных с данными из логов. Когда появляются значения от лог файлов они заменяют устаревшие данные не связанные с лог файлами, если требуется, до максимального уровня 50%.
- Специальное примечание для разделителей пути "\": если формат файла представлен как "file\.log", тогда там не должно быть папки "file", поскольку невозможно однозначно определить, экранируется ли это символ "." или это первый символ в имени файла.
- Регулярные выражения для logrt поддерживаются только в именах файлов, совпадение регулярного выражения с папкой не поддерживается.