2026 OpenClaw в продакшене: лестница команд, JSONL, пробы шлюза и дневные проверки по токенам (Mac cloud 24/7)
Вы уже прошли первый деплой и порт 18789, но в продакшене всё ещё туманно: зелёный UI — не то же самое, что успешный RPC-probe, отсутствие строк ERROR не доказывает доставку в канал, а рост токенов и вызовов spawn часто тихо нарастает, пока не всплывёт счёт или тикет. Этот гайд следует официальной лестнице диагностики, добавляет практичный порядок чтения JSONL для сборок 2026 года, 15-минутную приёмку после апгрейда (auth, bind, remote/local) и простые ежедневные пороги без Prometheus. Читайте вместе с слоями «тихих» сбоев и разбором sessions_spawn, чтобы наблюдаемость не смешивалась с разовым триажем.
В этом гайде
1. Три боли: почему «ошибок нет» мало
OpenClaw тянет за собой конфиг CLI, процесс шлюза, WebSocket/RPC, плагины каналов, провайдеров моделей и дочерние сессии вроде sessions_spawn. Многие на Mac cloud или Linux VPS останавливаются на «процесс живёт, дашборд открывается», не получая многоуровневого доказательства здоровья. Типичные ошибки триажа: проблемы канала списывают на модель, дрейф URL в gateway.mode=remote принимают за «OpenClaw сломан», половинчатые права Docker volume — за случайный флейк. После апгрейдов (миграция OPENCLAW_*) почти всегда есть серая зона «вроде ок, наполовину настроено».
- Probe против UI:
Runtime: runningне равноRPC probe: ok. Приgateway.mode=remoteCLI может бить не в тот инстанс, локальный сервис простаивает — часто таймауты вместо громких ERROR. - Дисциплина JSONL: структурные логи выигрывают от фиксированного порядка чтения; иначе вы тонете в INFO-heartbeat и пропускаете одну строку
rate_limitилиspawn_rejected. Сначала фильтр по уровню/окну, потом корреляция по id запроса. - Стоимость и тишина spawn: токены и субагенты растут, пока в UX только «чуть медленнее» — это не то же самое, что права песочницы из гайда по sessions_spawn; здесь нужны базовые линии и простые пороги.
В Docker прогоняйте openclaw doctor и в контейнере, и на хосте; расхождение намекает на split-brain конфиг — см. путь Docker doctor.
2. Триаж сигналов: шум и must-fix
| Сигнал | Приоритет | Действие | Не делать |
|---|---|---|---|
RPC probe: failed после смены bind/auth | P0 | Стоп выката; diff gateway.mode, bind, token | Сначала переустанавливать npm глобально |
Серия 429 у провайдера | P0 | Снизить параллелизм; long-context; backoff | Слепые ретраи |
| Проба канала падает, шлюз running | P1 | channels status --probe; scopes бота / URL | Крутить temperature |
| Spawn принят, артефактов дочерней сессии нет | P1 | Сверить release notes; cadence рестартов; статья про spawn | Винить «ленивую модель» |
| Один пропущенный INFO heartbeat | P2 | NTP / сдвиг времени | Ночной полный rewrite |
Распечатайте таблицу рядом с дежурным листом. Сопоставьте с усилением токена шлюза, чтобы время ротации совпадало с провалами проб.
3. Пять+ шагов: лестница, апгрейд, ежедневные проверки
- Лестница команд (ежедневно или перед релизом):
openclaw status→openclaw gateway status(Runtime + RPC probe) →openclaw doctor→openclaw channels status --probe. Порядок не менять. Для remote-проверьте, чтоgateway.remote.urlсовпадает с целью CLI и окружением launchd/systemd. - Хвост JSONL:
openclaw logs --follow(или поддерживаемый RPC tail); фильтрwarn/errorили ключевые слова429,unauthorized,spawn. Для тихих UX-проблем — чеклист heartbeat/Cron. - 15 минут после апгрейда: версия по release notes; рестарт сервиса по доке; doctor чист; тестовое сообщение в канал; минимальный spawn/cron со строкой в логе; diff конфига (auth/bind/SecretRef). Любой шаг провален → сначала откат (обзор апгрейда).
- Пороги по токенам: две человеческие правила, напр. дневные токены +80% к медиане за 7 дней или доля ошибок spawn >5% за час — выносите на стендап без полноценного стека метрик.
- Mac cloud 24/7: в plist
StandardOutPath/StandardErrorPathсовпадают с каталогами логов шлюза; тот же класс проблем, что дрейф окружения launchd («по SSH ок, после ребута нет»). - Docker (опционально): шаг 1 лестницы на хосте и в контейнере; смонтированный конфиг — источник истины.
jq зафиксируйте grep -E 'warn|error|429|unauthorized|spawn', чтобы передачи смены были одинаковыми.4. Заметки для аудита
Зафиксируйте в документации: определение RPC-probe по докам вендора; поля схемы JSONL после каждого апгрейда; политику backoff для 429 с счётчиком ретраев (типовые ошибки); лимиты параллелизма spawn и окно по доле ошибок; cadence ротации токена шлюза vs таблица least-privilege; допустимый сдвиг NTP для окон авторизации WebSocket.
5. От stdout к базе агентов на Mac cloud
OpenClaw на случайных Linux/Windows десктопах с самодельным сбором логов живёт недолго: дрейф окружения, нестабильные пути логов под ночным автозапуском, сложнее многоинстансные апгрейды. Дорогой дашборд без лестницы и контракта полей JSONL не делает инциденты воспроизводимыми.
Production-шлюз на эластичном Mac cloud с нормальным SSH и launchd позволяет описать лестницу, поля JSONL и plist-логи в одном runbook и связать с быстрым деплоем на M4. Для агентов 24/7 с аудитом и восстановлением аренда узлов VPSMAC M4 обычно предсказуемее, чем микс временных рабочих станций: наблюдаемость — это меньше неизвестных состояний, а не больше экранов.
6. FAQ
Нет jq / JSONL — с чего начать?
Сначала зафиксируйте grep-ключевые слова и четырёхшаговую лестницу; структуру наращивайте позже.
Remote vs локальный мониторинг?
Для remote нужны согласованные URL CLI, токен и env сервиса; делите сбои на доступность, авторизацию и «не тот инстанс».
Связь со статьёй про sessions_spawn?
Там — песочница и права; здесь — ежедневное здоровье, апгрейды и пороги стоимости; в инцидентах используйте обе.