7.2 KiB
7.2 KiB
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, dbkumbase, пароль в Nubes UI (kumpasswd— тестовый)
- user
- Монитор
IPWhitelist DB:HTTP(s) - Слово, URLhttps://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_id378620327, бот@wl314159bot. - Почта (Yandex/narod):
tazet@narod.ru, app passwordmsxaxwmjgrbfbqlq. - 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. Выводы и варианты на будущее
- Telegram — рабочий путь: Kuma на VULTR (Германия), там Telegram нативно работает. Но VULTR критичен (VPN), установка требует аккуратности (без Docker).
- Email — самый простой и безопасный: Kuma где угодно с доступом к smtp.yandex.ru (например, ВМ 213), бесплатно.
- SMS — платно, но надёжно: smsc.ru на Т2 (~9.80 ₽/СМС).
- Проблема обрезки API кластеров Nubes (~21–30 KB) — на уровне сетевого слоя, адресовать девопсам.
9. Ключевые технические детали (для повторного захода)
- Монитор whitelist:
HTTP(s) - Слово, URLhttps://whitelist.nodejsk8s.services.ngcloud.ru/v2/db-status, словоConnected(неPG Diagnostic OK— в HTML между ними тег<span>). - Kuma на кластере уже настроена и работает (монитор UP), осталось заменить канал уведомления.