Karma
Назначение
Karma — это лёгкий веб-интерфейс к Alertmanager, облегчающий поиск, фильтрацию и массовые действия с алертами. В стек «Monitoring Services» Karma разворачивается в Docker и проксируется через Traefik, находясь в той же сети monitoring_net.
Karma не заменяет Alertmanager, а лишь предоставляет удобный фронтенд к его API.
Структура каталогов
config/karma/
└─ deployment/docker/
├─ .env_example # переменные окружения (копировать в .env)
├─ docker-compose.yml# основной compose-файл
└─ karma.yaml # конфигурация интерфейса
Быстрый обзор файлов
| Файл | Назначение |
|---|---|
.env_example |
шаблон переменных окружения: домен, порт, имя compose-проекта |
docker-compose.yml |
описывает контейнер ghcr.io/prymitive/karma, Traefik-labels и монтирует karma.yaml |
karma.yaml |
UI-настройки (частота обновления, видимость фильтров, предзагруженные получатели) |
Переменные окружения (.env)
| Переменная | Описание | Пример |
|---|---|---|
COMPOSE_PROJECT_NAME |
(опц.) префикс контейнеров в Docker | karma |
VIRTUAL_HOST |
Домен, по которому будет доступен UI | alerts.example.com |
VIRTUAL_PORT |
Порт, который слушает Karma внутри контейнера | 8080 |
Скопируйте пример и отредактируйте:
cd config/karma/deployment/docker
cp .env_example .env
nano .env
Развёртывание
- Убедитесь, что на хосте уже создана внешняя сеть:
bash docker network create monitoring_net || true - Запустите сервис:
bash docker compose up -d - Откройте
https://$VIRTUAL_HOSTв браузере. Должны появиться алерты Alertmanager.
Проверка работы
- В контейнере:
bash docker compose logs -f karmaУбедитесь, что Karma успешно подключился к Alertmanager (Loaded n alerts in …). - На стороне Alertmanager endpoint
/api/v2/alertsдолжен быть доступен из сетиmonitoring_net.
Кастомизация UI (karma.yaml)
Пример конфигурации:
receivers:
keep:
- telegram_bot_1h # отображать только эти получатели по умолчанию
- telegram_bot_12h
ui:
refresh: 30s # интервал авто-обновления
hideFiltersWhenIdle: true
minimalGroupWidth: 420 # px
alertsPerGroup: 5
collapseGroups: collapsedOnMobile
- receivers.keep — список Alertmanager-receiver’ов, которые отображаются без фильтра.
- ui.refresh — частота обновления страницы.
- После изменения файла выполните
docker compose restart karma.
Полный список настроек см. в документации проекта.
Обновление
docker compose pull karma
docker compose up -d
Удаление
docker compose down --remove-orphans
Контейнеры будут остановлены, но сеть monitoring_net и Traefik останутся нетронутыми.
TL;DR
cd config/karma/deployment/docker
cp .env_example .env
# правим домен и порт
docker compose up -d # запустить
# …
docker compose pull karma && docker compose up -d # обновить
Теперь Karma доступен по указанному домену и показывает алерты из вашего Alertmanager!