Update architecture and backup documentation to include Healthchecks integration
Add Healthchecks service details to architecture and backup documentation, including its role as a Dead man's switch for backups. Update backup scripts to utilize systemd timers instead of cron for improved scheduling. Enhance network topology documentation to reflect Healthchecks integration in the VPS Miran setup. This update clarifies backup processes and enhances overall system reliability.
This commit is contained in:
146
docs/containers/host-proxmox.md
Normal file
146
docs/containers/host-proxmox.md
Normal file
@@ -0,0 +1,146 @@
|
||||
# Хост Proxmox (192.168.1.150)
|
||||
|
||||
Описание хоста Proxmox VE: скрипты, systemd-сервисы, пути и демоны. Контейнеры и ВМ описаны в отдельных статьях (container-100.md и т.д.).
|
||||
|
||||
---
|
||||
|
||||
## Общие сведения
|
||||
|
||||
- **IP:** 192.168.1.150/24
|
||||
- **Доступ:** `ssh root@192.168.1.150`
|
||||
- **Роль:** гипервизор (LXC + KVM), точка запуска бэкапов, деплой секретов в контейнеры
|
||||
|
||||
---
|
||||
|
||||
## Диски
|
||||
|
||||
| Устройство | Тип | Размер | Использование |
|
||||
|--------------|------|--------|----------------------------------|
|
||||
| /dev/nvme0n1 | NVMe | 256 GB | LVM (система, local-lvm) |
|
||||
| /dev/sda | HDD | 2 TB | ZFS |
|
||||
| /dev/sdb | SSD | 2 TB | ext4, /mnt/backup |
|
||||
| /dev/sdc | HDD | 2 TB | ZFS (RAID1 с sda) |
|
||||
| /dev/sdd | HDD | 8 TB | ext4 (внешний) |
|
||||
|
||||
---
|
||||
|
||||
## Каталог скриптов: /root/scripts/
|
||||
|
||||
Скрипты копируются из репозитория в `/root/scripts/` на хосте.
|
||||
|
||||
### Бэкапы (backup-*)
|
||||
|
||||
| Скрипт | Таймер | Назначение |
|
||||
|--------|--------|------------|
|
||||
| backup-vps-miran.sh | 01:00 | VPS Миран: БД бота, voice_users, S3 |
|
||||
| backup-ct101-pgdump.sh | 01:15 | Nextcloud PostgreSQL |
|
||||
| backup-immich-photos.sh | 01:30 | rsync фото Immich с VM 200 |
|
||||
| backup-vps-mtproto.sh | 01:45 | Конфиги MTProto (VPS DE) |
|
||||
| backup-etc-pve.sh | 02:15 | /etc/pve, interfaces, hosts, resolv.conf |
|
||||
| backup-ct104-pgdump.sh | 02:30 | Paperless PostgreSQL |
|
||||
| backup-vaultwarden-data.sh | 02:45 | Данные Vaultwarden |
|
||||
| backup-ct103-gitea-pgdump.sh | 03:00 | Gitea PostgreSQL |
|
||||
| backup-vm200-pgdump.sh | 03:15 | Immich PostgreSQL (SSH на VM 200) |
|
||||
| backup-ct105-vectors.sh | 03:30 | Векторы RAG (vectors.npz) |
|
||||
| backup-restic-yandex.sh | 04:00 | restic → Yandex (без photos) |
|
||||
| backup-restic-yandex-photos.sh | 04:10 | restic → Yandex (только photos) |
|
||||
|
||||
### Мониторинг и уведомления
|
||||
|
||||
| Скрипт | Назначение |
|
||||
|--------|------------|
|
||||
| healthcheck-ping.sh | Ping Healthchecks (04:35) — Dead man's switch |
|
||||
| watchdog-timers.sh | Проверка .ok файлов (12:00), алерт в Telegram при отсутствии |
|
||||
| smartd-notify.sh | Вызывается smartd при проблемах с дисками |
|
||||
| notify-telegram.sh | Общий шлюз уведомлений в Telegram |
|
||||
| notify-vzdump-success.sh | Уведомление после успешного vzdump (по systemd path) |
|
||||
|
||||
### Деплой (deploy-*)
|
||||
|
||||
Скрипты разворачивают секреты из Vaultwarden в контейнеры и на VPS:
|
||||
|
||||
| Скрипт | Куда |
|
||||
|--------|------|
|
||||
| deploy-beget-credentials.sh | CT 100 (certbot) |
|
||||
| deploy-nextcloud-credentials.sh | CT 101 |
|
||||
| deploy-gitea-credentials.sh | CT 103 |
|
||||
| deploy-paperless-credentials.sh | CT 104 |
|
||||
| deploy-rag-credentials.sh | CT 105 |
|
||||
| deploy-invidious-credentials.sh | CT 107 |
|
||||
| deploy-galene-credentials.sh | CT 108 |
|
||||
| deploy-wireguard-credentials.sh | CT 109 |
|
||||
| deploy-immich-credentials.sh | VM 200 |
|
||||
| deploy-vpn-route-check.sh | CT 100 (vpn-route-check) |
|
||||
|
||||
### Прочее
|
||||
|
||||
| Скрипт | Назначение |
|
||||
|--------|------------|
|
||||
| immich-pgdump-remote.sh | Копируется на VM 200, вызывается backup-vm200-pgdump.sh по SSH |
|
||||
| restore-one-vzdump-from-restic.sh | Восстановление одного vzdump из Yandex |
|
||||
| verify-restore-level1.sh, verify-vzdump-level2.sh | Проверка восстановления |
|
||||
| backup-setup-sdb1-mount.sh | Монтирование /dev/sdb1 в /mnt/backup |
|
||||
| setup-vps-miran-backup-on-proxmox.sh | Настройка бэкапа VPS Миран на хосте |
|
||||
| npm-add-proxy.sh, npm-add-proxy-vault.sh, npm-cert-cloud.sh | Вспомогательные для NPM |
|
||||
|
||||
---
|
||||
|
||||
## Systemd: таймеры и сервисы
|
||||
|
||||
Unit-файлы лежат в репозитории в `scripts/systemd/`, на хосте — в `/etc/systemd/system/`.
|
||||
|
||||
### Бэкапы (backup-*.timer)
|
||||
|
||||
Все бэкапы запускаются через systemd timers (cron не используется). Расписание: [backup-howto.md](../backup/backup-howto.md).
|
||||
|
||||
После успешного выполнения сервис создаёт файл `/var/run/backup-<name>.ok` с timestamp.
|
||||
|
||||
### Watchdog (backup-watchdog-timers.timer)
|
||||
|
||||
Ежедневно в **12:00** запускается `watchdog-timers.sh`: проверяет, что все `.ok` файлы свежие (не старше 24 ч). При отсутствии или устаревании — уведомление в Telegram.
|
||||
|
||||
### Healthcheck ping (backup-healthcheck-ping.timer)
|
||||
|
||||
Ежедневно в **04:35** — ping в Healthchecks (Dead man's switch). Если бэкапы не прошли и ping не отправился, Healthchecks шлёт алерт.
|
||||
|
||||
### Vzdump (notify-vzdump-success)
|
||||
|
||||
Задание vzdump настраивается в Proxmox UI. После успешного выполнения срабатывает path-юнит `notify-vzdump-success.service` → уведомление в Telegram.
|
||||
|
||||
### Проверка восстановления (verify-*)
|
||||
|
||||
Таймеры для периодической проверки restic и vzdump: `verify-restore-level1-*`, `verify-vzdump-level2`.
|
||||
|
||||
---
|
||||
|
||||
## Ключевые пути
|
||||
|
||||
| Путь | Назначение |
|
||||
|------|------------|
|
||||
| /mnt/backup/ | Локальные бэкапы (см. [backup-howto](../backup/backup-howto.md)) |
|
||||
| /var/run/backup-*.ok | Healthcheck-файлы для watchdog (timestamp последнего успешного запуска) |
|
||||
| /root/.healthchecks.env | URL и UUID для healthcheck-ping |
|
||||
| /root/.bw-master | Мастер-пароль Bitwarden CLI (chmod 600; для restic, pg_dump) |
|
||||
| /root/.restic-yandex.env | Переменные restic (репозиторий, ключи) |
|
||||
| /etc/smartd.conf | Конфигурация smartd |
|
||||
| /etc/pve/ | Конфиги Proxmox (бэкапятся в backup-etc-pve) |
|
||||
|
||||
---
|
||||
|
||||
## Демоны и сервисы
|
||||
|
||||
| Сервис | Назначение |
|
||||
|--------|------------|
|
||||
| smartd | Мониторинг SMART дисков, при проблемах — smartd-notify.sh → Telegram |
|
||||
| pveproxy, pvedaemon | Proxmox API и веб-интерфейс |
|
||||
| corosync, pve-cluster | Кластер Proxmox (при одномузловой установке — локально) |
|
||||
|
||||
---
|
||||
|
||||
## Связанные документы
|
||||
|
||||
- [Архитектура](../architecture/architecture.md) — обзор, контейнеры, поток запросов
|
||||
- [Бэкапы](../backup/backup-howto.md) — что, куда, когда, восстановление
|
||||
- [Схема сети](../network/network-topology.md) — топология, зависимости
|
||||
- [smartd](../monitoring/smartd-setup.md) — мониторинг дисков
|
||||
- [Healthchecks](../vps/healthchecks-miran-setup.md) — Dead man's switch на VPS Миран
|
||||
Reference in New Issue
Block a user