OpenClaw logs --follow: как быстро найти причину сбоев в Gateway и cron-задачах
Если openclaw logs --follow не показывает нужные события или вообще пишет, что gateway недоступен, в большинстве случаев проблема не в «магии», а в одном из трёх мест: не тот лог-файл, таймаут WebSocket-рукопожатия или запуск против неправильного Gateway URL. Ниже — рабочая схема, как быстро понять, где ломается цепочка, и что делать без танцев с бубном.
🦞 Что вообще показывает openclaw logs и когда он нужен?
Команда openclaw logs читает file logs Gateway по RPC. Проще говоря, это стандартный способ посмотреть, что делает ваш OpenClaw вживую: принимает ли сообщения, отрабатывают ли cron-задачи, не падают ли инструменты, не ломается ли авторизация, не умирает ли интеграция с Telegram или Discord.
По официальной документации у команды есть ключевые опции: --follow для live-tail режима, --limit для выборки последних строк, --json для структурированного вывода, --plain и --no-color для удобного чтения, а также --local-time, если не хотите каждый раз мысленно переводить время в нормальный человеческий вид.
- 🔹 Для cron — увидеть, запустилась ли задача и что произошло внутри.
- 🔹 Для каналов — проверить, доходят ли входящие сообщения и не ломается ли outbound.
- 🔹 Для диагностики — поймать первую ошибку, а не десятую производную от неё.
- 🔹 Для удалённого Gateway — подключиться по
--urlи--token, если локальная конфигурация не подходит.
Базовая команда выглядит так:
openclaw logs --follow --local-timeЭтой одной строки часто достаточно, чтобы понять, жив ли Gateway и где именно началась боль.
⚙️ Как запустить openclaw logs --follow без лишней боли?
Самый быстрый рабочий сценарий такой: сначала убедиться, что Gateway вообще в строю, потом открыть live-tail, затем сгенерировать событие — например, отправить тестовое сообщение боту или вручную запустить cron-задачу.
| Шаг | Команда | Зачем |
|---|---|---|
| 1 | openclaw status |
Понять, жив ли агент и есть ли связь с Gateway |
| 2 | openclaw gateway status |
Проверить сам сервис Gateway |
| 3 | openclaw logs --follow --local-time |
Смотреть лог-поток в реальном времени |
| 4 | Тестовое событие | Поймать первую полезную ошибку, а не гадать |
Если Gateway не на localhost, используйте явное подключение:
openclaw logs --url ws://127.0.0.1:18789 --token "$OPENCLAW_GATEWAY_TOKEN" --followТонкий момент: при явном --url CLI не подтягивает локальные credentials автоматически. Это частая причина, почему команда вроде бы правильная, а логи не едут.
🚨 Почему openclaw logs --follow иногда врёт, что Gateway недоступен?
По реальным баг-репортам у OpenClaw есть как минимум два неприятных сценария. Первый — handshake timeout после обновления: Gateway жив, openclaw status отвечает, HTTP probe даёт 200, но именно logs-путь падает с ошибкой уровня «Gateway not reachable». На деле виноват не полный даун, а таймаут WebSocket-рукопожатия около 3 секунд.
Второй сценарий — команда читает не тот файл журнала. Такое возможно, если Gateway был запущен вчера, а сегодня CLI почему-то смотрит лог с текущей датой. Визуально это выглядит как «команда работает, но новых событий нет». На самом деле вы просто уткнулись в пустой или старый файл.
- ⚠️ Симптом 1:
Gateway not reachable, хотя статус сервиса зелёный. - ⚠️ Симптом 2: в
openclaw logs --followтишина, а событие точно происходило. - ⚠️ Симптом 3: видите старые строки, но не видите текущую обработку сообщений.
- ⚠️ Симптом 4: cron сработал, а в tail-потоке будто ничего не было.
Именно поэтому правило номер один в диагностике простое: если логическая картина не сходится, не спорьте с инструментом — перепроверьте источник логов.
🔍 Как быстро понять, где именно проблема: команда, Gateway или лог-файл?
Ниже — короткий маршрут, который экономит кучу времени.
- 🧭 Сначала проверьте статус. Если
openclaw statusиopenclaw gateway statusотвечают, значит проблема уже локализована: это не полный отказ системы. - 🧭 Сверьте режим подключения. Если используете
--url, передайте и--token. Без него можно долго смотреть на красивую, но бесполезную ошибку. - 🧭 Откройте fallback-вариант. Если есть подозрение на баг CLI, читайте файл напрямую через
tail -fпо последнему реальному лог-файлу. - 🧭 Сгенерируйте событие вручную. Отправьте тестовое сообщение, дёрните cron, выполните gateway-команду. Нужен не теоретический, а живой след в логах.
- 🧭 Смотрите на первую ошибку. Последующие строки часто просто каскад последствий.
Практически это выглядит так:
openclaw status
openclaw gateway status
openclaw logs --follow --local-time
# если видите странную тишину
ls -t /tmp/openclaw/openclaw-*.log | head -n 3
tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -n 1)"Да, вручную читать лог-файл не так изящно. Зато работает, когда удобная абстракция решила устроить театр одного баг-репорта.
🛠️ Что делать, если логи не идут: рабочие сценарии и исправления
Вот самые полезные действия без лишней философии:
- ✅ Добавьте
--local-time, чтобы не путаться во временных зонах при cron и напоминаниях. - ✅ Для машинной обработки используйте
--json, если собираете логи в свои пайплайны или grep/jq-обвязку. - ✅ При remote mode всегда уточняйте
--urlи--token, особенно после миграций или смены host. - ✅ При подозрении на баг CLI читайте файл напрямую: это лучший временный workaround.
- ✅ После обновления OpenClaw перепроверьте logs-path, если команда внезапно начала падать именно после апдейта.
Мини-чеклист перед тем как обвинять всё подряд:
- 📌 Gateway отвечает на status
- 📌 Вы смотрите в правильный лог-файл
- 📌 Указаны нужные URL и token
- 📌 Тестовое событие реально произошло
- 📌 Первая ошибка понята, а не проигнорирована
Отдельно полезно различать три уровня симптомов. Если не приходит сообщение в канал, это ещё не значит, что сломан сам канал: иногда входящее событие не дошло до Gateway, иногда дошло, но упал инструмент, а иногда всё отработало, но ответ заблокировался на последнем шаге. В логах эти состояния выглядят по-разному, и именно поэтому живой tail экономит часы бессмысленных догадок.
Если вы строите агента под Telegram, Discord, cron-задачи или remote Gateway, умение читать openclaw logs — не «дополнительный навык», а базовая техническая гигиена. Без него отладка превращается в гадание по кофейной гуще, только кофе дороже и бесполезнее.
Хотите собрать OpenClaw-сценарий без бесконечной ручной диагностики? Подпишитесь на Telegram: @aaakalsin. Там регулярно разбираем реальные кейсы, а не только красивые демо.
❓ FAQ по openclaw logs
1. Что делает openclaw logs --follow?
Показывает file logs Gateway в режиме live-tail, чтобы вы видели события и ошибки в реальном времени.
2. Почему команда пишет, что Gateway недоступен, хотя он работает?
Одна из причин — WebSocket handshake timeout. В статусе всё может быть зелёным, а logs-путь при этом падать отдельно.
3. Когда нужен --token?
Когда вы передаёте явный --url к Gateway. В этом режиме CLI не подставляет credentials автоматически.
4. Что делать, если в логах тишина, но события точно идут?
Проверьте, не читает ли CLI неправильный файл журнала. Для проверки используйте прямой tail -f по последнему файлу в /tmp/openclaw/.
5. Зачем нужен --local-time?
Чтобы timestamps сразу отображались в локальной временной зоне. Особенно полезно для cron, напоминаний и ночных отладок.
6. Можно ли использовать openclaw logs для cron-задач?
Да. Это один из лучших способов быстро проверить, запускалась ли cron-задача и на каком шаге она сломалась.
7. Что важнее всего при чтении логов?
Первая ошибка. Обычно именно она показывает корень проблемы, а всё остальное — уже последствия.