alerts: BackupNeverReported (absent) — ловит задачи бэкапа, ни разу не отчитавшиеся

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
gilfanovr
2026-10-11 15:16:17 +03:00
co-authored by Claude Opus 5.5
parent 464e12abdb
commit 4965f70299
2 changed files with 35 additions and 0 deletions
+1
View File
@@ -60,6 +60,7 @@ OneDrive на внешний HDD. Мониторится с fr1 через pushg
- Доставка: `metrics-push <job>` = ssh с ключом `/etc/metrics-push/id_ed25519` (root, 600) на `rus@161.97.93.252`; host key fr1 закреплён в `/etc/metrics-push/known_hosts`. На fr1 ключ ограничен forced command (`servers/fr1.md` → Мониторинг).
- `smart-metrics` заодно отдаёт `backup_disk_size_bytes`/`backup_disk_avail_bytes` для `/mnt/backup` (statfs, диск не будит).
- Дашборд: https://mon.ruzzy.dev/d/rpi-disk (SMART, износ за сутки, свежесть бэкапов, заполнение).
- ⚠️ `BackupStale` видит только **существующие** серии — задача, ни разу не отчитавшаяся, им не ловится. Для этого `BackupNeverReported` на `absent()` (с 2026-10-11): OneDrive 12 ч, серверы 26 ч, роутер 30 ч, проверка OneDrive 8 дней; и `PushMetricsStale` на отсутствие SMART-метрик 1 ч. Доставка в Telegram проверена тестовым алертом 2026-10-11.
- Алерты — группа `rpi` в `stacks/monitoring/prometheus/rules/alerts.yml`.
## Агент Astra (с 2026-10-11)
@@ -116,3 +116,37 @@ groups:
labels: {severity: warning}
annotations:
summary: "{{ $labels.instance }}: диск в роутере (/mnt/router, SFTP) недоступен 30+ мин — вторая копия бэкапа не пишется"
# BackupStale видит только существующие серии: если задача ни разу не отчиталась
# (таймер сломан, первый прогон упал до хука) — серии нет, и он молчит. Ловим отсутствие.
- alert: BackupNeverReported
expr: |
absent(backup_last_success_timestamp{instance="rpi",job="backup_onedrive"})
for: 12h
labels: {severity: critical, instance: rpi, job: backup_onedrive}
annotations:
summary: "rpi: синхронизация OneDrive ни разу не отчиталась об успехе за 12+ ч — проверь onedrive-backup"
- alert: BackupNeverReported
expr: absent(backup_last_success_timestamp{instance="rpi",job="backup_servers"})
for: 26h
labels: {severity: critical, instance: rpi, job: backup_servers}
annotations:
summary: "rpi: бэкап серверов fr1/ru1 не отчитывался 26+ ч — проверь servers-backup"
- alert: BackupNeverReported
expr: absent(backup_last_success_timestamp{instance="rpi",job="backup_router"})
for: 30h
labels: {severity: critical, instance: rpi, job: backup_router}
annotations:
summary: "rpi: копия на диск роутера не отчитывалась 30+ ч — проверь router-backup"
- alert: BackupNeverReported
expr: absent(backup_last_success_timestamp{instance="rpi",job="backup_onedrive_verify"})
for: 8d
labels: {severity: warning, instance: rpi, job: backup_onedrive_verify}
annotations:
summary: "rpi: проверка целостности OneDrive не отчитывалась 8+ дней — проверь onedrive-verify"
- alert: PushMetricsStale
expr: absent(push_time_seconds{instance="rpi",job="smart"})
for: 1h
labels: {severity: warning, instance: rpi, job: smart}
annotations:
summary: "rpi: метрики SMART в pushgateway отсутствуют 1+ ч — малина/пуш лежат или pushgateway потерял данные"