К содержанию
sapportlydocs
Панель

Sapportly Agent

Процесс на вашей инфраструктуре: heartbeat в облако и HTTP/TCP-проверки из локального списка.

Sapportly Agent — бинарник supportly-agent на вашем сервере. Он шлёт heartbeat и выполняет проверки из SAPPORTLY_AGENT_CHECKS. Мониторы сначала создаются в панели — агент сам их не подтягивает.

Быстрый старт

  1. В панели: Обзор → Инциденты → Наблюдение → Новый агент. Скопируйте токен agt_… — он показывается один раз.
  2. Создайте монитор в той же вкладке и скопируйте его monitor_id.
  3. Соберите бинарник из репозитория: cargo build --release -p supportly-agent (backend/crates/supportly-agent).
  4. Задайте переменные и запустите:
envbash
export SAPPORTLY_API_URL=https://staging-api.sapportly.pro
export SAPPORTLY_AGENT_TOKEN=agt_ваш_токен
export SAPPORTLY_AGENT_INTERVAL_SECS=60
export SAPPORTLY_AGENT_CHECKS='[{"monitor_id":"...","type":"http","target":"https://example.com/health"}]'

./supportly-agent

После запуска агент появится в списке как online. Проверки идут только из SAPPORTLY_AGENT_CHECKS: без JSON агент живёт heartbeat’ом, но мониторы не выполняет.

Переменные

ПеременнаяНужнаПо умолчанию
SAPPORTLY_AGENT_TOKENдатокен agt_…
SAPPORTLY_API_URLнетhttps://api.sapportly.pro
SAPPORTLY_AGENT_INTERVAL_SECSнет60 (диапазон 15–3600)
SAPPORTLY_AGENT_TIMEOUT_SECSнет10 (диапазон 1–120)
SAPPORTLY_AGENT_CHECKSнет[] — JSON с monitor_id, type, target

Systemd (Linux)

JSON с кавычками в Environment= systemd ломает. Положите переменные в файл:

/etc/sapportly/agent.envbash
SAPPORTLY_API_URL=https://staging-api.sapportly.pro
SAPPORTLY_AGENT_TOKEN=agt_...
SAPPORTLY_AGENT_INTERVAL_SECS=60
SAPPORTLY_AGENT_CHECKS=[{"monitor_id":"...","type":"http","target":"https://example.com/health"}]
supportly-agent.serviceini
[Unit]
Description=Sapportly Agent
After=network-online.target

[Service]
EnvironmentFile=/etc/sapportly/agent.env
ExecStart=/usr/local/bin/supportly-agent
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Docker

Отдельного публичного образа sapportly/agent нет. Бинарник есть в образе сервера или монтируется с хоста после cargo build.

dockerbash
docker run -d --name sapportly-agent \
  -e SAPPORTLY_API_URL=https://staging-api.sapportly.pro \
  -e SAPPORTLY_AGENT_TOKEN=agt_... \
  -e SAPPORTLY_AGENT_INTERVAL_SECS=60 \
  -e SAPPORTLY_AGENT_CHECKS='[{"monitor_id":"...","type":"http","target":"https://example.com/health"}]' \
  sapportly/backend:latest supportly-agent

Каждая проверка получает уникальный event_id. API сохраняет его вместе с результатом и игнорирует повтор того же события, чтобы одна проверка не увеличивала порог инцидента дважды. Старые агенты без event_id остаются совместимы.

Безопасность

  • Токен агента — как API-ключ: храните в secrets manager, не в git.
  • Отзыв агента в панели сразу блокирует heartbeat и check-results.
  • Агент ходит только в публичные маршруты приёма агента (/v1/agent/*), не с JWT панели.

Связанные разделы

Страница полезна?

/docs/guides/agents
Sapportly Agent — heartbeat и мониторы на вашей стороне · Sapportly Docs