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).
    • В разделе МониторингПоследние данные элементы данных могут быть отфильтрованы по тегу component:cpu.
  5. Использование информации, извлечённой из значения элемента данных, в качестве значения тега:
    • Задайте тег с макросом в качестве значения тега (например: tag-name:{{ITEM.VALUE<N>}.regsub()} ).
    • В разделе МониторингПроблемы проблемы будут иметь тег со значением, раскрытым в данные, извлечённые из значения элемента данных.
  6. Идентификация проблем в файле журнала и закрытие их по отдельности:
    • Задайте тег на уровне триггера для триггера элемента данных файла журнала, который будет извлекать значения из значения элемента данных при помощи макроса (например: {{ITEM.VALUE<N>}.regsub()} ).
    • В настройках триггера используйте корреляцию событий:
      • для параметра Режим генерации событий ПРОБЛЕМА выберите значение «Множественный»;
      • для параметра ОК событие закрывает выберите значение «Все проблемы если значения тегов совпадают»;
      • выберите тег для поиска совпадений.
    • Проблемы, создаваемые трриггером элемента данных файла журнала, будут иметь тег триггера и будут закрываться по отдельности.
  7. Фильтрация оповещений:
    • Задайте теги на уровне триггеров (например: scope:security для триггер1 и scope:availability для триггер2).
    • Используйте фильтрацию тегов в условиях действий, чтобы получать оповещения только по тем событиям, которые соответствуют данным в тегах.
  8. Идентификации проблем в оповещениях:
    • Задайте теги на уровне триггера.
    • Используйте макрос {EVENT.TAGS} в оповещении на проблемы.
    • Оповещение на проблему будет содержать теги триггера, что упрощает идентификацию того, к какому приложению/сервису относится оповещение.
  9. Упрощение задач настройки с использованием тегов на уровне шаблонов:
    • Задайте тег для триггера на уровне шаблона.
    • Триггеры, создаваемые из триггера этого шаблона, будут иметь его тег.
  10. Создание триггеров с тегами из низкоуровневого обнаружения (LLD):
    • Задайте теги для прототипа триггеров с макросом LLD в имени или значении тега (например: scope:{#FSNAME}).
    • Триггеры, создаваемые из прототипа триггеров, будут иметь его тег.
  11. Сопоставление услуг, используя теги услуг:
    • Задайте теги услуг.
    • Настройте действия на услуги для услуг с соответствующими тегами.
    • Кроме того, используйте теги услуг, чтобы связать услуги с SLA для вычислений SLA.
  12. Связывание услуг с проблемами, используя теги проблем:
    • Задайте тег проблемы в настройках услуг, (например: target:mysql).
    • Проблемы с соответствующим тегом будут автоматически соотнесены с этой услугой, а состояние услуги будет меняться в зависимости от настроенных правил расчёта состояния услуги.
  13. Подавление проблем, когда узел сети находится в режиме обслуживания:
  14. Предоставление доступа группам пользователей:

Настройка

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

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

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

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

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

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

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

  • Встроенные макросы {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 массив, содержащий объекты тегов событий или объекты тегов событий о восстановлении)
Извлечение подстроки в тегах к триггерам

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

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

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

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

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

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

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