diff --git a/projects/buzharovo/podkop-router.md b/projects/buzharovo/podkop-router.md index 461b66c..a19d45d 100644 --- a/projects/buzharovo/podkop-router.md +++ b/projects/buzharovo/podkop-router.md @@ -158,6 +158,25 @@ ip netns exec lanprobe curl -s -o/dev/null -w "%{http_code}\n" --resolve web.tel **Урок (для себя):** «роутер `curl`=200 + растут tproxy-счётчики» ≠ «обход у клиентов работает». Output-путь и forward/tproxy-путь — РАЗНЫЕ. Проверять обход только с позиции клиента (netns или реальный телефон), не с роутера. [[../../snippets/podkop-fakeip-diagnostics]] §3-5. +### 2026-06-29: Мониторинг + автолечение podkop (внедрено) +Чтобы залипание форварда не повторялось молча — автолечение на ребут + watchdog с алертами. + +**На роутере TR3000** (постоянно стоят `ip-full`+`kmod-veth`): +- `/usr/local/bin/podkop-probe.sh` — netns-«LAN-клиент» (192.168.1.242 на br-lan), резолвит telegram через `.1` → FakeIP, `curl --resolve` → ждёт HTTP 200. Тестирует именно forward/tproxy-путь. exit 0=OK / 1=сломан / 2=инфра. Лок не нужен. +- `/usr/local/bin/podkop-heal.sh` — `podkop stop; killall sing-box; rm cache.db; podkop start; dnsmasq restart; re-probe`. Лок `/tmp/.pkheal.lock` (от гонок). +- **Boot-self-heal:** `/etc/rc.local` → `( sleep 75; podkop-heal.sh ) &` (busybox cron НЕ умеет `@reboot`). Лечит гонку старта после каждого ребута. +- **Страховочный self-heal:** cron `*/15` `podkop-probe || podkop-heal` (на случай если LXC139 недоступна). crond enabled. + +**На LXC139 (severny-les)** — мозг алертинга (секреты не на удалённом роутере): +- `/usr/local/bin/podkop-watchdog.sh` + systemd-таймер `podkop-watchdog.timer` (`*/5`). По SSH (NetBird) дёргает `podkop-probe.sh` на роутере; при поломке — `podkop-heal.sh`, повторный пробник. +- Состояния `OK`/`DOWN`/`UNREACH` в `/var/lib/podkop-wd/state`, **антиспам** (алерт только при смене). Heal-нотис деду́плится 50 мин. +- **Алерты (оба канала):** Telegram через бота **Антошки** (`8020760639…`, username `maxim_dttb_bot`) → Олег `1292155421`; **email** через mailcow `mail.dttb.ru:587` (`admin@dttb.ru`) → `batlaew@gmail.com`. Конфиг/секреты: `/etc/podkop-wd.env` (chmod 600). +- Сообщения: 🔴 «обход не работает / роутер недоступен», ✅ «восстановлено / роутер на связи», ⚠️ «залипал — авто-вылечен». + +**Проверено боевым тестом 2026-06-29:** `podkop stop` на роутере → watchdog за ~17с поймал (пробник FAIL) → вылечил → пробник `200` → алерт TG+email ушёл, `state=OK`. Оба канала по отдельности тоже протестированы (доставка подтверждена). + +Минор: при рестарте podkop/dnsmasq в логах мелькает `udhcpc: no lease, failing` — DHCP-попытка на неосновном интерфейсе, WAN (`185.13.47.2`) не страдает; разобраться отдельно (косметика). + ## Установка на объекте — чеклист (выезд 2026-06-24, утро) TR3000 полностью преднастроен на столе. На объекте — физический своп со WR6500H + WAN провайдера.