Files
knowledge-base/decisions/2026-05-08-severny-les-bot-buzharovo.md

6.3 KiB
Raw Blame History

date, type, tags
date type tags
2026-05-08 decision
decision
buzharovo
bot
openclaw
watchdog
telegram

2026-05-08: Северный лес — отдельный AI-ассистент + watchdog для server1c (Бужарово)

Контекст

Олег уезжает в отпуск в Египет 2026-05-09 → 2026-05-22. На server1c (Бужарово, VDS 185.13.47.2 / NetBird 100.70.75.103) недавно (2026-05-07) был rmngr-loop, который лечится только Restart-Service '1C:Enterprise 8.3 Server Agent (x86-64)' -Force — ребут не помогает (см. decisions/2026-05-07-buzharovo-1c-rmngr-loop-after-crash).

Пока Олег в отпуске, нужно:

  1. Чтобы кто-то узнавал когда сервер упал (Telegram-группа руководящего состава Северного леса);
  2. Чтобы можно было дёрнуть восстановительное действие (/approve restart_1c) не дожидаясь возвращения Олега из Египта.

Через ~2 недели (после Египта) планируется миграция server1c с VDS на собственный сервер. Бот должен работать до и после миграции — поэтому он не на самом server1c, а на dttb-Proxmox через NetBird.

Развилка: clawdbot vs openclaw vs другой watchdog

Рассматривались три варианта:

Вариант Плюсы Минусы
clawdbot (как у [[projects/niikn/clawdbot-niikn Максимки-Мауля]]) Проверенный рецепт, проще
openclaw (свежий стек 137) Встроенный exec-approvals.json whitelist для shell-команд. Plugins, skills, делегирование на Opus 4.7 через Max. Свежий, активная разработка. Жёсткая schema, есть тонкости (bonjour, IPv6, FakeIP DNS) — но они уже разобраны на 137.
Голый watchdog без AI Минимум зависимостей. Нет диагностики "почему упало". Невозможно дёрнуть /restart_1c через /approve — только ручной WinRM.

Решение: openclaw — встроенный whitelist для shell-команд (exec-approvals.json) — это прямо то что нужно для /approve flow. Плюс Опус 4.7 через Max.

Архитектура

Изоляция от Максимки (LXC 137): не подвешиваем как доп.канал на 137 — если openclaw на 137 упадёт (а это бывает: bonjour, FakeIP, Kiro 402), упадут и алерты Бужарово. Для критичной мониторинг-задачи нужен отдельный инстанс.

Хост: новый LXC 139 на dttb (10.0.0.240, NetBird 100.70.212.78, Ubuntu 24.04, 2c/4GB/10GB).

Два слоя независимых:

  1. buzharovo-watchdog — bash + curl→TG bot API напрямую, systemd timer 60s. Не зависит от openclaw. Если AI-часть упала, алерт всё равно дойдёт.
  2. openclaw 2026.5.7 — AI-помощник для диагностики и /approve-action'ов через WinRM.

Алерт-уровни:

  • OK — всё доступно;
  • WARNING — часть проверок упала;
  • WARNING_NETBIRD — NetBird до server1c лежит, публично сервер виден;
  • CRITICAL — сервер не отвечает ни публично, ни через NetBird.

Антиспам: алерт шлётся только при смене уровня, состояние в /var/lib/severny-les/state.json.

WinRM-actions с подтверждением:

  • read-only без approval (/status, /check_1c, /check_rmngr);
  • destructive с обязательным /approve от Олега 1292155421 (/restart_1c, /kill_orphan_ragent);
  • ребута сервера НЕ даём (по опыту 2026-05-07 не помогает rmngr-loop).

Превентивные правки на старте (уроки 137)

Все три "ловушки openclaw" пропатчены сразу:

  1. plugins.entries.bonjour.enabled = false — против mDNS crash-loop (см. projects/dttb/openclaw#Crash-loop-каждые-40-сек).
  2. pct set 139 --nameserver '1.1.1.1 8.8.8.8' + правка /etc/resolv.conf — против FakeIP DNS от 10.0.0.1.
  3. NODE_OPTIONS=--dns-result-order=ipv4first в systemd unit — против IPv6-сбоев Telegram API.

systemd unit для openclaw — system-level (/etc/systemd/system/openclaw-gateway.service), а не --user как на 137. В LXC без user-session systemctl --user не работает (Failed to connect to bus).

Что осталось сделать после возвращения Олега

  1. NetBird ACL severny-lesserver1c (порт 5985 TCP минимум) — без него WinRM-actions не работают, watchdog мониторит только публичные проверки.
  2. Добавить @bz_sl_bot в TG-группу руководящего состава, узнать chat_id, обновить /etc/severny-les/watchdog.env BZ_TG_CHAT и openclaw.json groupAllowFrom.
  3. После миграции server1c на свой сервер — обновить IP в /root/clawd/INFRASTRUCTURE.md и в buzharovo-watchdog.sh.

Артефакты

  • LXC 139 severny-les (10.0.0.240)
  • TG bot @bz_sl_bot (token 8322860033:...)
  • Справочник: projects/buzharovo/severny-les-bot
  • Persona: /root/clawd/{IDENTITY,INFRASTRUCTURE,USER,SOUL,TOOLS,MEMORY,HEARTBEAT}.md
  • Скрипты: /root/clawd/scripts/check_buzharovo.sh, winrm_lib.py, check_1c_service.py, check_rmngr_cpu.py, restart_1c_agent.py, kill_orphan_ragent.py, heartbeat.sh
  • Watchdog: /usr/local/bin/buzharovo-watchdog.sh + .service + .timer (60s); netbird-watchdog clone с 137 (2 мин)
  • Whitelist: /root/.openclaw/exec-approvals.json