Бужарово podkop: внедрён мониторинг+автолечение — boot-self-heal (rc.local) + watchdog LXC139 (netns-пробник через SSH, restart podkop при залипе) + алерты TG(Антошка)+email; боевой тест пройден
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -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 провайдера.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user