auspex/README.md
2026-02-24 10:54:38 +03:00

113 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```
## Сборка
```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 -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`)