6.1 KiB
Скрипты выполнения TЗ поддержки DetMir
В репозитории добавлены скрипты для регламентных проверок по
docs/DETMIR_SUPPORT_TASKS_RU.md:
scripts/detmir-support-run.sh --scope {daily|weekly|monthly}scripts/detmir-support-daily.shscripts/detmir-support-weekly.shscripts/detmir-support-monthly.sh
Быстрый старт
- Создать приватный файл окружения вне репозитория:
mkdir -p "$HOME/.config/awatch-rus"
cp scripts/detmir-support.env.example "$HOME/.config/awatch-rus/detmir-support.env"
chmod 600 "$HOME/.config/awatch-rus/detmir-support.env"
-
Внести фактические IP/имена хостов, сервисы, пути бэкапов, VM IDs и SSH-данные. Реальные пароли и приватные ключи не должны храниться в репозитории.
-
Запустить нужный режим:
./scripts/detmir-support-daily.sh
./scripts/detmir-support-weekly.sh
./scripts/detmir-support-monthly.sh
Также можно указать отдельный каталог отчётов:
./scripts/detmir-support-run.sh --scope daily --output-dir /var/log/detmir-support
Файл окружения
Скрипт загружает параметры в таком порядке:
- файл из переменной
DETMIR_SUPPORT_ENV_FILE, если она задана; scripts/detmir-support.env, если он существует;$HOME/.config/awatch-rus/detmir-support.env, если локального файла в репозитории нет.
Рекомендуемый промышленный вариант — хранить секреты в
$HOME/.config/awatch-rus/detmir-support.env, а в репозитории держать только
scripts/detmir-support.env.example.
Минимальные параметры для текущего контура DetMir:
DETMIR_SUPPORT_PVE_HOST=10.10.10.2
DETMIR_SUPPORT_AW_HOST=10.10.10.13
DETMIR_SUPPORT_WEB_HOST=10.10.10.2
DETMIR_SUPPORT_WEB_TLS_HOST=10.10.10.2
DETMIR_SUPPORT_WINDOWS_HOST=192.168.100.19
DETMIR_SUPPORT_SURICATA_HOST=10.10.10.2
DETMIR_SUPPORT_SSH_USER=igor
DETMIR_SUPPORT_AW_SSH_USER=igor
DETMIR_SUPPORT_PVE_BACKUP_DIRS=/var/lib/pve/local-btrfs/dump
Парольные переменные вида DETMIR_SUPPORT_AW_SSH_PASSWORD допускаются только в
локальном приватном env-файле. В документации, Git и отчетах пароли не
фиксируются.
Что делает скрипт
Собираются проверки по режиму:
- daily: ключевая доступность, сервисы, диски, VM/CT, бэкапы, task log, Suricata.
- weekly: всё из
daily+ расширенные проверки логов и журналов. - monthly: всё из
weekly+ проверка апдейтов и базовая фиксация документов/DR-процесса.
Актуальные особенности текущего контура:
- операторский gateway находится на
10.10.10.2, а не на историческом10.10.10.11; - текущий Windows/RDP target после восстановления:
192.168.100.19; - web health endpoint:
https://10.10.10.2/healthz, ожидаемый ответ200; - защищенный корень gateway
https://10.10.10.2/штатно отвечает401; - AW API health проверяется через
http://10.10.10.13:5600/api/0/settings/; - актуальный каталог Proxmox backup storage:
/var/lib/pve/local-btrfs/dump; - если
suricata.serviceне активен, проверка процесса Suricata пропускается как следствие состояния сервиса, а не как отдельный сбой процесса.
Результаты
В каталоге отчётов создаются файлы:
support-<scope>-<timestamp>.log— детальный лог запускаsupport-<scope>-<timestamp>.csv— машинный реестр проверокsupport-<scope>-<timestamp>.md— человекочитаемый отчёт
Коды выхода:
0— без ошибок и предупреждений1— есть WARN2— есть FAIL
SKIP означает, что проверка не могла быть выполнена в текущих условиях:
например, нет SSH-аутентификации, сервис намеренно выключен или отсутствует
проверяемый компонент. SKIP не должен маскировать причину: в строке отчета
должна быть указана диагностическая причина, например
Permission denied (publickey,password) или
Skipped because suricata.service state=inactive.
Текущие ожидаемые предупреждения
На момент актуализации документации для контура DetMir допустимо увидеть:
aw-server-rustна10.10.10.13в состоянииinactive, если фактический production service —activitywatch-server;- предупреждение по резервным копиям, если последний файл в
/var/lib/pve/local-btrfs/dumpстарше установленного порога; suricata.service state=inactive, если IDS/IPS на данном узле не введен в штатную эксплуатацию.
Эти предупреждения нужно фиксировать в отчете и отдельно согласовывать: включать сервис, менять список ожидаемых сервисов или отмечать компонент как неиспользуемый.