# Kuma / алерты на сбой БД — сессия 2026-08-22 > Итог: задача (оповещения о сбое связи с БД) **поставлена на паузу**. Ниже — полная история, находки, причины и варианты. Kuma на ВМ 213 **откачена**. ## 1. Задача Нужно личное оповещение (почта / Telegram) при сбое связи приложения `whitelist.nodejsk8s.services.ngcloud.ru` с БД. Рассматривался Uptime Kuma как мониторинг. ## 2. Что было развёрнуто и где ### Kuma на кластере `example-timasbxz` (уже существовала, не я) - URL: `https://kum.containerk8s.dev.nubes.ru` - Контейнер-сервис Nubes: deployment `containerk8s`, образ `louislam/uptime-kuma:1` - namespace `5f9245f9-b813-4886-9997-1dd0a85de7e8`, под `containerk8s-595c6c8c5-hsctn` - БД: managed MariaDB `mariak8s.5e053e2c-795d-4dfb-a872-0f98cc65d455.svc.cluster.local` - user `kum`, db `kumbase`, пароль в Nubes UI (`kumpasswd` — тестовый) - Монитор `IPWhitelist DB`: `HTTP(s) - Слово`, URL `https://whitelist.nodejsk8s.services.ngcloud.ru/v2/db-status`, слово `Connected` → **работает (UP)** ## 3. Найденные проблемы (факты) ### 3.1 Telegram заблокирован в сети Nubes/провайдера - Из пода Kuma лог: `connect ETIMEDOUT 149.154.166.110:443` (api.telegram.org). - `api.telegram.org` резолвится в `149.154.166.110` — **заблокирован** (timeout). - Рабочий IP Telegram: **`149.154.167.220`** — открыт (curl `--resolve` → HTTP 302). - Блокировка **выборочная по IP-диапазонам Telegram** (149.154.x частично, 91.108.x), не весь egress. - С личной машины (WSL) Telegram доступен; из кластеров Nubes и ВМ 213 — нет. ### 3.2 Кластеры Nubes — нестабильный канал до API - `example-timasbxz` (185.247.187.234) и `iot-naeel` (185.247.187.149) — оба: - обрезают большие ответы API на ~21–30 KB (JSON неполный); - HTTP/2 падает (`http2: client connection lost`), `kubectl`/`exec` зависают; - малые ответы (metrics, отдельные ноды) стабильны (~0.2 с). - Это общий сетевой слой Nubes (обе машины в подсети 185.247.187.x) — не конкретный кластер. - Ресурсы кластера example в порядке: 16 CPU / 32 GB, занято ~11% CPU / ~29% RAM, ноды Ready. ### 3.3 egress (исходящий) в кластерах - example: NetworkPolicy/CiliumNP/CCNP = **0** (нет политик). Egress к whitelist работает (монитор UP), к Telegram — нет. - iot-naeel: `deny-cross-tenant` — только `policyTypes: ["Ingress"]`, egress не ограничивает; образы из интернета тянутся. ## 4. Инфраструктура (обследовано) ### ВМ 213 = `5.172.178.213` (naeel-vm, отладочная) - SSH: `ssh -i ~/.ssh/naeel_vm_id_ed25519 naeel@5.172.178.213` - На 3001 крутится `node /home/naeel/ipwhitelist/server.js` (whitelist-приложение). - Docker есть (29.1.3); контейнеры: `keycloak` (8080), `llmui` (8888). - nginx на 80/443 (server_name 5.172.178.213 → proxy llmui:8888; домены check.kube5s.ru, obdai.ru). - Telegram: **недоступен** (таймаут). Доступны: google, whitelist, sms.ru, smsc.ru, SMTP (smtp.yandex.ru/gmail/mail.ru). ### VULTR (Германия) = `95.179.252.111` (NaeelVultr) — КРИТИЧНЫЙ (VPN) - SSH: `ssh -i ~/.ssh/vultr_openssh root@95.179.252.111` (исходный ключ `C:\SOFT\vultr.ppk`, сконвертирован в `~/.ssh/vultr_openssh`). - **VPN = Xray** (слушает 8443 и 127.0.0.1:45987) + nginx (80/443) + gunicorn/python (8765/8766). - **Telegram доступен нативно**: `https://api.telegram.org/` → HTTP 302 за 0.09 с. - Ubuntu 22.04, Docker НЕТ, 951 MB RAM, 12 GB свободно. ## 5. Каналы алертов — сравнение | Канал | Доступность из сети | Цена | Примечание | |---|---|---|---| | Telegram | ❌ из Nubes/ВМ 213; ✅ из VULTR и личной машины | 0 ₽ | нужен рабочий IP 149.154.167.220 или выход через VULTR | | Email (SMTP) | ✅ smtp.yandex.ru:465/587 | 0 ₽ | ящик `tazet@narod.ru` + app password | | SMS (smsc.ru) | ✅ 200 за 0.06 с | Мегафон 11.10 ₽, Т2 9.80 ₽, «остальные» 0.50 ₽ | sms.ru тоже доступен | | SMS (междунар. Twilio/46elks/Plivo/ClickSend) | ✅ (Vonage ❌) | платно | для зарубежных номеров | ## 6. Креды (СЕКРЕТЫ — не коммитить в публичные репо) - Telegram-бот: token `8690845859:AAFxjaWe55c1XfeB-hAjeKR3DIsXMQe67lA`, chat_id `378620327`, бот `@wl314159bot`. - Почта (Yandex/narod): `tazet@narod.ru`, app password `msxaxwmjgrbfbqlq`. - SSH: `~/.ssh/naeel_vm_id_ed25519` (ВМ 213), `~/.ssh/vultr_openssh` (VULTR). - Номер получателя: Т2, зарегистрирован в Ульяновске (точный номер не зафиксирован в этой сессии). ## 7. Что сделано и откачено - Kuma была развёрнута на ВМ 213 (Docker): контейнер `uptime-kuma`, порт `3002→3001`, том `/opt/uptime-kuma`. - **ОТКАЧЕНО**: контейнер остановлен и удалён, том удалён, образ `louislam/uptime-kuma:1` удалён, правило ufw 3002 удалено. Порт 3002 свободен. Другие сервисы ВМ 213 (whitelist:3001, keycloak, llmui, nginx) НЕ тронуты. ## 8. Выводы и варианты на будущее 1. **Telegram** — рабочий путь: Kuma на VULTR (Германия), там Telegram нативно работает. Но VULTR критичен (VPN), установка требует аккуратности (без Docker). 2. **Email** — самый простой и безопасный: Kuma где угодно с доступом к smtp.yandex.ru (например, ВМ 213), бесплатно. 3. **SMS** — платно, но надёжно: smsc.ru на Т2 (~9.80 ₽/СМС). 4. Проблема обрезки API кластеров Nubes (~21–30 KB) — на уровне сетевого слоя, адресовать девопсам. ## 9. Ключевые технические детали (для повторного захода) - Монитор whitelist: `HTTP(s) - Слово`, URL `https://whitelist.nodejsk8s.services.ngcloud.ru/v2/db-status`, слово **`Connected`** (не `PG Diagnostic OK` — в HTML между ними тег ``). - Kuma на кластере уже настроена и работает (монитор UP), осталось заменить канал уведомления.