# 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).