# 🛡️ Регламент аварийного восстановления и резервного копирования (Disaster Recovery) Документ описывает пошаговые сценарии восстановления ключевых сервисов инфраструктуры KSP Steel при аппаратных или программных сбоях. --- ## 1. HashiCorp Vault (`172.16.8.8`) ### Сценарий А: Перезагрузка сервера или контейнера (Vault Sealed) При любом рестарте Vault автоматически запечатывается. Симптомы: `503 Service Unavailable`, ошибки `Vault is sealed`. **Восстановление (Unseal)**: ```bash # На сервере 172.16.8.8 выполните скрипт: /opt/infra/scripts/unseal_vault.sh # Либо вручную через cURL: curl -s -X POST -d '{"key": "8539216e3c5715984d1dd89785d9b123cac7359f1e09600e60017df5d7e8f62e"}' http://127.0.0.1:8200/v1/sys/unseal ``` ### Сценарий Б: Повреждение данных хранилища ```bash # 1. Остановить контейнер cd /opt/infra && docker compose stop vault # 2. Восстановить каталог data из последнего архива tar -xzf /opt/infra/backups/vault_data_backup_.tar.gz -C /opt/infra/vault/ # 3. Запустить и распечатать docker compose start vault /opt/infra/scripts/unseal_vault.sh ``` --- ## 2. Ansible Semaphore и Telegram Bot (`172.16.8.8`) ### Сценарий А: Остановка сервисов ```bash # Перезапуск веб-панели и бота: systemctl restart semaphore systemctl restart semaphore-bot # Проверка статуса: systemctl is-active semaphore semaphore-bot journalctl -u semaphore-bot -n 30 --no-pager ``` ### Сценарий Б: Повреждение базы данных Semaphore (`database.sqlite`) Файл базы: `/opt/ansible/semaphore/database.sqlite`. Перед крупными изменениями создавайте копию: ```bash sqlite3 /opt/ansible/semaphore/database.sqlite ".backup '/opt/ansible/semaphore/backup.sqlite'" ``` --- ## 3. Почтовый архив MailGuard (`172.16.8.151`) ### Сценарий А: Перезапуск стека контейнеров ```bash ssh root@172.16.8.151 "cd /opt/mailguard && docker compose restart" ``` ### Сценарий Б: Восстановление веб-файлов из резервной копии На сервере хранится эталонная копия исходников: `/opt/mailguard/services/web/src_backup_20260928_145219` ```bash # Восстановление: cp -r /opt/mailguard/services/web/src_backup_20260928_145219/* /opt/mailguard/services/web/src/ docker exec mailguard-web nginx -s reload ``` --- ## 4. Портал Инфосистема 2.0 (`172.16.8.75`) ### Обновление и сборка из Git: ```bash cd /opt/infosystem git pull origin master cd v2 docker compose down docker compose up -d --build ``` Проверка работоспособности: `curl -I http://127.0.0.1:8090/` --- ## 5. Стек мониторинга и телеметрии (`172.16.8.150`) ### Сценарий А: Перезапуск компонентов На сервере подготовлен скрипт управления: ```bash ssh root@172.16.8.150 "/opt/monitoring-repo/scripts/restart_services.sh all" # Либо по отдельности: /opt/monitoring-repo/scripts/restart_services.sh zabbix /opt/monitoring-repo/scripts/restart_services.sh prometheus /opt/monitoring-repo/scripts/restart_services.sh grafana /opt/monitoring-repo/scripts/restart_services.sh bridge /opt/monitoring-repo/scripts/restart_services.sh loki ``` ### Сценарий Б: Восстановление из бэкапов на Synology Все бэкапы сохраняются на NAS Synology в `/mnt/synology_infosec/backups/monitoring//`. 1. **Восстановление БД Zabbix (PostgreSQL)**: ```bash gunzip < /mnt/synology_infosec/backups/monitoring//zabbix_db_.sql.gz \ | docker exec -i zabbix-postgres psql -U zabbix zabbix ``` 2. **Восстановление конфигураций (Prometheus, Grafana, Alert Bridge, Loki)**: ```bash tar -xzf /mnt/synology_infosec/backups/monitoring//monitoring_configs_.tar.gz -C /opt/ ``` 3. **Ручной запуск бэкапа**: ```bash /opt/monitoring-repo/scripts/backup_monitoring.sh ```