Skip to content

Обзор мониторинга логов

Glaber — это инструмент, который позволяет централизованно отслеживать и анализировать файлы журналов. Он может работать как с ротацией журналов, так и без неё. С помощью Glaber можно настроить уведомления, которые будут предупреждать пользователей о наличии в журнале определённых строк или шаблонов строк.

Для мониторинга файла журнала вам понадобятся:

  • Агент, запущенный на узле сети;
  • Настройка элемента данных мониторинга журнала.

Настройка

Проверка параметров агента

Проверьте, чтобы в файле конфигурации агента были правильно указаны:

  • Имя узла сети во внешнем интерфейсе в параметре «Hostname»;
  • Серверы для обработки активных проверок в параметре «ServerActive».

Настройка элемента данных

Во время создания и настройки элемента данных нужно указать следующие параметры (Рисунок 1):

Название Определение
Тип Выбирается тип элемента данных.
Ключ Используйте один из следующих ключей элемента данных: log[] или logrt[]: Эти два ключа элемента данных позволяют отслеживать журналы и фильтровать записи журналов по регулярному выражению содержимого, если оно присутствует.
Тип информации Выбирается тип информации
Интервал обновления Этот параметр определяет, как часто агент будет проверять наличие изменений в файле журнала.
Формат времени в журнале В этом поле вы можете дополнительно указать шаблон для анализа метки времени в строке журнала. Поддерживаемые заполнители: * y: Год (1970-2038) * M: Месяц (01-12) * d: День (01-31) * ч: Час (00-23) * m: Минута (00-59) * s: Секунда (00-59)

image

Рисунок 1 — Настройка элемента данных

Важные моменты

Примечания
Сервер и агент отслеживают размер отслеживаемого журнала и время последнего изменения (для logrt) в двух счетчиках.
Агент также использует внутренние номера индексных дескрипторов (в UNIX/GNU/Linux), индексы файлов (в Microsoft Windows) и суммы MD5 первых 512 байт файла журнала для улучшения работы при усечении и ротации файлов журнала.
В системах UNIX/GNU/Linux предполагается, что файловые системы, в которых хранятся файлы журналов, сообщают номера индексных дескрипторов, которые можно использовать для отслеживания файлов.
В Microsoft Windows агент определяет тип файловой системы, в которой находятся файлы журналов, и использует:
В файловых системах NTFS 64-разрядные файловые индексы.
В файловых системах ReFS (только в Microsoft Windows Server 2012) используются 128-битные идентификаторы файлов.
В файловых системах, где индексы файлов меняются (например, FAT32, exFAT), используется резервный алгоритм, чтобы в неопределённых условиях, когда ротация файлов журнала приводит к появлению нескольких файлов журнала с одинаковым временем последней модификации, принять разумное решение.
Номера индексных дескрипторов, индексы файлов и суммы MD5 собираются агентом Glaber. Они не передаются на сервер Glaber и теряются при остановке агента Glaber.
Не изменяйте время последней модификации файлов журнала с помощью утилиты 'touch', не копируйте файл журнала с последующим восстановлением исходного имени (это изменит номер индексного дескриптора файла). В обоих случаях файл будет считаться другим и будет анализироваться с самого начала, что может привести к дублированию оповещений.
Если для logrt[] элемента данных существует несколько подходящих файлов журнала, а Glaber-агент отслеживает самый последний из них, и этот самый последний файл журнала удаляется, в журнал "there are no files matching "" in "" записывается предупреждающее сообщение. Glaber-агент игнорирует файлы журнала, время изменения которых меньше самого последнего времени изменения, зафиксированного агентом для logrt[] проверяемого элемента данных.
Агент начинает считывать файл журнала с того места, на котором остановился в предыдущий раз.
Количество уже проанализированных байт (счётчик размера) и время последней модификации (счётчик времени) сохраняются в базе данных Glaber и отправляются агенту, чтобы он мог начать чтение файла журнала с этой точки в случаях, когда агент только что запущен или получил элементы данных, которые ранее были отключены или не поддерживались. Однако если агент получил от сервера ненулевой счетчик размера, но элемент данных logrt[] или logrt.count[] не может найти соответствующие файлы, счетчик размера сбрасывается до 0, чтобы начать анализ с самого начала, если файлы появятся позже.
Всякий раз, когда размер файла журнала становится меньше, чем размер журнала, известный агенту, счётчик сбрасывается до нуля, и агент начинает считывать файл журнала с начала, учитывая счётчик времени.
Если в каталоге есть несколько совпадающих файлов с одинаковым временем последней модификации, то агент пытается корректно проанализировать все файлы журнала с одинаковым временем модификации и избежать пропуска данных или повторного анализа одних и тех же данных, хотя это не может быть гарантировано во всех ситуациях. Агент не предполагает и не определяет какую-либо конкретную схему ротации файлов журнала. При наличии нескольких файлов журнала с одинаковым временем последней модификации агент обрабатывает их в лексикографическом порядке по убыванию. Таким образом, при некоторых схемах ротации файлы журналов будут анализироваться и отображаться в исходном порядке. При других схемах ротации исходный порядок файлов журналов не будет соблюдаться, что может привести к отображению совпадающих записей журналов в измененном порядке (эта проблема не возникает, если файлы журналов имеют разное время последней модификации).
Агент обрабатывает новые записи в файле журнала один раз в интервал обновления секунд.
Агент не отправляет более maxстрок из файла журнала в секунду. Ограничение предотвращает перегрузку сети и ресурсов процессора и переопределяет значение по умолчанию, заданное параметром MaxLinesPerSecond в файле конфигурации агента.
Чтобы найти нужную строку, Glaber обработает в 10 раз больше новых строк, чем указано в MaxLinesPerSecond. Таким образом, например, если log[] или logrt[] элемент данных имеет интервал обновления 1 секунда, по умолчанию агент проанализирует не более 200 записей в файле журнала и отправит не более 20 совпадающих записей на сервер Glaber за одну проверку. Увеличив MaxLinesPerSecond в файле конфигурации агента или задав параметр maxlines в ключе элемента данных, можно увеличить лимит до 10000 проанализированных записей в файле журнала и 1000 совпадающих записей, отправляемых на сервер Glaber за одну проверку. Если интервал обновления установлен на 2 секунды, лимиты для одной проверки будут в 2 раза выше, чем при интервале обновления в 1 секунду.
Кроме того, значения log и log.count всегда ограничены 50% от размера буфера отправки агента, даже если в нём нет значений, не относящихся к log. Таким образом, чтобы значения maxlines отправлялись в одном соединении (а не в нескольких), параметр агента BufferSize должен быть не менее maxlines x 2. Агент может загружать данные во время сбора журналов и таким образом освобождать буфер, в то время как Агент 2 будет приостанавливать сбор журналов до тех пор, пока данные не будут загружены и буфер не будет освобождён, что выполняется асинхронно.
При отсутствии элементов журнала весь размер буфера агента используется для значений, не относящихся к журналу. Когда поступают значения журнала, они заменяют старые значения, не относящиеся к журналу, по мере необходимости, вплоть до 50%.
Для записей в файлах журналов, длина которых превышает 256 КБ, только первые 256 КБ сопоставляются с регулярным выражением, а остальная часть записи игнорируется. Однако если Glaber-агент останавливается во время обработки длинной записи, внутреннее состояние агента теряется, и длинная запись может быть проанализирована повторно и по-другому после повторного запуска агента.
Особое примечание для разделителей пути «\»: если формат файла «file.log», то каталога «file» быть не должно, так как невозможно однозначно определить, является ли «.» экранированным символом или первым символом имени файла.
Регулярные выражения для logrt поддерживаются только в именах файлов, сопоставление регулярных выражений в каталогах не поддерживается.
На платформах UNIX a logrt[] элемент данных становится НЕПОДДЕРЖИВАЕМЫМ, если каталог, в котором, как ожидается, будут найдены файлы журнала, не существует.
В Microsoft Windows, если каталог не существует, элемент данных не будет помечен как NOTSUPPORTED.
Отсутствие файлов журналов для logrt[] элемента данных не делает его НЕПОДДЕРЖИВАЕМЫМ. Ошибки при чтении файлов журналов для logrt[] элемента данных регистрируются как предупреждения в файле журнала Glaber-агента, но не делают элемент данных НЕПОДДЕРЖИВАЕМЫМ.
Файл журнала агента Glaber может помочь выяснить, почему элемент данных log[] или logrt[] стал недоступным. Glaber может отслеживать файл журнала своего агента, за исключением случаев, когда уровень отладки равен 4 или 5.
Поиск вопросительного знака с помощью регулярного выражения, например, \? может привести к ложным срабатываниям, если текстовый файл содержит символы NUL, так как Glaber заменяет их на "?" для продолжения обработки строки до символа новой строки.