Привет, хабровчане. Скоро стартует курс "Мониторинг и логирование: Zabbix, Prometheus, ELK", и в его преддверии приглашаем вас записаться на открытый вебинар "Prometheus как новый виток систем мониторинга".
А пока делимся традиционным полезным переводом.
Alerta — это очень простая система мониторинга, по крайней мере, таковой она выглядит для пользователя. С ее помощью можно в одном месте управлять алертами из нескольких источников. Она включает в себя API-сервер для получения, обработки и рендеринга алертов, веб-интерфейс и консольные утилиты. Она группирует алерты по различным атрибутам, таким как environment (окружение), service (сервис), event (событие) и resource (ресурс) и, оставляет хост-ориентированные инструменты мониторинга в 90-х.
Я пробовал ее использовать для System Alerts на брандмауэрах Palo Alto Network (PAN), см. репозиторий. Настройка PAN очень проста. В конечном итоге я получил на портале только десяток алертов, а не сотни и тысячи как в Monitor-> Systems. Это связано с их дедупликацией и корреляцией (по тегам, пользовательским атрибутам, окружениям, сервисам и др).
Несмотря на то, что я предпочитаю смотреть алерты только в одном месте, для alerta.io я настроил плагины для Slack и MS Teams, создав там каналы для получения сообщений. Очередной канал в мессенджере не так плох, как отслеживание еще одного URL-адреса. Я даже не боялся отправлять туда информационные сообщения, чего обычно избегаю.
Консольная утилита (которая также может запускаться с 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) добавляет пользовательский атрибут на основе информации, содержащейся в алерте.
Записаться на открытый урок.