2026: пробы здоровья OpenClaw, синтетический аптайм и пороги по диску на арендованном Mac mini
Шлюзы OpenClaw на арендованном Mac mini ProxyMac в HK, JP, KR, SG или US могут выглядеть «здоровыми», тихо ломаясь: HTTP-слушатель всё ещё на порту, но маршруты к моделям застряли, диск заполнен на 92 %, или LaunchAgents перезапускаются так быстро, что логи не успевают сброситься на диск. Этот плейбук 2026 добавляет многоуровневые пробы — быстрые curl на localhost по расписанию LaunchAgent, более медленные проверки синтетического аптайма извне вашей LAN и пороги по диску и unified logging — и связывает сбои с паттернами перезапуска из восстановления через launchctl и структурированной диагностикой в гайде по развёртыванию. Вы получите матрицу сигналов в пять колонок (другая форма таблицы, чем в гайде по rate limit), готовую строку curl-пробы, цифры по таймингу (60 с период, 5 с клиентский таймаут, 12 ГБ нижний порог свободного диска) и пятиступенчатую матрицу инцидента, чтобы дежурный не гадал, что сломалось первым — Cloudflare, TLS или процесс шлюза.
Сочетайте материал с заметками справочного центра по автоматизации и зарезервируйте ёмкость через тарифы, прежде чем навешивать на одну mini ещё агентов.
Зачем шлюзу пробы шире, чем «процесс запущен»
macOS показывает зелёный цвет в Activity Monitor, пока рабочий поток заблокирован на futex. Внешние провайдеры говорят лишь, что ICMP дошёл до хоста — но не то, что HTTP-поверхность OpenClaw вернула HTTP/200 с JSON, подтверждающим загрузку учётных данных модели. Пробы должны отвечать по порядку на три вопроса: TCP на порту принимается? Логика приложения сообщает готовность? Зависимости (диск, секреты, внешние API) в пределах SLA? Пропустите слой — и будете раз за разом открывать один и тот же Sev2 по пятницам.
- Видимость LaunchAgent: неудачные пробы увеличивают счётчик, который можно отправить в SIEM через syslog.
- Канареечные полезные нагрузки: эхо JSON на 512 байт доказывает завершение TLS и разбор JSON, а не только TCP.
- Санитарный минимум для оператора: после трёх подряд неудачных проб за 2 минуты автоперезапуск только если последний чистый останов был более 10 минут назад — так снижается риск fork bomb.
Типы сигналов: liveness, readiness и бизнес-уровень
| Сигнал | Что проходит | Что всё ещё ломается | Типичный инструмент | Рекомендуемый период |
|---|---|---|---|---|
| TCP открыт | Порт 443 принимает SYN | Ошибка TLS, паника приложения | nc -vz 127.0.0.1 PORT | Каждые 120 с (дёшево) |
| HTTP liveness | 200 OK с пустым телом | Истёкший токен модели | curl -fsS --max-time 5 URL | Каждые 60 с |
| HTTP readiness | JSON: глубина очереди < порога | Падение upstream LLM | Скрипт с jq | Каждые 180 с |
| Бизнес-проба | Синтетический диалог завершён | Редкие гонки | Отдельная worker-mini | Каждые 15 мин |
Паттерн localhost, переживающий TLS спереди
Привяжите административный health-маршрут к 127.0.0.1 на высоком порту, отдельно от публичного webhook-сокета из гайда по ужесточению вебхуков. LaunchAgent должен работать в том же пользовательском контексте, что и шлюз, чтобы элементы Keychain оставались разблокированными. Используйте curl --fail --silent --show-error --max-time 5, чтобы зависший бэкенд не блокировал launchd бесконечно.
curl -fsS --max-time 5 http://127.0.0.1:18080/healthz || logger -t openclaw-probe "FAIL"
Таймер LaunchAgent: StartInterval и ThrottleInterval
Apple задаёт StartInterval в секундах; вместе с ThrottleInterval не меньше 30, если скрипт пробы ещё и запускает remediation — иначе вы бьёте по launchctl kickstart быстрее, чем шлюз успевает освободить сокеты. Успехи логируйте только на уровне отладки; неудача — одна строка с эпохой Unix, кодом выхода и временем curl.
Внешняя синтетика без публикации админ-маршрутов
Выберите внешний монитор с взаимными TLS client certs или подписанными заголовками запроса; не выкладывайте неаутентифицированный health JSON в открытый интернет. Задержка HTTPS-пробы из Токио до mini в JP должна укладываться примерно в 80 мс p95 — если синтетика деградирует, а localhost зелёный, подозревайте WAF выше по цепочке или истечение сертификата, а не сам OpenClaw.
Пороги по диску и unified logging
Нагрузки OpenClaw со стримингом транскриптов заполняют /var/db/diagnostics быстрее, чем команды ожидают. Алертите по доступным байтам ниже 12 ГБ (не по процентам — снимки APFS искажают проценты). Отслеживайте скорость роста: больше 3 ГБ в сутки на однотенантной mini обычно означает, что после инцидента оставили включённым отладочный лог. Ротируйте логи приложения лимитами в духе newsyslog или отправляйте на удалённое хранилище, пока gzip не начал отъедать CPU у инференса.
Пять шагов, когда пробы стали красными
- Подтвердите охват: расходятся ли localhost и внешние пробы? Если падает только внешняя — начинайте с TLS и DNS.
- Проверьте stderr LaunchAgent:
log show --predicate 'process == "curl"' --last 5mв macOS 15 ловит большинство сбоев без verbose-логов шлюза. - Валидируйте зависимости: диск, inode, счётчики 429 у провайдера моделей — повторно используйте таблицу HTTP-сигналов из гайда по failover.
- Один перезапуск по защищённому паттерну kickstart; если пробы снова красные в течение 90 секунд, прекратите цикл и снимите spindump.
- Задокументируйте blast radius: какие автоматизации приостановлены, какие регионы HK / JP / KR / SG / US остались здоровыми, приложите артефакты к тикету изменений.
FAQ
Запускать пробы от root? Предпочтительно тот же непривилегированный пользователь, что и у шлюза, чтобы права на файлы совпадали с продом.
Можно ли переиспользовать MCP health? Часто да — см. настройку MCP — но core health OpenClaw держите отдельно, чтобы частичный аут MCP не маскировал смерть шлюза.
А высокая конкурентность агентов? При всплеске конкуренции readiness-пробы могут дребезжать — ужесточайте пороги очереди раньше, чем глушить алерты.
Почему Mac mini ProxyMac — правильное место для ужесточения проб OpenClaw
Запуск проб рядом со шлюзом на Apple Silicon M4 в HK / JP / KR / SG / US даёт предсказуемый CPU для скриптов curl+jq, нативную интеграцию с launchd и достаточно однотенантного диска, чтобы пережить подробный лог во время инцидента — без сюрпризов Linux cgroups. Арендуйте mini ближе к региону API моделей через тарифы, закрепите plist проб в том же Git-репозитории, что и конфиг OpenClaw, по гайду GitOps, и освободите машину после пилота, чтобы финансы видели понятные SKU вместо загадочных строк облака.
Автоматизация с запасом под пробы
Mac mini в HK / JP / KR / SG / US для OpenClaw и скриптов мониторинга