auspex/README.md
2026-03-24 12:51:59 +03:00

118 lines
5.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.

# Auspex
Набор утилит мониторинга инфраструктуры WAF.
## Утилиты
| Ключ | Описание |
|------|----------|
| `-ss` | Просмотр занятых портов (интерактивный TUI на bubbletea) |
| `-c` | Проверка SSL сертификатов (сроки истечения, алерты в Telegram) |
| `-p` | Проверка доступности портов из nginx upstream конфигов |
| `-m` | Проверка совпадений портов Angie ↔ Docker (+ проверка запуска контейнеров) |
| `-l` | Проверка обновления файлов PT AF access logs |
| `-sv` | Проверка работоспособности служб |
| `-dv` или `-d` | Проверка работоспособности контейнеров |
## Структура проекта
```
auspex/
├── cmd/auspex/
│ └── main.go # Точка входа, меню, роутинг CLI-флагов
├── internal/
│ ├── config/
│ │ └── config.go # Общая конфигурация (хардкод + env)
│ ├── telegram/
│ │ └── telegram.go # Общий клиент Telegram
│ ├── portsview/
│ │ └── portsview.go # -ss: TUI просмотр портов
│ ├── certcheck/
│ │ └── certcheck.go # -c: проверка сертификатов
│ ├── portcheck/
│ │ └── portcheck.go # -p: проверка доступности портов
│ └── matchcheck/
│ | └── matchcheck.go # -m: совпадения Angie ↔ Docker
│ └── servicecheck/
│ | └── servicecheck.go # -sv: проверка работоспособности служб
│ └── dockercheck/
│ └── dockercheck.go # -dv или -d: проверка работоспособности служб
├── go.mod
├── Makefile
└── README.md
```
## Сборка
```bash
go mod tidy
go build -o auspex
```
## Использование
```bash
# Интерактивное меню
./auspex
# Быстрый вызов через флаги
./auspex -ss # TUI просмотр портов
./auspex -c # Проверка сертификатов
./auspex -p # Проверка доступности портов
./auspex -m # Проверка Angie ↔ Docker (все клиенты)
./auspex -m client_name # Проверка конкретного клиента
./auspex -l # Проверка свежести логов
./auspex -sv # Проверка работоспособности служб
./auspex -dv или -d # Проверка работоспособности контейнеров
./auspex -h # Справка
./auspex -v # Версия
```
## Конфигурация
Все настройки находятся в `config.go`.
### Переменные окружения
| Переменная | Описание | Значение по умолчанию |
|------------|----------|----------------------|
| `AUSPEX_TELEGRAM_BOT_TOKEN` | Токен Telegram бота | `YOUR_BOT_TOKEN` |
| `AUSPEX_TELEGRAM_CHAT_ID` | Chat ID для алертов | `YOUR_CHAT_ID` |
| `AUSPEX_PTAF_BASE_DIR` | Базовая директория PTAF | `/home/install/ptaf` |
| `AUSPEX_ANGIE_CONF_DIR` | Директория конфигов Angie | `/etc/angie/http.d` |
| `AUSPEX_SSL_DIR` | Директория SSL сертификатов | `/etc/ssl` |
| `AUSPEX_NGINX_CONFIG_GLOB` | Glob-путь к nginx конфигам | `/home/install/conf/ptaf-nginx/*/*/*/*.conf` |
| `AUSPEX_STATE_FILE_PATH` | Файл состояния port checker | `/tmp/port_checker_state.json` |
| `AUSPEX_CHECK_TIMEOUT_SEC` | Таймаут проверки порта (сек) | `10` |
| `AUSPEX_MAX_RETRIES` | Количество повторов | `3` |
| `AUSPEX_RETRY_DELAY_SEC` | Задержка между повторами (сек) | `2` |
| `AUSPEX_CERT_CRITICAL_DAYS` | Порог критического алерта (дни) | `3` |
| `AUSPEX_CERT_WARNING_DAYS` | Порог предупреждения (дни) | `15` |
| `AUSPEX_CERT_INFO_DAYS` | Порог информирования (дни) | `30` |
| `cfgDBUser` | БД юзер | `user` |
| `cfgDBPassword` | БД пароль | `qJBrR` |
| `cfgDBName` | Название БД | `waf_info` |
| `cfgDBPort` | Порт БД | `5432` |
| `cfgPrimaryDBHost` | Основная БД | `10.100.10.8` |
| `cfgSecondaryDBHost` | Резервная БД | `10.100.13.5` |
| `SERVICES_TO_CHECK ` | Службы для проверки | `ansible,docker` |
| `EMAIL_SMTP_HOST` | Адрес почтового сервера | `smtp.example.com` |
| `EMAIL_SMTP_PORT` | Порт почтового сервера | `587` |
| `EMAIL_SMTP_USER` | Юзер для отправки | `auspex@example.com` |
| `EMAIL_SMTP_PASSWORD` | Пароль | `secret` |
| `EMAIL_FROM` | Юзер для отправки | `auspex@example.com` |
| `EMAIL_TO` | Получатели | `admin1@example.com, admin2@example.com` |
## Зависимости
- Go 1.22+
- github.com/charmbracelet/bubbletea (TUI фреймворк для `-ss`)
- github.com/charmbracelet/bubbles (компоненты TUI)
- github.com/charmbracelet/lipgloss (стилизация TUI)
- github.com/lib/pq (запросы в БД)
## Требования на хосте
- `ss` или `netstat` — для просмотра портов
- `docker` — для проверки запущенных контейнеров (флаг `-m`)
- `ps` — для деталей процессов (флаг `-ss`)