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

Обзор

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

Теги можно определить для различных объектов:

  • шаблоны
  • узлы сети
  • элементы данных
  • веб-сценарии
  • триггеры
  • услуги
  • элементы данных и триггеры из шаблонов
  • прототипы узлов сети, элементов данных и триггеров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Определите тег с макросом в качестве значения тега (например, tag-name:{{ITEM.VALUE<N>}.regsub()} ).
    • В MonitoringProblems у проблем значение тега будет преобразовано в данные, извлеченные из значения элемента данных.
  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(шаблон, вывод)}
{{ITEM.VALUE}.iregsub(шаблон, вывод)}

{{#LLDMACRO}.regsub(шаблон, вывод)}
{{#LLDMACRO}.iregsub(шаблон, вывод)}

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

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

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

Маркировку, если задана, можно увидеть вместе с новыми событиями в:

Порядок и количество отображаемых тегов определяется опциями Приоритет отображения тегов (Tag display priority) и Отображать теги (Show tags) в разделе МониторингПроблемы либо виджете панели Проблемы. Обратите внимание, что можно отобразить максимум три тега; если тегов больше, то при наведении указателя мыши на многоточие все теги отобразятся во всплывающем окне.