События логов
События логов
Управление логами и аналитика Ключ-АСТРОМ даёт возможность создавать события логов на основе данных логов и использовать их при обнаружении проблем. Стоимость событий логов основана на модели Davis data units (DDU). Чтобы узнать, как оценить и отслеживать потребление DDU для событий логов, см. DDU для пользовательских событий Davis. Когда Ключ-АСТРОМ загружает данные логов, он применяет запрос, указанный в определении события лога. Каждое совпавшее вхождение запускает событие лога, которое можно настроить так, чтобы оно создавало отдельную проблему для каждого запущенного события лога или объединялось в одну проблему.
Создание события лога
Перейдите в Настройки > Мониторинг логов > Извлечение событий и выберите Добавить событие лога.
- Введите Сводку. Сводка служит отображаемым именем конфигурации события лога. Сводка должна быть уникальной для всех конфигураций.
- Введите Запрос логов. Введите запрос управления логами и аналитики для фильтрации данных логов для вашего события лога. Подробнее см. Сопоставление DQL в логах.
- Настройте Шаблон события.
- Укажите Заголовок события для запуска. Если это событие лога запускает проблему, этот заголовок также будет заголовком проблемы.
- Укажите Описание события. Обратите внимание, что в описании может быть один или несколько плейсхолдеров. Подробнее см. Плейсхолдеры.
- Выберите Тип события. Типы событий указывают серьёзность события. Подробнее см. Таблицу схемы событий логов в Settings API.
- Выберите, разрешать ли Объединение. Если запускаются два или более событий, Ключ-АСТРОМ может объединить эти события в одну проблему. Эта опция позволяет отключить такое поведение, что может привести к большему количеству сообщаемых проблем. Свойство
dt.event.allow_davis_mergeне разделяет проблемы для одной и той же конфигурации события лога. Оно только предотвращает объединение с проблемами из других конфигураций событий логов или других проблемных доменов (например, пользовательских оповещений). Если вы хотите разделить проблемы для одной и той же конфигурации события лога, свойствоevent.unique_identifierдолжно присутствовать в фактических данных логов. Затем можно использовать плейсхолдер в конфигурации события лога для ссылки на это свойство. Например, чтобы создать отдельную проблему для каждого сообщения строки лога, используйтеevent.unique_identifier={content}. - Добавьте Свойства. Свойство — это пара «ключ-значение», которая устанавливается для каждого запущенного события. В качестве значения можно использовать один или несколько плейсхолдеров, которые будут извлечены из данных логов. Например, свойство с ключом
PGIи значением-плейсхолдером{dt.entity.process_group_instance}извлечёт значение экземпляра группы процессов из данных логов после запуска события. Если подстановка плейсхолдера не удалась, ни ключ, ни значение не будут доступны.
Установка тайм-аута для события лога
События логов имеют тайм-аут по умолчанию 15 минут. Тайм-аут определяет, как часто источник события должен обновлять событие лога, чтобы поддерживать его активным. Максимально допустимое время для события лога — шесть часов.
- Событие лога остаётся активным, если источник события отправляет обновление до истечения тайм-аута события (по умолчанию: 15 минут).
- Событие автоматически закрывается, если обновление не отправлено в течение периода тайм-аута.
- Тайм-аут можно настроить. Чтобы установить пользовательский тайм-аут:
- При создании или редактировании события лога выберите Добавить свойство.
- Установите Ключ в
dt.event.timeout. - Установите Значение в количество минут (например,
12).
Чтобы проверить, что для события, запущенного на уровне хоста, был добавлен пользовательский тайм-аут:
- Перейдите в Хосты Classic и выберите имя хоста.
- Прокрутите вниз до раздела События и разверните Подробности для события.
Плейсхолдеры
Плейсхолдеры — это атрибуты записей логов, которые можно использовать для извлечения фактического значения из данных логов.
- В качестве плейсхолдера можно использовать любой атрибут, перечисленный в средстве просмотра логов для данной записи лога, чтобы извлечь значение этого атрибута.
- В средстве просмотра логов можно использовать дополнительные атрибуты записей логов в качестве плейсхолдеров для значений, которые они представляют в данных логов.
- Заключайте значения плейсхолдеров в фигурные скобки (например,
{dt.process.name}).
Пример
В этом примере мы создаём событие лога на основе загруженных данных логов. Это событие лога будет запущено, когда загруженная запись лога соответствует запросу логов. Запрос логов будет искать status="error" на хосте 555f5555-555a-5dd5-55f555a5b55d. Мы добавим свойства (атрибуты) события лога, которые извлекут значения из данных логов и включат их в сводку проблемы.
- Перейдите в Настройки > Мониторинг логов > Извлечение событий и выберите Добавить событие лога.
- Установите следующие значения:
- Сводка:
syslog-agent log event - Запрос логов:
status="error" AND host.name="555f5555-555a-5dd5-55f555a5b55d" - Шаблон события — Заголовок:
[Log] log events demo - Шаблон события — Описание:
{content} - Шаблон события — Тип события: Custom alert
- Сводка:
- Отключите Разрешить объединение.
- В разделе Свойства добавьте следующие два свойства:
- Ключ
K8 Idсо значением{dt.kubernetes.config.id} - Ключ
Process Nameсо значениемThe process name is -> {dt.process.name}
- Ключ
- Сохраните изменения и дождитесь загрузки данных логов.
- Сводка:
Если совпадение найдено, это событие лога создаст проблему с каждым запущенным событием лога. Проблема, созданная в результате запущенного события лога, будет содержать информацию, сопоставленную из вашей конфигурации события лога. Заголовок проблемы — это Заголовок события, а раздел Влияние отражает настройки Типа события и дополнительную информацию, настроенную в описании и свойствах события лога.
Обратите внимание, что в этом примере, хотя мы настроили два свойства (K8 Id и Process Name), на странице проблемы отображается только одно. Это потому, что только плейсхолдер {dt.process.name} имел значение в загруженных данных логов. Значение {dt.kubernetes.config.id} не было найдено в этой конкретной записи лога, и определённое свойство было проигнорировано.