- Added server-150 root credentials and Vault lookup examples - Documented Zabbix 7.0, Grafana, Prometheus, Loki, Portainer and Alert Bridge - Added monitoring ports, targets and Synology NFS backup workflow - Updated topology map and disaster recovery runbooks
120 lines
4.6 KiB
Markdown
120 lines
4.6 KiB
Markdown
# 🛡️ Регламент аварийного восстановления и резервного копирования (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_<TIMESTAMP>.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/<TIMESTAMP>/`.
|
|
1. **Восстановление БД Zabbix (PostgreSQL)**:
|
|
```bash
|
|
gunzip < /mnt/synology_infosec/backups/monitoring/<DATE>/zabbix_db_<DATE>.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/<DATE>/monitoring_configs_<DATE>.tar.gz -C /opt/
|
|
```
|
|
3. **Ручной запуск бэкапа**:
|
|
```bash
|
|
/opt/monitoring-repo/scripts/backup_monitoring.sh
|
|
```
|