71 lines
No EOL
2.8 KiB
Markdown
71 lines
No EOL
2.8 KiB
Markdown
# grafana_gen
|
||
|
||
Утилита автоматической генерации Grafana-дашбордов и правил алертинга для клиентов WAF/PTAF.
|
||
|
||
## Что делает
|
||
|
||
- Читает список клиентов и их 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). |