OpenClaw Gateway установлен — это только старт; в продакшене дежурство съедают искажающие health checks, логи, которые не найти, и дрейф конфигурации после обновлений. Статья для команд, прошедших Linux systemd + Tunnel, Docker Compose или установку на три платформы; дополняет минимальную наблюдаемость, маршрутизацию логов, обновление/откат и таблицу симптомов. Политику маршрутизации смотрите в статье про modelRouting.
Инструкции по установке проверяют счастливый путь; в продакшене — длинный хвост: ложноживые процессы, конфликты портов, смена прав, таймауты моделей ниже по цепочке. Ниже шесть пунктов — вход в работу дежурного от угадывания к проверке фактов.
Слишком мягкие health checks: видят только факт процесса, не то, что шлюз реально маршрутизирует, и замечают полумёртвое состояние только после переключения трафика.
Разрозненные логи: systemd, контейнеры, stdout приложения и обратный прокси пишут отдельно, в инциденте не собрать временную линию.
Обновления без базовой линии: нет digest предыдущего образа или версии глобального npm, откат превращается в «переустановить и надеяться».
Конфиг и секреты вперемешку: openclaw.json и переменные окружения расходятся — проявляется как редкие 401 или тихий провал маршрутизации.
Наблюдаемость отстаёт от изменений: меняют адрес прослушивания или цель Tunnel, пути проб в мониторинге не обновляют.
Шлюз как универсальный исполнитель: тяжёлые задачи Xcode на том же маленьком VPS, CPU под завязку, ошибочный вывод «модель медленная».
Если совпало больше одного пункта, сначала закройте минимальный слой наблюдаемости, потом наращивайте функции; иначе каждый релиз платит за тот же класс сбоев.
Таблица разделяет зоны, чтобы «мы умеем ставить» и «мы держим стабильность» не сливались в одном ревью.
| Тема | Установка / демон (systemd · Docker · три платформы) | Эта статья (наблюдаемость и изменения в продакшене) |
|---|---|---|
| Процесс и поверхность атаки | unit/Compose, привязка к loopback, политика Tunnel или файрвола | пробы живости, обход конфликтов портов, регрессия путей проб после изменений |
| Модель конфигурации | первичная запись openclaw.json, права каталогов | разбор diff, бэкапы, порядок канареечного выката и отката |
| Логи | сначала попадание на диск или сбор journal/docker | смысл полей, корреляционные ID, архив типичных ошибок |
| Обновления | одна копируемая команда обновления или путь к образу | запись digest/версии, точка бэкапа, чеклист проверки отката |
| Маршрутизация моделей | опционально | глубокая стратегия — в отдельной статье modelRouting |
Воспроизводимая эксплуатация строится на одних и тех же командах проверки и одном порядке отката, а не на памяти одного человека.
Порядок подходит и для systemd, и для Docker: сначала факты (процесс, порт, health endpoint), затем интерпретация (логи и низ по цепочке). Команды чуть отличаются по дистрибутиву, контрольные точки должны совпадать.
Главный процесс: systemd — systemctl status; Docker — docker compose ps; смотрите перезапуски и коды выхода.
Прослушивание: ss -lntp или маппинг портов контейнера согласован с целями Tunnel/обратного прокси.
Health checks: HTTP-пробы по документированному или своему пути; отделяйте «процесс поднялся» от «маршрутизация жива».
Свежие логи: journalctl -u или docker compose logs --tail=200; сначала окно по времени, потом полнотекстовый поиск.
Низ по моделям: минимальный запрос, чтобы исключить «шлюз в порядке, API выше сломано».
Запись изменений: в каждом релизе версия/digest, diff конфигурации, снимки проб — чтобы следующее дежурство продолжило с места.
# Пример: быстрый обход (подставьте unit / имя контейнера) systemctl status openclaw-gateway.service --no-pager || true ss -lntp | grep -E '18789|LISTEN' || true # Путь Docker (пример) # docker compose -f /opt/openclaw/docker-compose.yml ps # docker compose -f /opt/openclaw/docker-compose.yml logs --tail=200 gateway
Подсказка: с Cloudflare Tunnel после изменений проверяйте и внешние пробы, и loopback на хосте, чтобы не принять за истину ситуацию, когда снаружи ещё старый маршрут на краю сети.
Откатываемое обновление требует трёх вещей: снимок до релиза, один вектор изменения во время релиза, после — тот же набор проб. В Docker отдавайте предпочтение фиксированному digest или политике тегов в частном реестре; на bare metal/npm фиксируйте версию глобального пакета и lockfile, если применимо.
Канареечный подход: сначала стейджинг или малонагруженная реплика, затем прод; если за шлюзом удалённые исполнители — слойный выкат: сначала контрольная плоскость, потом масштабирование исполнения.
Внимание: без бэкапа openclaw.json и переменных окружения не параллельте «заодно поправить маршрутизацию»; чаще всего прод падает из-за наполовину применённого конфига.
Ниже — порядок величин для согласования на ревью; реальные таймауты и квоты задаёт поставщик и договор.
| Симптом | Сначала подозревать | Направление |
|---|---|---|
| Сразу выходит после старта | синтаксис JSON конфига, нет переменных окружения, порт занят | Воспроизвести в foreground, свериться с чеклистом из статьи про установку |
| Редкие 401 | ротация ключей не синхронна, несколько путей к конфигам | Унифицировать источники инъекции, почистить старые профили shell |
| CPU долго под завязку | нагрузка исполнения на той же машине, что и шлюз | Перенести тяжёлое на выделенные исполнители или удалённый Mac |
| Скачки задержки | ограничение выше по цепочке, DNS, рукопожатие TLS | Слоями логи и захват, изолировать сеть, потом трогать модели |
Втаскивать тяжёлые macOS-сборки, подпись и GUI-зависимые задачи на тот же маленький Linux VPS, что и шлюз, краткосрочно удобно, но бьёт и по стабильности контрольной плоскости, и по отношению сигнал/шум при разборе; один ноутбук редко даёт режим 24/7 и аудируемую изоляцию. Командам, которым нужны стабильный iOS CI, агенты автоматизации и оформляемая в договоре вычислительная мощность, разумнее держать шлюз на обычном VPS, а macOS-исполнение — на выделенных удалённых узлах Mac. По границам эксплуатации и эластичности аренда облачного Mac Mini у NodeMini подходит под этот слой: выбор региона и диска, слой под контрольной плоскостью OpenClaw, дежурство смотрит на ясную поверхность наблюдаемости.
В списке блога включите фильтр категории OpenClaw и читайте по порядку: systemd → Docker → наблюдаемость → modelRouting.
Сначала сверьтесь со страницей цен аренды и оформлением заказа вычислений, бюджет шлюза и слоя macOS раздельно.
Откройте справочный центр, затем перекрёстно проверьте разделы про health checks и логи в этой статье.