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 поддерживаются только в именах файлов, совпадение регулярного выражения с папкой не поддерживается.