feat(mappa-ntfy-monitor): deploy health monitor mappa → ntfy (#1013)
- /root/mappa-ntfy-monitor/monitor.py (python3 stdlib): GET /health (200 + ok:true + service:mappa), алерт после 3 подряд фейлов раз за эпизод + recovery - cron */5 в /etc/cron.d/mappa-ntfy-monitor, env 600 (NTFY_* из pass), топик mappa-alerts - тесты: dry-run OK / негатив 3× → DOWN-алерт / recovery; стек 26 не тронут - ранбук §Мониторинг живости; источник скрипта в scripts/
This commit is contained in:
44
.tasks/done/2026-08-23-01013-mappa-ntfy-monitor.md
Normal file
44
.tasks/done/2026-08-23-01013-mappa-ntfy-monitor.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# mappa-ntfy-monitor
|
||||
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/mappa / 2026-08-23T16:30:27.255Z -->
|
||||
|
||||
|
||||
## Goal
|
||||
Мониторинг живости сервиса mappa на VDS → ntfy-алерт при падении. Остаток #985 mappa-deploy (решение 15/18: фолбэк-режим, алерт при падении сервиса).
|
||||
|
||||
Что сделать:
|
||||
1. Монитор health-эндпоинта https://mappa.vds.kzntsv.site/health (ответ {"ok":true}).
|
||||
2. При падении (недоступен / не-ok / ошибка) — алерт в ntfy: канал ntfy.vds.kzntsv.site, basic-auth vitya/Pryakhin9 (в pass vds-kzntsv/full-env), топик mappa-alerts (свободен).
|
||||
3. Интервал и ретраи — по ранбуку существующих мониторов VDS (пример: snolla-smtp-monitor cron 08:00 MSK). Разумно: проверка раз в ~5-10 мин, алерт после N подряд фейлов (не шуметь на единичном сбое).
|
||||
|
||||
Спека: решения 6/15/18 concepts/mappa (SPOF принят, деградация = явные ошибки + meta.health + алерт).
|
||||
Ограничение: не трогать сам стек mappa (Portainer 26) — только мониторинг. Редеплой/рестарт — отдельной задачей (правило: инфра на VDS через админа).
|
||||
|
||||
## Обязательные скилы — вызвать до начала работы
|
||||
- invoke `using-tasks` — управление статусом задачи
|
||||
- invoke `project-discipline` — дисциплина коммитов/пушей
|
||||
|
||||
**TDD:** нет — ops-задача (мониторинг), не импл
|
||||
**Разрешения:** интерны: нет | автопуш: да
|
||||
**weight:** needs-claude
|
||||
**notify:** OpeItcLoc03/mappa
|
||||
|
||||
## Key files
|
||||
|
||||
## Decisions log
|
||||
- 2026-08-23: Монитор на VDS (как snolla-smtp-monitor: python3 stdlib, /root/, cron /etc/cron.d/, env 600) — проверка с самого VDS через публичный URL (реальный путь пользователя через traefik).
|
||||
- 2026-08-23: Алерт после 3 подряд фейлов (~15 мин при */5), раз за эпизод (state-файл, dedupe) — не шуметь на единичном сбое; recovery-сообщение при возврате.
|
||||
- 2026-08-23: Строгая проверка health: HTTP 200 + ok==true + service=="mappa" (guard от чужого ответа на URL).
|
||||
|
||||
## Open questions
|
||||
|
||||
## Completed steps
|
||||
- [x] Монитор задеплоен: /root/mappa-ntfy-monitor/monitor.py (sha совпадает с источником .admin/scripts/mappa-ntfy-monitor/monitor.py)
|
||||
- [x] Cron */5 в /etc/cron.d/mappa-ntfy-monitor (root, лог /var/log/mappa-ntfy-monitor.log)
|
||||
- [x] Env /root/.mappa-ntfy-monitor.env (600, из pass vds-kzntsv/full-env), топик mappa-alerts
|
||||
- [x] Dry-run success: OK health, exit 0
|
||||
- [x] Негатив-тест: 3 фейла → DOWN-алерт (priority high, ntfy HTTP 200, проверено в топике); 1-2 фейла — без алерта
|
||||
- [x] Recovery: RECOVERED-сообщение в топике, state сброшен
|
||||
- [x] Стек 26 не тронут (только мониторинг)
|
||||
|
||||
## Notes
|
||||
- Деплой: 2026-08-23. Топик mappa-alerts подтверждён в ntfy (vitya admin-role → rw без правки ACL).
|
||||
Reference in New Issue
Block a user