Конфигурация временных меток и разделения
Конфигурация временных меток и разделения
Ключ-АСТРОМ позволяет определять правила, управляющие временными метками данных логов.
Обнаружение временных меток
По умолчанию мониторинг логов автоматически обнаруживает только наиболее распространённое и однозначное подмножество поддерживаемых форматов дат. Подробности см. в разделе Поддерживаемые форматы временных меток. Каждый раз, когда обнаруживается шаблон временной метки, строка считается началом записи лога. Все последующие строки без обнаруженной временной метки считаются продолжением и объединяются в одну многострочную запись лога.
Вы также можете управлять обнаружением временных меток с помощью следующих параметров в разделе Настройки > Мониторинг логов > Дополнительные настройки логов:
- Обнаружение часовых поясов контейнеров: включает автоматическое определение часового пояса в логах контейнера, если он не задан явно.
- Часовой пояс по умолчанию для агентов: задаёт часовой пояс по умолчанию, если более конкретные настройки не определены.
- Лимит поиска временной метки: определяет количество символов в каждой строке лога (начиная с первого символа), в пределах которых выполняется поиск временной метки.
Если временная метка не обнаружена
Когда мониторинг логов не может определить формат времени, он обрабатывает каждую строку лога как отдельную запись с автоматически назначенной временной меткой (меткой наблюдения) с минутным разрешением. Исключение составляют строки, начинающиеся с пробельных символов (пробел, табуляция), которые считаются продолжением записи.
Лимит поиска временной метки
Независимо от формата, временная метка обычно находится в первых 64 символах записи лога. Однако она может располагаться и в другом месте. В этом случае можно увеличить лимит на странице конфигурации ЕдиногоАгента: Мониторинг логов > Шаблоны временных меток и разделения.
Правила временных меток
Независимо от того, где в записи лога находится временная метка, она может быть записана в нескольких форматах. Ключ-АСТРОМ поддерживает некоторые форматы по умолчанию, но иногда несколько форматов могут подходить к входящим данным и сопоставлять временную метку с неправильным шаблоном. Поэтому мониторинг логов позволяет определить конкретный формат даты с помощью правил временных меток, которые указывают, что следует считать временной меткой в записи лога. Эти правила содержат шаблон временной метки, часовой пояс и сопоставления.
- Шаблон: определяет, что следует считать временной меткой в строке лога.
- Лимит поиска временной метки: задаёт количество символов в каждой строке лога, начиная с её начала, в пределах которых выполняется поиск временной метки.
- Граница записи: необязательное поле. Задаёт фрагмент текста из первой строки записи. Шаблон обрабатывается буквально, без поддержки звёздочки (
*) в качестве подстановочного знака. - Временные метки в строках с отступом: включите эту опцию, если не хотите анализировать временные метки в строках, начинающихся с пробельных символов.
- Часовой пояс: определяет часовой пояс временной метки. Необязательно, если шаблон временной метки содержит индикатор часового пояса (
%z). - Сопоставление: сужает область действия правила и применяет шаблон временной метки только к соответствующим записям логов. Поскольку атрибут
log.contentнельзя использовать в сопоставлениях шаблонов временных меток, максимальная гранулярность — источник логов. Гранулярность на этом уровне обусловлена тем, что шаблон временной метки используется для разделения содержимого источника логов на отдельные записи до определения значения атрибутаlog.content(или любых других атрибутов уровня отдельной записи лога). - Если вы создаёте несколько правил, соответствующих одним и тем же данным логов, поиск выполняется по всем определённым форматам времени.
- Если у вас есть хотя бы одно правило, соответствующее данному логу, предопределённые форматы к нему не применяются.
Множественные шаблоны временных меток в одном источнике логов
При загрузке записей логов ЕдиныйАгент анализирует запись на наличие временной метки, используя список шаблонов сопоставления.
- Когда запись лога содержит одну временную метку, ЕдиныйАгент проверяет её по списку шаблонов, начиная с первого. Если временная метка соответствует одному из шаблонов, ЕдиныйАгент использует её как начало записи лога.
- Когда запись лога содержит две или более временных меток, ЕдиныйАгент проверяет их по списку шаблонов, начиная с того шаблона, который был сопоставлен в предыдущей записи лога.
Таким образом, даже если первая временная метка в записи лога соответствует первому шаблону в списке, ЕдиныйАгент может сопоставить вторую временную метку, потому что предыдущая запись лога соответствовала второму шаблону. Пример:
Запись лога 1: Шаблон 1, Шаблон 2 Запись лога 2: Шаблон 2 Запись лога 3: Шаблон 1, Шаблон 2
Для записи лога 3, даже если «Шаблон 1» идёт первым в списке шаблонов сопоставления, ЕдиныйАгент фактически сопоставит «Шаблон 2». Чтобы гарантировать, что ЕдиныйАгент использует только нужные вам шаблоны, тщательно выбирайте, какие шаблоны включены в список сопоставления. В примере выше, чтобы гарантировать, что всегда используется Шаблон 1, удалите Шаблон 2 из списка. Это может привести к отбрасыванию сообщений, содержащих только временные метки Шаблона 2. Например, если ваш файл лога содержит оба шаблона %FT%T (2024-01-01T12:30:01) и %F %T %Z (2024-01-01 12:30:01 UTC), и ЕдиныйАгент успешно сопоставил первый шаблон в строке, он будет отдавать приоритет этому шаблону для последующих строк.
Поддерживаемые области действия
Поддерживаются четыре области иерархии: хост, кластер Kubernetes, группа хостов и среда. Области иерархии объединяются в один список в следующем порядке:
- Правила уровня хоста
- Правила уровня кластера Kubernetes
- Правила уровня группы хостов
- Правила уровня среды
ЕдиныйАгент получает объединённый список (объединённые списки из соответствующих хостов, групп хостов и сред) без указания того, какие области действия определены.
Область действия «Хост»
Доступ к области действия хоста осуществляется через настройки хоста для конкретного хоста.
- Перейдите в раздел Хосты Classic.
- Найдите и выберите ваш хост, чтобы отобразить страницу обзора хоста.
- В правом верхнем углу страницы обзора хоста выберите Дополнительно (…) > Настройки.
- В настройках хоста выберите Мониторинг логов > Шаблоны временных меток и разделения.
- Настройте маскирование данных, добавив правила с набором сопоставлений, которые указывают, что следует считать временной меткой в записи лога.
Область действия «Кластер Kubernetes»
Доступ к области действия кластера Kubernetes осуществляется через страницу Kubernetes.
- Перейдите в раздел Kubernetes или Kubernetes Classic и выберите интересующий вас кластер.
- Найдите и выберите ваш кластер, чтобы отобразить страницу обзора кластера.
- В правом верхнем углу страницы обзора кластера выберите Дополнительно (…) > Настройки.
- В настройках кластера перейдите в раздел Мониторинг логов > Шаблоны временных меток и разделения.
- Настройте загрузку в хранилище, добавив правила с набором атрибутов, соответствующих данным логов, которые должны быть сохранены Ключ-АСТРОМ.
Область действия «Группа хостов»
Доступ к области действия группы хостов осуществляется через страницу Хосты.
- Перейдите в раздел Хосты Classic и выберите интересующий вас хост.
- На странице обзора хоста выберите Свойства и теги.
- На панели Свойства и теги найдите свойство Группа хостов, чтобы увидеть имя группы хостов, к которой принадлежит выбранный хост. Свойство Группа хостов не отображается, если выбранный хост не принадлежит ни к одной группе.
- Выберите имя группы хостов, чтобы вывести список всех хостов в этой группе. Отобразится страница развёртывания ЕдиногоАгента, отфильтрованная по выбранной группе хостов. У каждого перечисленного хоста есть ссылка Группа хостов:<имя группы>, где <имя группы> — имя группы хостов, которую вы хотите настроить.
- Выберите имя группы хостов в любой строке.
- В настройках группы хостов выберите Мониторинг логов > Шаблоны временных меток и разделения.
- Настройте маскирование данных, добавив правила с набором сопоставлений, которые указывают, что следует считать временной меткой в записи лога.
Область действия «Среда»
Область действия среды доступна в меню настроек.
- Перейдите в раздел Настройки > Мониторинг логов > Шаблоны временных меток и разделения.
- Настройте маскирование данных, добавив правила с набором сопоставлений, которые идентифицируют ваши конфиденциальные данные.
Создание правила
Чтобы добавить правило (на уровне хоста, группы хостов или среды), которое интерпретирует временные метки входящих данных логов, выберите Добавить правило, чтобы начать настройку.
Имя правила Имя для отображения вашей конфигурации.
Шаблон Введите шаблон, который следует читать как дату из логов. Подробности о форматах временных меток см. в разделе Поддерживаемые форматы временных меток и в следующем списке спецификаторов формата.
| Спецификатор | Описание |
|---|---|
%*
|
Подстановочный знак. |
%!
|
Соответствует границе слова. Это любой символ, не входящий в [0-9A-Za-z_], рядом с символами из этой группы.
|
%%
|
Соответствует символу %.
|
%^
|
Соответствует началу строки. |
%A
|
Эквивалентно %a.
|
%a
|
Полное или сокращённое название дня недели в текущей локали (без учёта регистра). |
%B
|
Эквивалентно %b.
|
%b
|
Полное или сокращённое название месяца в текущей локали (без учёта регистра). |
%C
|
Век как десятичное число. |
Лимит поиска временной метки Используйте это поле, чтобы задать количество символов в каждой строке лога, в пределах которых выполняется поиск временной метки. Если вы хотите игнорировать временные метки и разделять логи с помощью правил по умолчанию, установите значение 0. Используйте это поле для переопределения глобального лимита поиска временной метки (по умолчанию 64 байта).
Часовой пояс Выберите часовой пояс для применения к этому шаблону. Этот параметр недоступен, если часовой пояс уже указан в шаблоне временной метки (%z). Можно выбрать Местный часовой пояс, чтобы использовать часовой пояс хоста, на котором работает ЕдиныйАгент.
Сопоставление Выберите Добавить сопоставление, чтобы создать конкретное сопоставление для этого правила и сузить область его действия. Можно включить несколько сопоставлений в одно правило. Например, правило конфигурации временных меток можно применить к логам из определённого контейнера, пространства имён или источника логов. Несколько сопоставлений с одинаковым атрибутом используют логику И между собой, тогда как сопоставления с несколькими значениями используют логику ИЛИ.
Атрибут сопоставления:
- Группа процессов: ID группы процессов.
- Источник лога: путь к логу; поддерживаются подстановочные знаки в виде звёздочки.
- Имя контейнера K8s: имя контейнера Kubernetes.
- Имя пространства имён K8s: имя пространства имён Kubernetes.
- Имя развёртывания K8s: имя развёртывания Kubernetes.
- Имя контейнера: имя контейнера.
- ID группы контейнеров сущности DT: ID группы контейнеров сущности DT.
- Технология процесса: имя технологии.
Выберите Значение и из списка Значение выберите обнаруженные элементы данных логов. К выбранному атрибуту можно добавить несколько значений. Можно иметь одно сопоставление, которое указывает источник лога и соответствует значениям /var/log/syslog и Windows Application Log. Используйте звёздочки (*) в качестве подстановочных знаков для частичного совпадения.
Выберите Сохранить изменения. Правила выполняются в том порядке, в котором они отображаются на странице Шаблоны временных меток и разделения.
Переключатель «Активно»
Начиная с версии ЕдиногоАгента 1.249, вы можете активировать/деактивировать ваши правила, включая/выключая переключатель Активно. Для эффективного управления правилами рекомендуется обновить ЕдиныйАгент до версии 1.249. Если у вас есть правила, установленные на хосте с версией ЕдиногоАгента ниже 249, вы не сможете их деактивировать; в этом случае вам нужно удалить такие правила, выбрав Удалить на уровне правила или через REST API.
Примеры конфигурации временных меток
Ознакомьтесь с приведёнными ниже форматами временных меток как примерами конфигурации:
| Описание | Шаблон | Пример |
|---|---|---|
| Временная метка без разделителя по умолчанию | %Y-%m-%d-%H.%M.%S
|
2024-09-05-12.30.01
|
| Использование только временных меток с начала записи лога | %^%F %T
|
2024-09-05 12:30:01
|
| Поиск временной метки с именем поля (JSON) | "validTimestamp":"%Y-%m-%dT%H:%M:%S"
|
"validTimestamp": "2024-09-05T12:30:01"
|
| Временная метка со смещением часового пояса | %m-%d-%Y %H:%M:%S %z
|
09-05-2024 12:30:01 +01:00
|
| Временная метка с названием или аббревиатурой часового пояса | %m-%d-%Y %H:%M:%S %Z
|
09-05-2024 12:30:01 UTC
|
| Временная метка без года (для оценки используется текущий год) | %b %t%d-%H:%M:%S
|
Apr 4-12:30:01 или Apr 14-12:30:01
|
Любая временная метка с префиксом myTime.*
|
myTime%*: %Y-%m-%dT%H:%M:%S
|
myTimeOfCreation: 2024-09-05T12:30:01
|
Вы можете переопределить часовой пояс по умолчанию, указав его без шаблона временной метки. Двузначный формат года: %m/%d/%y %H:%M:%S %Z, пример: 09/05/24 12:30:01 America/Chicago.
REST API
Вы можете использовать Settings API для управления конфигурацией временных меток:
- Просмотр схемы
- Список сохранённых объектов конфигурации
- Просмотр отдельного объекта конфигурации
- Создание, редактирование или удаление существующего объекта конфигурации
Чтобы проверить текущую версию схемы для конфигурации временных меток, выведите список всех доступных схем и найдите идентификатор схемы builtin:logmonitoring.timestamp-configuration.
Объекты конфигурации временных меток доступны для настройки на следующих областях:
environment— объект конфигурации влияет на все хосты в данной среде.host_group— объект конфигурации влияет на все хосты, назначенные данной группе хостов.host— объект конфигурации влияет только на данный хост.
Чтобы создать конфигурацию временных меток с помощью API:
- Создайте токен доступа с разрешениями Write settings (
settings.write) и Read settings (settings.read). - Используйте конечную точку GET a schema, чтобы узнать формат JSON, необходимый для отправки вашей конфигурации. Идентификатор схемы конфигурации временных меток (
schemaId) —builtin:logmonitoring.timestamp-configuration.