Набор утилит мониторинга инфраструктуры WAF
Find a file
2026-03-24 18:00:25 +03:00
.gitignore Work version 2026-02-24 10:54:38 +03:00
certcheck.go Added alert email 2026-03-24 12:51:59 +03:00
config.go Added alert email 2026-03-24 12:51:59 +03:00
dockercheck.go Added alert email 2026-03-24 12:51:59 +03:00
email.go Added alert email 2026-03-24 12:51:59 +03:00
go.mod Work version 2026-02-24 10:54:38 +03:00
go.sum Work version 2026-02-24 10:54:38 +03:00
LICENSE Added license 2026-03-24 18:00:25 +03:00
logcheck.go Added alert email 2026-03-24 12:51:59 +03:00
main.go Added alert email 2026-03-24 12:51:59 +03:00
matchcheck.go Work version 2026-02-24 10:54:38 +03:00
portcheck.go Work version 2026-02-24 10:54:38 +03:00
portsview.go Work version 2026-02-24 10:54:38 +03:00
README.md Added alert email 2026-03-24 12:51:59 +03:00
servicecheck.go Added alert email 2026-03-24 12:51:59 +03:00
telegram.go Work version 2026-02-24 10:54:38 +03:00

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)