События и реакция

Обзор

В Zabbix генерируются несколько типов событий:

  • события триггеров - всякий раз, когда триггер изменяет свой статус (OK→PROBLEM→OK)
  • события сервисов - всякий раз, когда сервис изменяет свой статус (OK→PROBLEM→OK)
  • события обнаружения - когда обнаруживаются узлы сети или сервисы
  • события авто-регистрации - когда активные агенты автоматически регистрируются сервером
  • внутренние события - когда элемент данных/правило низкоуровневого обнаружения становится неподдерживаемым или триггер переходит в неизвестное состояние

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

Чтобы просмотреть подробности события в веб-интерфейсе, перейдите в Monitoring > Problems. Там можно щелкнуть по дате и времени события, чтобы открыть страницу с подробностями события, где можно увидеть дополнительную информацию о событии, включая то, было ли оно подавлено из-за обслуживания или подавлено вручную пользователем.

Problem resolution

Problem events created by triggers are resolved automatically, if the condition that caused the problem no longer exists.

To add flexibility and convenience to problem event management, the following options exist:

События триггера

Изменение состояния триггера является наиболее частым и наиболее важным источником событий. Каждый раз, когда триггер меняет свое состояние, создается событие. Событие содержит сведения об изменении состояния триггера — когда это произошло и каково новое состояние.

Триггерами создаются два типа событий — Problem и OK.

События проблемы

Событие проблемы создается:

  • когда выражение триггера принимает значение TRUE, если триггер находится в состоянии OK;
  • каждый раз, когда выражение триггера принимает значение TRUE, если для триггера включена генерация нескольких событий проблемы.
OK-события

OK-событие закрывает связанные с ним problem-события и может быть создано 3 компонентами:

  • триггеры - на основе настроек 'OK event generation' и 'OK event closes';
  • корреляция событий
  • диспетчер задач - когда событие закрывается вручную

Триггеры имеют настройку «Генерация события OK», которая определяет, как генерируются события OK:

  • Выражение - событие OK генерируется для триггера в состоянии проблемы, когда его выражение вычисляется как FALSE. Это самый простой вариант, включенный по умолчанию.
  • Выражение восстановления - событие OK генерируется для триггера в состоянии проблемы, когда его выражение вычисляется как FALSE, а выражение восстановления вычисляется как TRUE. Это можно использовать, если критерии восстановления триггера отличаются от критериев проблемы.
  • Нет - событие OK никогда не генерируется. Это можно использовать совместно с множественной генерацией событий проблемы, чтобы просто отправлять уведомление, когда что-то происходит.

Кроме того, у триггеров есть настройка «Событие OK закрывает», которая определяет, какие события проблемы будут закрыты:

  • Все проблемы - событие OK закроет все открытые проблемы, созданные триггером
  • Все проблемы, если значения тегов совпадают - событие OK закроет открытые проблемы, созданные триггером и имеющие хотя бы одно совпадающее значение тега. Тег определяется настройкой триггера «Тег для сопоставления». Если нет событий проблемы, которые нужно закрыть, событие OK не генерируется. Это часто называется корреляцией событий на уровне триггера.
Корреляция событий

Корреляция событий (также называемая глобальной корреляцией событий) — это способ настроить пользовательские правила закрытия событий (что приводит к генерации события OK).

Правила определяют, как новые проблемные события сопоставляются с существующими проблемными событиями, и позволяют закрывать новое событие или сопоставленные события путем генерации соответствующих событий OK.

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

  1. всегда уменьшайте область корреляции, задавая уникальный тег для управляющего события (события, которое сопоставляется со старыми событиями), и используйте условие корреляции 'new event tag'
  2. не забудьте добавить условие на основе старого события при использовании операции 'close old event', иначе могут быть закрыты все существующие проблемы
  3. избегайте использования общих имен тегов, применяемых в разных конфигурациях корреляции
Диспетчер задач

Если для триггера включена настройка «Разрешить ручное закрытие», то можно вручную закрывать события проблем, сгенерированные триггером. Это делается во веб-интерфейсе при обновлении проблемы. Событие не закрывается напрямую — вместо этого создается задача «закрыть событие», которая вскоре обрабатывается диспетчером задач. Диспетчер задач сгенерирует соответствующее событие OK, и событие проблемы будет закрыто.

События сервиса

События сервиса создаются только в том случае, если для этих событий включены действия сервиса. В этом случае каждое изменение состояния сервиса создает новое событие:

  • Событие проблемы - когда состояние сервиса изменяется с OK на Problem
  • Событие OK - когда состояние сервиса изменяется с Problem на OK

Событие содержит сведения об изменении состояния сервиса - когда оно произошло и каково новое состояние.

События обнаружения

Zabbix периодически сканирует диапазоны IP-адресов, определенные в правилах сетевого обнаружения. Частота проверки настраивается отдельно для каждого правила. После обнаружения узла сети или службы генерируется событие обнаружения (или несколько событий).

Zabbix генерирует следующие события:

Событие Когда генерируется
Служба доступна Каждый раз, когда Zabbix обнаруживает активную службу.
Служба недоступна Каждый раз, когда Zabbix не может обнаружить службу.
Узел сети доступен Если хотя бы одна из служб для IP-адреса доступна.
Узел сети недоступен Если ни одна из служб не отвечает.
Служба обнаружена Если служба снова доступна после простоя или обнаружена впервые.
Служба потеряна Если служба потеряна после того, как была доступна.
Узел сети обнаружен Если узел сети снова доступен после простоя или обнаружен впервые.
Узел сети потерян Если узел сети потерян после того, как был доступен.

События авторегистрации активного агента

Автрегистрация активного агента создает события в Zabbix.

Если настроена, событие автрегистрации активного агента создается, когда ранее неизвестный активный агент запрашивает проверки или если метаданные узла сети изменились. Сервер добавляет новый автоматически зарегистрированный узел сети, используя полученные IP-адрес и порт агента.

Дополнительные сведения см. на странице авторегистрации активного агента.

Внутренние события

Внутренние события происходят, когда:

  • элемент данных меняет состояние с 'normal' на 'unsupported'
  • элемент данных меняет состояние с 'unsupported' на 'normal'
  • правило обнаружения низкого уровня меняет состояние с 'normal' на 'unsupported'
  • правило обнаружения низкого уровня меняет состояние с 'unsupported' на 'normal'
  • триггер меняет состояние с 'normal' на 'unknown'
  • триггер меняет состояние с 'unknown' на 'normal'

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

Внутренние события создаются только тогда, когда для этих событий включены внутренние действия. Чтобы остановить генерацию внутренних событий (например, для элементов данных, которые становятся неподдерживаемыми), отключите все действия для внутренних событий в Alerts > Actions > Internal actions.

Если внутренние действия отключены, то пока объект находится в состоянии 'unsupported', для этого объекта все равно будет создано событие восстановления.

Если внутренние действия включены, то пока объект находится в состоянии 'unsupported', для этого объекта будет создано событие восстановления, даже если для объекта не было создано 'problem event'.

См. также: Получение уведомления о неподдерживаемых элементах данных