auspex/README.md
2026-02-26 12:47:28 +03:00

5.4 KiB
Raw Blame History

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

Зависимости

  • 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)