Управление алертами с помощью Alerta.io

от автора

Привет, хабровчане. Скоро стартует курс «Мониторинг и логирование: Zabbix, Prometheus, ELK», и в его преддверии приглашаем вас записаться на открытый вебинар «Prometheus как новый виток систем мониторинга».

А пока делимся традиционным полезным переводом.


Alerta — это очень простая система мониторинга, по крайней мере, таковой она выглядит для пользователя. С ее помощью можно в одном месте управлять алертами из нескольких источников. Она включает в себя API-сервер для получения, обработки и рендеринга алертов, веб-интерфейс и консольные утилиты. Она группирует алерты по различным атрибутам, таким как environment (окружение), service (сервис), event (событие) и resource (ресурс) и, оставляет хост-ориентированные инструменты мониторинга в 90-х.

Я пробовал ее использовать для System Alerts на брандмауэрах Palo Alto Network (PAN), см. репозиторий. Настройка PAN очень проста. В конечном итоге я получил на портале только десяток алертов, а не сотни и тысячи как в Monitor-> Systems. Это связано с их дедупликацией и корреляцией (по тегам, пользовательским атрибутам, окружениям, сервисам и др).

PAN-вебхук для настройки alerta
PAN-вебхук для настройки alerta

Несмотря на то, что я предпочитаю смотреть алерты только в одном месте, для alerta.io я настроил плагины для Slack и MS Teams, создав там каналы для получения сообщений. Очередной канал в мессенджере не так плох, как отслеживание еще одного URL-адреса. Я даже не боялся отправлять туда информационные сообщения, чего обычно избегаю. 

Alerta.io plugins: Slack (on left) and Teams (on right)
Alerta.io plugins: Slack (on left) and Teams (on right)

Консольная утилита (которая также может запускаться с GUI в терминале или как Python SDK) очень полезна для быстрого просмотра состояния, запросов, пульса (heartbeat) и обслуживания.

$ alerta status METRIC                       TYPE    NAME                       VALUE      AVERAGE ---------------------------  ------  -------------------------  -------  --------- Total alerts                 gauge   alerts.total               21 Received alerts              timer   alerts.received            898       30.853 Count alerts                 timer   alerts.counts              1310       4.59695 Alert queries                timer   alerts.queries             2627      36.0689 Alerta console auto-refresh  text    switch.auto-refresh-allow  ON API alert submission         text    switch.sender-api-allow    ON

Важно помнить, что это ни в коем случае не «еще один инструмент мониторинга», а лишь способ уменьшить большое количество алертов и агрегировать их из нескольких систем мониторинга, таких как Zabbix, Nagios или Sensu.

Согласно документации, алерты при получении можно дополнительно обработать с помощью хуков (pre-receive hooks), добавляя в них информацию или отклоняя их. А также можно инициировать запуск действий в других системах с помощью post-receive — хуков или действий оператора или при изменении статуса алерта для двунаправленной интеграции. Например, алерты можно нормализовать для гарантии того, что у всех у них будут необходимые атрибуты и теги или что они принимают значение из допустимого диапазона. Это можно увидеть в плагине reject, который обрабатывает политику алертов.

Плагины также могут использоваться для обогащения алертов дополнительной информацией. Например, плагин геолокации (Geo location plugin) на основе IP-адреса клиента добавляет к алерту данные о местоположении. А универсальный плагин (generic enhance plugin) добавляет пользовательский атрибут на основе информации, содержащейся в алерте.

Записаться на открытый урок.

ссылка на оригинал статьи https://habr.com/ru/company/otus/blog/527918/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *