Набор утилит мониторинга инфраструктуры WAF
Find a file
2026-02-24 10:54:38 +03:00
.gitignore Work version 2026-02-24 10:54:38 +03:00
certcheck.go Work version 2026-02-24 10:54:38 +03:00
config.go Work version 2026-02-24 10:54:38 +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
logcheck.go Work version 2026-02-24 10:54:38 +03:00
main.go Work version 2026-02-24 10:54:38 +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 Work version 2026-02-24 10:54:38 +03:00
telegram.go Work version 2026-02-24 10:54:38 +03:00

Auspex

Набор утилит мониторинга инфраструктуры.

Утилиты

Ключ Описание
-ss Просмотр занятых портов (интерактивный TUI на bubbletea)
-c Проверка SSL сертификатов (сроки истечения, алерты в Telegram)
-p Проверка доступности портов из nginx upstream конфигов
-m Проверка совпадений портов Angie ↔ Docker (+ проверка запуска контейнеров)
-l Проверка обновления файлов PT AF access logs

Структура проекта

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
├── 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 -h               # Справка
./auspex -v               # Версия

Конфигурация

Все настройки находятся в config.go.

Текущий режим: хардкод

Значения прописаны прямо в коде. Для изменения — отредактируйте переменные и пересоберите.

Переключение на переменные окружения

В файле config.go рядом с каждым хардкод-значением есть закомментированные строки для чтения из переменных окружения. Для переключения:

  1. Раскомментируйте нужные строки в config.go
  2. Или вызовите config.InitFromEnvOverrides() в main.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 БД пароль qJB
cfgDBName Название БД waf_info
cfgDBPort Порт БД 5432
cfgPrimaryDBHost Основная БД 10.100.10.8
cfgSecondaryDBHost Резервная БД 10.100.13.5

Зависимости

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