Обзор мониторинга логов
Glaber — это инструмент, который позволяет централизованно отслеживать и анализировать файлы журналов. Он может работать как с ротацией журналов, так и без неё. С помощью Glaber можно настроить уведомления, которые будут предупреждать пользователей о наличии в журнале определённых строк или шаблонов строк.
Для мониторинга файла журнала вам понадобятся:
- Агент, запущенный на узле сети;
- Настройка элемента данных мониторинга журнала.
Настройка
Проверка параметров агента
Проверьте, чтобы в файле конфигурации агента были правильно указаны:
- Имя узла сети во внешнем интерфейсе в параметре «Hostname»;
- Серверы для обработки активных проверок в параметре «ServerActive».
Настройка элемента данных
Во время создания и настройки элемента данных нужно указать следующие параметры (Рисунок 1):
Название | Определение |
---|---|
Тип | Выбирается тип элемента данных. |
Ключ | Используйте один из следующих ключей элемента данных: log[] или logrt[]: Эти два ключа элемента данных позволяют отслеживать журналы и фильтровать записи журналов по регулярному выражению содержимого, если оно присутствует. |
Тип информации | Выбирается тип информации |
Интервал обновления | Этот параметр определяет, как часто агент будет проверять наличие изменений в файле журнала. |
Формат времени в журнале | В этом поле вы можете дополнительно указать шаблон для анализа метки времени в строке журнала. Поддерживаемые заполнители: * y: Год (1970-2038) * M: Месяц (01-12) * d: День (01-31) * ч: Час (00-23) * m: Минута (00-59) * s: Секунда (00-59) |
Рисунок 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 заменяет их на "?" для продолжения обработки строки до символа новой строки. |