112 lines
5.4 KiB
Markdown
112 lines
5.4 KiB
Markdown
# 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` |
|
||
|
||
## Зависимости
|
||
|
||
- 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`)
|