Корреляция событий на основе триггеров позволяет сопоставлять отдельные проблемы, о которых сообщает один триггер.
В то время как в большинстве случаев ОК события могут закрывать все события о проблеме, созданные одним триггером, бывают случаи, когда необходим более обстоятельный подход. Например, при мониторинге файлов журналов вы можете захотеть обнаруживать некоторые проблемы в файле журнала и закрывать их по отдельности, а не все разом.
Это тот случай, когда у триггеров параметр Режим генерации событий ПРОБЛЕМА выставлен в значение Множественный. Такие триггеры обычно используются для мониторинга журналов, обработки трапов и т.п.
В Zabbix имеется возможность сопоставить события о проблемах, основываясь на тегах событий. Теги используются для извлечения значений и создания метки по событиям о проблемах. Используя преимущества такого подхода, проблемы могут быть закрыты отдельно на основании совпадения тега.
Другими словами, один триггер может создавать отдельные события, которые идентифицируются при помощи тега событий. Следовательно, события о проблемах могут быть идентифицированы каждый по отдельности и закрыты индивидуально на основании метки тега события.
В мониторинге журналов вы можете встретиться со строками похожими на эти:
Строка1: Приложение 1 остановлено
Строка2: Приложение 2 остановлено
Строка3: Приложение 1 перезапущено
Строка4: Приложение 2 перезапущено
Идея корреляции событий состоит в том, чтобы была возможность сопоставить событие о проблеме из Строки1 с решением из Строки3 и событие о проблеме из Строки2 с решением из Строки4 и закрыть эти проблемы по отдельности:
Строка1: Приложение 1 остановлено
Строка3: Приложение 1 перезапущено #проблема из Строки 1 закрыта
Строка2: Приложение 2 остановлено
Строка4: Приложение 2 перезапущено #проблема из Строки 2 закрыта
Чтобы такое сделать, вам необходимо пометить эти связанные события как, например, "Приложение 1" и "Приложение 2". Это можно сделать, применив регулярное выражение к строке из файла журнала, чтобы извлечь значение тега. Затем при создании события они будут помечены как "Приложение 1" и "Приложение 2" соответственно, и проблема может быть сопоставлена с решением.
Для начала вы можете настроить элемент данных, который мониторит файл журнала, например:
Когда элемент данных будет настроен, подождите минуту, пока изменения конфигурации вступят в силу, и затем перейдите в Последние данные, чтобы убедиться, что элемент данных начал собирать данные.
Когда элемент данных заработал, вам необходимо настроить триггер. Важно решить, на какие записи в файле журнала необходимо обратить внимание. Например, следующее выражение триггера будет искать строки, которые содержат 'Stopping', для предупреждения о возможных проблемах:
Чтобы убедиться, что каждая строка, которая содержит подстроку "Stopping", считается проблемой, также в настройках триггера выставьте Режим генерации событий ПРОБЛЕМА в значение 'Множественный'.
Затем определим выражение восстановления. Следующие выражение решит все проблемы, если в журнале будет найдена строка, содержащая подстроку "Starting":
Поскольку мы этого не хотим, важно каким-то образом убедиться, что закрываются только нужные проблемы, а не просто все проблемы. Вот где могут помочь теги.
Проблемы и решения можно сопоставить, указав в настройках триггера тег. Необходимо выполнить следующие настройки:
Если настройка выполнена успешно, вы сможете увидеть события о проблемах с тегами по приложению и сопоставление с их решением в Мониторинг → Проблемы.
Посколько возможна некорректная настройка, когда аналогичные теги событий могут быть созданы по не связанным проблемам, пожалуйста, ознакомьтесь со случаями, которые описаны ниже!