2026: OpenClaw — многоканальный шлюз: openclaw doctor, пробы здоровья и сбои Telegram/Discord — hot-reload openclaw.json, конфликт порта 18789 и runbook для удалённого физического Mac (FAQ)
Если на удалённом физическом Mac у вас одновременно Telegram и Discord, а симптом «один канал жив, второй мёртв» или мигающие health-checks, эта статья привязывает сбой к конфигурации, портам или сети через openclaw doctor и пробы. Вы получите матрицу «симптом → действие», семишаговый воспроизводимый runbook, три пороговых значения для SLO и блок FAQ. Дополнительно по доступу с Windows/Linux к шлюзу см. runbook OpenClaw через PowerShell, WSL2 и прокси; по навыкам workspace после рестартов — OpenClaw Workspace Skills: корень, ClawHub и снимок шлюза.
1. Три повторяющихся узких места (где ломаются многоканальные шлюзы)
1) Неясные границы hot-reload: вы правите openclaw.json и ждёте мгновенного эффекта, но секреты вебхуков, пути к TLS или токены ботов могут остаться в старом процессе — в логах по-прежнему «старые» ошибки, хотя файл выглядит верным.
2) Порт 18789 и дубликаты процессов: локальный diagnostic/admin HTTP (ниже по тексту используем 18789 как типичный порт по умолчанию; подставьте свой) конфликтует, если слушает второй Gateway, старый job launchd или интерактивная сессия. Пробы тогда чередуют connection refused и всплески 503 — это легко спутать с «падением» Telegram или Discord.
3) Асимметричные сбои каналов: Telegram часто на long polling, Discord смешивает WebSocket и REST. Если корпоративный egress, системный прокси и HTTP(S)_PROXY в launchd и в login-shell различаются, получается убедительная картина «один канал всегда таймаутится, второй в порядке».
Перед переписыванием каналов убедитесь, что установка Gateway соответствует ожидаемой раскладке вендора — расхождение версий быстрее всего заставляет читать вывод doctor как чисто сетевую проблему.
2. Матрица симптом → действие (классифицируйте до перезагрузки)
Сверяйте openclaw doctor и пробы с таблицей ниже, чтобы не уйти в цикл «три рестарта — и только потом вопросы».
| Что видите | Сделайте в первую очередь | Вероятный класс причины |
|---|---|---|
| doctor: локальный HTTP недоступен; curl к 127.0.0.1:18789 падает | Карта слушателей, остановка лишних процессов, переустановка plist через install-daemon | Конфликт порта / нет listen |
| Оба канала красные; сетевой блок doctor целиком красный | DNS, прокси и исходящий firewall в неинтерактивной среде (как у launchd) | Egress / прокси |
| Только Discord; Telegram в порядке | Токен и intent; TLS/SNI-проба к discord.com от того же пользователя, что launchd | Учётные данные / права / путь к API |
| Изменение JSON «частично применилось» | Разнести поля на cold-start и hot-reload; снова doctor и сравнить поведение | Поля вне hot-reload |
3. Семишаговый runbook для удалённого физического Mac (вставьте в playbook)
- Базовый снимок: выполнить
openclaw doctor, сохранить полный транскрипт, semver Gateway и хешopenclaw.json(напримерshasum) для простого отката. - Стабилизировать пробы: дергать readiness URL не меньше десяти раз с интервалом ~3 с — один зелёный ответ ещё не восстановление. Согласуйте наблюдения с окнами backoff KeepAlive в launchd.
- Матрица listen на 18789:
lsof -nP -iTCP:18789 -sTCP:LISTEN(замените порт при необходимости). Если несколько PID, связанных с OpenClaw, оставьте один основной экземпляр. - Дымовые тесты по каналам: Telegram — минимальный вызов уровня getMe; Discord — состояние сокета/шарда в логах или минимальный REST HEAD. Не прячьте сбой одного канала за один «глобально здоров» флаг.
- Hot reload vs cold start: пометьте каждый ключ JSON как обновляемый в рантайме или требующий рестарта; для второго предпочтителен контролируемый рестарт, а не серия SIGHUP.
- Контролируемый рестарт: остановка через
launchctlили потокinstall-daemon, проверка нулевых слушателей, старт и просмотр первых ~200 строк структурированных логов. - Закрытие инцидента: в течение 30 минут снова doctor, пробы и реальное сообщение пользователя в каждом канале — трёх скриншотов в тикете достаточно для закрытия.
Для связки launchd, install-daemon и openclaw health сложите этот runbook поверх вашего гайда по Gateway 7×24 — каденс проб и язык про backoff KeepAlive должны совпадать построчно.
4. Пороги и чек-лист (готовые цифры для SLO)
- Интервал пробы: для readiness класса gateway опрашивайте каждые 30–60 секунд; чаще ~15 с вы получите ложные срабатывания на GC.
- Правило последовательных успехов: требуйте минимум пять подряд HTTP 2xx, иначе будете гоняться за «миганием».
- Окно регрессии: после любого изменения конфига — сквозные сообщения на обоих каналах в течение 30 минут как минимум для закрытия инцидента.
5. FAQ
После правки openclaw.json всегда ли нужен полный перезапуск Gateway?
Как правило да для учётных данных каналов, вебхуков и TLS. Отдельные сборки подхватывают без listener-изменений часть флагов на лету, но в проде после openclaw doctor выполните контролируемый рестарт, чтобы не оставить полузагруженные listener'ы.
Как на практике выглядит конфликт порта 18789?
Admin/diagnostic HTTP не биндится или деградирует; пробы отвечают connection refused. Используйте lsof, завершите устаревшие job'ы Gateway и перезапустите, когда порт свободен.
Telegram работает, Discord нет — какие три блока конфигурации проверить в первую очередь?
Токен и intent, белые списки прокси для API Discord и DNS для discord.com под тем же аккаунтом, что и launchd. Сочетайте curl -I и вывод doctor по каналам, чтобы отделить TLS/DNS от багов приложения.
6. Почему Mac mini упрощает эксплуатацию этого шлюза
Диагностика многоканального шлюза ломается, когда среды расходятся: интерактивная оболочка выходит в интернет, а job launchd не видит прокси или корпоративный CA. macOS на Apple Silicon даёт стабильный долгоживущий процесс Node и unified memory — меньше загадочных всплесков памяти ночью. Mac mini M4 в простое около 4 Вт — разумный выбор для шкафного/стоечного шлюза без шума; Gatekeeper, SIP и FileVault сужают поверхность атаки по сравнению с типичным Windows-хостом утилит.
Если вы раздаёте Telegram и Discord глобальной аудитории, привязка шлюзов к проверенным физическим Mac в нужных регионах снимает драму single-region egress и спор «на ноутбуке воспроизводится, на сервере нет».
Чтобы этот runbook крутился на железе, которое тихо, прохладно и предсказуемо, Mac mini M4 — один из лучших входов по цене к стабильности; оформите узел ZoneMac и с первого дня выровняйте пробы doctor с промышленным macOS.
Нужен физический Mac для OpenClaw 24/7?
ZoneMac — региональные Mac mini для постоянных шлюзов, CI и операций с упором на аудит.