6. Тегирование

Обзор

Теги состоят из имени тега и значения тега. При назначении тегов сущностям можно использовать только имя или пару имя и значение (например, mysql, jira, target:mysql, service:jira и т. д.).

Теги можно задавать для различных сущностей:

  • Шаблоны
  • Узлы сети
  • Элементы данных
  • Веб-сценарии
  • Триггеры
  • Сервисы
  • Элементы данных и триггеры шаблона
  • Прототипы узлов сети, элементов данных и триггеров

В списках Шаблоны, Узлы сети, Элементы данных, Триггеры, Веб-сценарии и их прототипах столбец Теги отображает как обычные, так и унаследованные теги. При наведении курсора на унаследованный тег или при щелчке по нему появляется всплывающая подсказка JavaScript с текстом "Inherited tag". Если унаследованный тег также существует как обычный тег, отображается другой текст подсказки в зависимости от списка, где он находится (например, "Inherited and template tag" в списке шаблоны или "Inherited and host tag" в списке узлы сети). В других местах веб-интерфейса обычные и унаследованные теги отображаются вместе (дубликаты удаляются), без значков и без дополнительного текста подсказки.

Обратитесь к официальным рекомендациям Zabbix по общим рекомендациям по определению тегов, а также к отдельным рекомендациям для шаблонов, элементов данных, триггеров и правил обнаружения низкого уровня.

Теги служат для разных целей, прежде всего для пометки событий. Когда сущностям назначены теги, любое новое событие, связанное с помеченной сущностью, унаследует ее теги. Например:

  • для помеченных шаблонов - любая проблема узла сети (созданная триггерами из шаблона) унаследует теги шаблона.
  • для помеченных узлов сети - любая проблема узла сети унаследует теги узла сети.
  • для помеченных элементов данных/веб-сценариев - любая проблема элемента данных/веб-сценария унаследует теги элемента данных/веб-сценария.
  • для помеченных триггеров - любая проблема, созданная триггером, унаследует теги триггера.

Событие проблемы наследует все теги из всей цепочки сущностей - шаблоны, узлы сети, элементы данных/веб-сценарии, триггеры. Идентичные комбинации tag:value (после подстановки макросов) объединяются в одну, что позволяет избежать дублирования.

События восстановления, сгенерированные при ручном закрытии, также включают разрешенные теги события, унаследованные от шаблонов, узлов сети, элементов данных/веб-сценариев и триггеров. Эти теги доступны в уведомлениях и через такие макросы, как {EVENT.RECOVERY.TAGS} и {EVENT.RECOVERY.TAGSJSON}.

Пользовательские теги событий обеспечивают большую гибкость. Например:

  • корреляцию событий можно настроить на основе тегов событий.
  • условия действий можно настроить на основе тегов событий.
  • проблемы элементов данных можно группировать на основе тегов событий.
  • теги проблем можно использовать для сопоставления проблем с сервисами.

Сущности могут иметь одинаковое имя тега, но разные значения тега (например, component:memory и component:storage). Аналогично, у сущности может быть тег без значения и тот же тег со значением (например, database и database:postgresql). Такие теги не считаются дубликатами.

Варианты использования

Некоторые распространенные варианты использования тегирования:

  1. Пометка событий триггера:

    • Определите тег триггера (например, scope:performance).
    • Проблемы, созданные этим триггером, будут иметь тег триггера.
  2. Пометка проблем, унаследованных от шаблона:

    • Определите тег шаблона (например, target:mysql).
    • Проблемы, созданные триггерами из этого шаблона, будут иметь тег шаблона.
  3. Пометка проблем узла сети:

    • Определите тег узла сети (например, service:jira).
    • Проблемы, созданные триггерами этого узла сети, будут иметь тег узла сети.
  4. Фильтрация связанных элементов данных:

    • Определите тег элемента данных (например, component:cpu).
    • В Monitoring > Latest data элементы данных можно фильтровать по тегу component:cpu.
  5. Использование информации, извлеченной из значения элемента данных, в качестве значения тега:

    • Определите тег с макросом в качестве значения тега (например, tag-name:{{ITEM.VALUE<N>}.regsub()} ).
    • В Monitoring > Problems у проблем значение тега будет преобразовано в данные, извлеченные из значения элемента данных.
  6. Определение проблем в файле журнала и их отдельное закрытие:

    • Определите тег триггера для триггера элемента данных мониторинга журнала, который будет извлекать значения из значения элемента данных с помощью макроса (например, service:{{ITEM.VALUE<N>}.regsub()} ).
    • В конфигурации триггера настройте корреляцию событий:
      • установите PROBLEM event generation mode в значение "Multiple";
      • установите OK event closes в значение "All problems if tag values match";
      • задайте тег для сопоставления.
    • Проблемы, созданные триггером элемента данных журнала, будут иметь тег триггера и будут закрываться по отдельности.
  7. Фильтрация уведомлений:

    • Определите теги триггера (например, scope:security для trigger1 и scope:availability для trigger2).
    • Используйте фильтрацию по тегам в условиях действия, чтобы получать уведомления только по событиям, соответствующим данным тегов.
  8. Определение проблем в уведомлениях:

    • Определите теги триггера.
    • Используйте макрос {EVENT.TAGS} в уведомлении о проблеме.
    • Уведомление о проблеме будет содержать теги триггера, что позволит легче определить, какому приложению/службе принадлежит уведомление.
  9. Упрощение задач настройки с помощью тегов шаблона:

    • Определите тег триггера шаблона.
    • Триггеры, созданные из этого триггера шаблона, будут иметь его тег.
  10. Создание триггеров с тегами из низкоуровневого обнаружения (LLD):

    • Определите тег прототипа триггера с макросом LLD в имени или значении тега (например, scope:{#FSNAME}).
    • Триггеры, созданные из прототипа триггера, будут иметь его тег.
  11. Сопоставление служб с использованием тегов службы:

    • Определите теги службы.
    • Настройте действия службы для служб с совпадающими тегами.
    • Кроме того, используйте теги службы, чтобы связать службу с SLA для расчетов SLA.
  12. Связывание служб с проблемами с использованием тегов проблем службы:

    • Определите тег проблемы в конфигурации службы (например, target:mysql).
    • Проблемы с совпадающим тегом будут автоматически сопоставлены со службой, а статус службы изменится на основе настроенных правил расчета статуса службы.
  13. Подавление проблем, когда узел сети находится в режиме обслуживания:

  14. Предоставление доступа группам пользователей:

Настройка

Теги можно указать на отдельной вкладке, например, в настройках триггера:

Поддержка макросов

Встроенные и пользовательские макросы в тегах разрешаются в момент возникновения события. До того как событие произошло, эти макросы будут отображаться в веб-интерфейсе Zabbix как неразрешенные.

Макросы низкоуровневого обнаружения разрешаются в процессе обнаружения.

Следующие макросы могут использоваться в именах и значениях тегов триггера:

  • {ITEM.VALUE}, {ITEM.VALUE.AGE}, {ITEM.VALUE.DATE}, {ITEM.VALUE.TIME}, {ITEM.VALUE.TIMESTAMP}, {ITEM.LASTVALUE}, {ITEM.LASTVALUE.AGE}, {ITEM.LASTVALUE.DATE}, {ITEM.LASTVALUE.TIME}, {ITEM.LASTVALUE.TIMESTAMP}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} и {HOST.ID} встроенные макросы
  • {INVENTORY.*} встроенные макросы (для ссылки на значения инвентаризации узла сети с одного или нескольких узлов сети в выражении триггера)
  • Пользовательские макросы и пользовательские макросы с контекстом (контекст может включать макросы низкоуровневого обнаружения)
  • Макросы низкоуровневого обнаружения (только в тегах прототипа триггера)

Следующие макросы могут использоваться в именах и значениях тегов шаблона, узла сети и элемента данных/сценария web:

  • {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} и {HOST.ID} встроенные макросы
  • {INVENTORY.*} встроенные макросы
  • Пользовательские макросы
  • Макросы низкоуровневого обнаружения (только в тегах прототипа узла сети и элемента данных)

Следующие макросы могут использоваться в уведомлениях на основе триггера:

  • {EVENT.TAGS} и {EVENT.RECOVERY.TAGS} встроенные макросы (эти макросы будут разрешаться в список тегов события или тегов события восстановления, разделенный запятыми)
  • {EVENT.TAGSJSON} и {EVENT.RECOVERY.TAGSJSON} встроенные макросы (эти макросы будут разрешаться в массив JSON, содержащий объекты тегов события objects или объекты тегов события восстановления)
Извлечение подстроки в тегах триггеров

Извлечение подстроки поддерживается для заполнения имени тега или значения тега с использованием макро функции. Функция применяет регулярное выражение к значению, полученному из поддерживаемого макроса. Например:

{{ITEM.VALUE}.regsub(pattern, output)}
{{ITEM.VALUE}.iregsub(pattern, output)}

{{#LLDMACRO}.regsub(pattern, output)}
{{#LLDMACRO}.iregsub(pattern, output)}

Если имя тега или его значение после подстановки макросов превышает 255 символов, оно будет обрезано до 255 символов.

См. также: Использование макро функций в макросах низкоуровневого обнаружения для тегирования событий.

Просмотр тегов событий

Теги, если они определены, можно просматривать вместе с новыми событиями в:

Порядок и количество отображаемых тегов определяются параметрами фильтрации Приоритет отображения тегов и Показывать теги в Мониторинг > Проблемы или в виджете панели Проблемы. Обратите внимание, что может отображаться не более трех тегов; если тегов больше, при наведении на три точки откроется всплывающее окно со всеми тегами.