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

2.8 KiB
Raw Blame History

grafana_gen

Утилита автоматической генерации Grafana-дашбордов и правил алертинга для клиентов WAF.

Что делает

  • Читает список клиентов и их SID из PostgreSQL (sp_info + manual_info)
  • Генерирует единый дашборд с панелями на каждого клиента
  • Создаёт правила алертинга: RPS, 4xx/5xx ошибки (пороги из БД), CPU, RAM, диск, контейнеры, Angie
  • Обновляет шаблоны дашборда и алертов из Git-репозитория при каждом запуске
  • Пропускает запуск если ничего не изменилось (отслеживает хэши)

Быстрый старт

# Минимальный запуск
./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 файла:

DB_USER=grafana_reader
DB_PASSWORD=secret
GRAFANA_URL=https://grafana.example.com
GRAFANA_API_KEY=glsa-xxxxxxxxxxxxxxxxxxxx
GIT_TOKEN=your-gitea-token

Полезные флаги

-dry-run        # Сгенерировать и показать в логах, не отправлять в Grafana
-force          # Пересоздать всё даже если изменений нет
-skip-git-pull  # Не обновлять шаблоны из Git

Шаблоны

Дашборд и алерты строятся по JSON-шаблонам из Git-репозитория:

  • dashboard_template.json — структура и панели дашборда
  • alert_rules_template.json — правила алертинга

Изменение любого шаблона автоматически триггерит пересоздание при следующем запуске.

Подробнее

См. ARCHITECTURE.md.