- Zabbix
- Prometheus/VictoriaMetrics
- Netdata
- UptimeKuma
- Checkmk
- Elastic/Graylog
И многие другие известные системы. Сразу по шагам покажу, как keephq настраивается, чтобы было понятно, что она из себя представляет. Я потестировал её в связке с Zabbix.
1️⃣ Установка очень простая:
# git clone https://github.com/keephq/keep.git && cd keep# mkdir -p state && chown -R 999:999 stateВ docker-compose.common.yml поменял переменные
NEXTAUTH_URL и NEXT_PUBLIC_API_URL на свои IP и запустил:# docker compose up -dТак мы запустили службу с сохранением состояния в базе sqlite3 в директории state.
2️⃣ Зашёл в веб интерфейс по IP адресу на порт 3000. Сразу добавил провайдера Zabbix. Для этого нужен его URL, и API токен для доступа к мониторингу. Предварительно создал его.
3️⃣ Keephq подгрузил активные триггеры из Zabbix. Сразу же можно сделать и сохранить отдельное представление, для отображения триггеров только с этого провайдера. Для триггеров можно настроить какие-то действия, которые можно выбирать для ручного запуска. Например, создать тикет в Jira, Redmine, Gitlab и т.д.
4️⃣ В разделе Correlations создал новое правило, в котором при появлении нового триггера создаётся инцидент. Он, когда сработает, будет виден в разделе Incidents. В инциденты могут быть объединены триггеры с различными признаками.
5️⃣ На основе инцидента в ручном или автоматическом режиме могут выполняться различные действия. Они описываются в разделе Workflows. Самый простой пример действия - добавление в качестве провайдера какой-то сервер с доступом к нему по SSH. И в качестве реакции на инцидент на этом сервере можно запускать какую-то команду или скрипт.
Описал кратко принцип работы keephq. В общем случае эта система умеет аккумулировать в себе множество событий и выдавать на них какие-то реакции со своими действиями или оповещениями.
Например, у вас случился какой-то шторм из алертов из-за того, что поленились настроить в Zabbix зависимость триггеров. Упал какой-то удалённый филиал и все хосты оттуда навалили кучу триггеров. Вы можете в keephq объединить все эти триггеры по какому-то признаку, сделать на их основе инцидент, отправить только одно уведомление ответственному лицу, а инцидент закрыть после закрытия какой-то конкретного триггера в Zabbix, который, к примеру, отвечает за доступность шлюза в удалённом филиале.
Описал простой пример, который связан только с одним сервером Zabbix. Соответственно, если у вас много различных серверов, которые генерируют события, их можно объединять в keephq. Отключать отправку уведомлений в самих сервисах и управлять ими в keephq.
Надеюсь, понятно объяснил. По сути это аналог Grafana OnCall. А сооснователь keephq - Матвей Кукуй, в прошлом — Engineering Director в Grafana Labs, который OnCall и создавал. А до этого он же ex-CEO Amixr.IO, который купила Grafana. Вот интервью с ним.
Keephq монетизируется и развивается за счёт облачной версии. Open Source версия для собственной установки бесплатна. Каких-то ограничений не нашёл.
⇨ 🌐 Сайт / Исходники
#devops #мониторинг
