Agent offline
Агент показывается в дашборде как offline: heartbeat перестал приходить, статус агента красный, по зависимым компонентам могут открываться инциденты. Ниже — как локализовать причину и восстановить связь.
Симптом
- Статус агента в дашборде
app.flaree.ru—Offline,last_seen_atдавно не обновлялся. - Heartbeat не приходит дольше порогового окна (агент шлёт его раз в минуту).
- Компоненты, обслуживаемые агентом, ушли в
Unknown. - Процесс агента мог завершиться с кодом выхода 77 (невалидный токен) или 78 (версия ниже
minimumVersion/ ошибка конфига).
Диагностика
Проверьте состояние сервиса, код выхода, свежие логи и egress до API:
systemctl status flaree-agent
journalctl -u flaree-agent --since "15 min ago" | tail -n 50
curl -sS -o /dev/null -w '%{http_code}\n' https://api.flaree.ru
Интерпретация вывода:
systemctlпоказываетfailedсоstatus=77— токен отозван: в логе строкаagent token rejected by backend (401); exit 77 (invalid_token).status=78— версия ниже серверногоminimumVersionили в stderr строкаAgentOptions validation failed(неверный конфиг).status=79— автообновление применено, но перезапуститься процесс не смог; нужен ручной рестарт.curlдаётtimeout,Could not resolve hostилиConnection refused— исходящий HTTPS доapi.flaree.ru:443закрыт фаерволом, прокси или DNS.- Сервис
active (running), но heartbeat не доходит — смотрите в логе ошибки транспорта (5xx, backoff): агент буферизует данные и дошлёт их после восстановления связи.
Исправление
- Exit 77: создайте новый токен в дашборде (Agents → Rotate token), обновите
FLAREE_AGENT_TOKENилиtokenвagent.yamlи перезапустите сервис. - Exit 78: обновите бинарник до актуальной версии (при включённом
FLAREE_AGENT_AUTO_UPDATEагент сделает это сам) либо исправьте конфиг по сообщениюAgentOptions validation failed. - Exit 79: просто перезапустите сервис; для Docker задайте
restart: unless-stopped. - Сеть: откройте исходящий HTTPS до
api.flaree.ru:443(фаервол, прокси, NAT) — других портов агенту не нужно.
sudo systemctl restart flaree-agent
sudo journalctl -u flaree-agent -f
# Ожидаемо: register 200, затем ежеминутные heartbeat без ошибок