Набор утилит мониторинга инфраструктуры WAF
| .gitignore | ||
| certcheck.go | ||
| config.go | ||
| dockercheck.go | ||
| email.go | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| logcheck.go | ||
| main.go | ||
| matchcheck.go | ||
| mattermost.go | ||
| portcheck.go | ||
| portsview.go | ||
| README.md | ||
| servicecheck.go | ||
| telegram.go | ||
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
Сборка
go mod tidy
go build -o auspex
Использование
# Интерактивное меню
./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)