grafana_gen/README.md
2026-03-11 15:31:26 +03:00

71 lines
No EOL
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# grafana_gen
Утилита автоматической генерации Grafana-дашбордов и правил алертинга для клиентов WAF.
## Что делает
- Читает список клиентов и их SID из PostgreSQL (`sp_info` + `manual_info`)
- Генерирует единый дашборд с панелями на каждого клиента
- Создаёт правила алертинга: RPS, 4xx/5xx ошибки (пороги из БД), CPU, RAM, диск, контейнеры, Angie
- Обновляет шаблоны дашборда и алертов из Git-репозитория при каждом запуске
- Пропускает запуск если ничего не изменилось (отслеживает хэши)
## Быстрый старт
```bash
# Минимальный запуск
./grafana_gen \
-db-user=reader \
-db-password=secret \
-grafana-url=https://grafana.example.com \
-grafana-api-key=glsa-xxx
# Или через .env файл (приоритет ниже переменных окружения)
cp grafana_gen.env.example /etc/grafana_gen/grafana_gen.env
./grafana_gen
```
## Конфигурация
Параметры разрешаются в порядке приоритета:
**флаг → переменная окружения → .env файл → константа в config.go**
Минимально необходимые параметры:
| Параметр | Флаг | Переменная окружения |
|---|---|---|
| PostgreSQL пользователь | `-db-user` | `DB_USER` |
| PostgreSQL пароль | `-db-password` | `DB_PASSWORD` |
| URL Grafana | `-grafana-url` | `GRAFANA_URL` |
| Grafana API ключ | `-grafana-api-key` | `GRAFANA_API_KEY` |
Пример `.env` файла:
```env
DB_USER=grafana_reader
DB_PASSWORD=secret
GRAFANA_URL=https://grafana.example.com
GRAFANA_API_KEY=glsa-xxxxxxxxxxxxxxxxxxxx
GIT_TOKEN=your-gitea-token
```
## Полезные флаги
```bash
-dry-run # Сгенерировать и показать в логах, не отправлять в Grafana
-force # Пересоздать всё даже если изменений нет
-skip-git-pull # Не обновлять шаблоны из Git
```
## Шаблоны
Дашборд и алерты строятся по JSON-шаблонам из Git-репозитория:
- `dashboard_template.json` — структура и панели дашборда
- `alert_rules_template.json` — правила алертинга
Изменение любого шаблона автоматически триггерит пересоздание при следующем запуске.
## Подробнее
См. [ARCHITECTURE.md](ARCHITECTURE.md).