Установка агента

Агент StatusRadar — это лёгкий демон мониторинга на Python, который собирает системные метрики и данные плагинов с ваших серверов. Это руководство поможет установить и настроить агент на серверах под управлением Linux.

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

Самый быстрый способ установить агент — воспользоваться нашим скриптом-установщиком в одну строку:

TOKEN='your-agent-token-here' bash -c "$(curl -sL https://statusradar.dev/install-agent.sh)"

Примечание: Замените your-agent-token-here на ваш реальный токен агента из панели управления.

Способы установки

Способ 1. Автоматическая установка (рекомендуется)

Автоматический установщик делает всё за вас:

  • Скачивает последнюю версию агента
  • Устанавливает зависимости Python
  • Создаёт systemd-сервис
  • Настраивает агент
  • Запускает мониторинг

Базовая установка:

TOKEN='your-token' bash -c "$(curl -sL https://statusradar.dev/install-agent.sh)"

Установка с плагинами:

PLUGINS='redis,mysql,nginx' TOKEN='your-token' bash -c "$(curl -sL https://statusradar.dev/install-agent.sh)"

Способ 2. Ручная установка

Если нужен больший контроль над процессом установки, выполните следующие шаги вручную:

Шаг 1. Скачайте агент

# Create directory
sudo mkdir -p /opt/statusradar
cd /opt/statusradar

# Download agent
sudo curl -sL https://statusradar.dev/agent/statusradar-agent.py -o statusradar-agent.py
sudo curl -sL https://statusradar.dev/agent/requirements.txt -o requirements.txt

# Download plugins
sudo mkdir -p plugins
cd plugins
sudo curl -sL https://statusradar.dev/agent/plugins/redis_plugin.py -o redis_plugin.py
# ... download other plugins as needed

Шаг 2. Установите зависимости

# Install Python 3 and pip (if not already installed)
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install -y python3 python3-pip python3-venv

# CentOS/RHEL/Rocky
sudo yum install -y python3 python3-pip

# Install agent dependencies
cd /opt/statusradar
sudo python3 -m pip install -r requirements.txt

Шаг 3. Создайте конфигурацию

Агент читает настройки из shell-файла окружения по пути /opt/statusradar/config.env (systemd-юнит загружает его через EnvironmentFile=). Автоматический установщик создаёт этот файл за вас; при ручной установке создайте его самостоятельно:

# /opt/statusradar/config.env
API_TOKEN=your-agent-token-here
API_URL=https://api.statusradar.dev
INTERVAL=300

# Comma-separated list of enabled plugins (optional)
PLUGINS=redis,nginx

# Plugin settings — add only the ones your enabled plugins need
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
NGINX_STATUS_URL=http://127.0.0.1/nginx_status

Затем ограничьте доступ к файлу, чтобы токен не был доступен на чтение всем пользователям:

sudo chmod 600 /opt/statusradar/config.env

Шаг 4. Создайте systemd-сервис

Создайте файл /etc/systemd/system/statusradar-agent.service:

[Unit]
Description=StatusRadar Server Monitoring Agent
After=network.target
Wants=network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/statusradar
EnvironmentFile=/opt/statusradar/config.env
ExecStart=/usr/bin/python3 /opt/statusradar/statusradar-agent.py --token ${API_TOKEN} --api-url ${API_URL} --interval ${INTERVAL}
Restart=always
RestartSec=30
StandardOutput=append:/var/log/statusradar/agent.log
StandardError=append:/var/log/statusradar/agent.log

[Install]
WantedBy=multi-user.target

Примечание: Настройки берутся из EnvironmentFile=/opt/statusradar/config.env — не прописывайте токен жёстко в ExecStart. Сначала создайте каталог для логов (sudo mkdir -p /var/log/statusradar). На версиях systemd старше v240 (CentOS/RHEL 7) замените две строки Standard* на StandardOutput=journal и StandardError=journal.

Шаг 5. Запустите агент

# Reload systemd
sudo systemctl daemon-reload

# Enable agent to start on boot
sudo systemctl enable statusradar-agent

# Start the agent
sudo systemctl start statusradar-agent

# Check status
sudo systemctl status statusradar-agent

Установка плагинов

Плагины позволяют отслеживать конкретные сервисы — базы данных, веб-серверы и кеши.

Доступные плагины

Плагин Что отслеживает Требования
Redis Кеш/база данных Redis Redis 4.0+
MySQL База данных MySQL/MariaDB MySQL 5.7+ или MariaDB 10.3+
PostgreSQL База данных PostgreSQL PostgreSQL 10+
MongoDB База данных MongoDB MongoDB 4.0+
Nginx Веб-сервер Nginx Nginx с включённым stub_status
Apache Веб-сервер Apache Apache с включённым mod_status
PHP-FPM Менеджер процессов PHP-FPM PHP-FPM с включённой страницей статуса
Memcached Кеш Memcached Memcached 1.4+
RabbitMQ Брокер сообщений RabbitMQ RabbitMQ 3.8+ с management-плагином
Elasticsearch Поисковый движок Elasticsearch Elasticsearch 7.0+
Meilisearch Поисковый движок Meilisearch Meilisearch 1.0+ с включёнными метриками
Varnish HTTP-кеш Varnish Varnish 6.0+
HAProxy Балансировщик нагрузки HAProxy HAProxy 2.0+ с stats-сокетом
Docker Контейнеры Docker Docker 20.10+
VictoriaMetrics TSDB VictoriaMetrics VictoriaMetrics 1.80+
mdadm Программные RAID-массивы Linux mdadm + /proc/mdstat

Установка плагинов

Пример: плагин Redis

PLUGINS='redis' \
REDIS_HOST='localhost' \
REDIS_PORT='6379' \
TOKEN='your-token' \
bash -c "$(curl -sL https://statusradar.dev/install-agent.sh)"

Пример: несколько плагинов

PLUGINS='redis,mysql,nginx,memcached' \
REDIS_HOST='localhost' \
MYSQL_USER='monitor' \
MYSQL_PASSWORD='secret' \
NGINX_STATUS_URL='http://127.0.0.1/nginx_status' \
TOKEN='your-token' \
bash -c "$(curl -sL https://statusradar.dev/install-agent.sh)"

Пример: плагин PostgreSQL

PLUGINS='postgresql' \
POSTGRESQL_HOST='localhost' \
POSTGRESQL_PORT='5432' \
POSTGRESQL_USER='postgres' \
POSTGRESQL_PASSWORD='secret' \
POSTGRESQL_DATABASE='postgres' \
TOKEN='your-token' \
bash -c "$(curl -sL https://statusradar.dev/install-agent.sh)"

Настройка плагинов

Плагины настраиваются через переменные окружения в файле /opt/statusradar/config.env. Перечислите нужные плагины в PLUGINS=, добавьте их переменные, а затем перезапустите агент (sudo systemctl restart statusradar-agent):

# /opt/statusradar/config.env
PLUGINS=redis,mysql,nginx,docker

# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=

# MySQL / MariaDB
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=monitor
MYSQL_PASSWORD=secret
MYSQL_DATABASE=

# Nginx (stub_status endpoint)
NGINX_STATUS_URL=http://127.0.0.1/nginx_status

# Docker
DOCKER_SOCKET=/var/run/docker.sock

Установщик автоматически сохраняет переменные Redis, Docker, VictoriaMetrics и RabbitMQ. Для любого другого плагина (MySQL, PostgreSQL, Nginx, …) добавьте его переменные в config.env и перезапустите агент. Полный список переменных каждого плагина приведён на его странице плагина.

Поддерживаемые операционные системы

Агент StatusRadar поддерживает все современные дистрибутивы Linux:

  • Ubuntu: 18.04, 20.04, 22.04, 24.04
  • Debian: 10 (Buster), 11 (Bullseye), 12 (Bookworm)
  • CentOS: 7, 8, Stream 8, Stream 9
  • RHEL: 7, 8, 9
  • Rocky Linux: 8, 9
  • Fedora: 36, 37, 38, 39
  • Arch Linux: последняя версия
  • Alpine Linux: 3.15+ (агент работает; сначала установите bash и настройте сервис вручную — автоматическая настройка OpenRC в планах)

Примечание: Установщик автоматически определяет ваш менеджер пакетов (apt, dnf/yum, zypper, pacman, apk), поэтому большинство современных дистрибутивов работают «из коробки». Windows и macOS в настоящее время не поддерживаются.

Системные требования

Минимальные требования

  • CPU: 1 ядро (общее)
  • RAM: 50 МБ
  • Диск: 100 МБ
  • Python: 3.6 или новее
  • Сеть: исходящий доступ по HTTPS к api.statusradar.dev

Рекомендуемые требования

  • CPU: 1 ядро (выделенное)
  • RAM: 100 МБ
  • Диск: 500 МБ (для логов)
  • Python: 3.10 или новее

Влияние на производительность

  • Загрузка CPU: < 1% в среднем
  • Потребление памяти: ~20 МБ базово + 5–10 МБ на плагин
  • Сетевой трафик: ~1 КБ/мин (базовые метрики) + ~5 КБ/мин на плагин
  • Дисковый ввод-вывод: минимальный (только во время сбора)

Проверка

После установки убедитесь, что агент работает:

Проверьте статус сервиса

sudo systemctl status statusradar-agent

Ожидаемый вывод:

● statusradar-agent.service - StatusRadar Server Monitoring Agent
     Loaded: loaded (/etc/systemd/system/statusradar-agent.service; enabled)
     Active: active (running) since ...

Проверьте логи

sudo journalctl -u statusradar-agent -n 50 --no-pager

Найдите сообщения об успешном сборе метрик:

INFO: Metrics collected successfully
INFO: Sent metrics to API

Проверьте панель управления

Откройте панель управления StatusRadar — там должен появиться ваш сервер с метриками в реальном времени.

Обновление агента

Чтобы обновить агент до последней версии, используйте режим обновления:

curl -s https://statusradar.dev/install-agent.sh | sudo bash -s update

Или вручную:

# Stop the agent
sudo systemctl stop statusradar-agent

# Download latest version
cd /opt/statusradar
sudo curl -sL https://statusradar.dev/agent/statusradar-agent.py -o statusradar-agent.py

# Restart the agent
sudo systemctl start statusradar-agent

Устранение неполадок

Агент не запускается

Проверьте логи на наличие ошибок:

sudo journalctl -u statusradar-agent -n 100 --no-pager

Частые проблемы:

  • Неверный токен → проверьте /opt/statusradar/config.env
  • Отсутствующие зависимости → выполните pip3 install -r requirements.txt
  • Permission denied → сервис должен запускаться от root

Метрики не появляются

  1. Убедитесь, что агент запущен: systemctl status statusradar-agent
  2. Проверьте сетевую доступность: curl -I https://api.statusradar.dev
  3. Убедитесь, что токен в панели управления верный
  4. Проверьте логи агента на ошибки API

Плагин не работает

  1. Убедитесь, что плагин включён в конфигурации
  2. Проверьте требования плагина (см. документацию по плагинам)
  3. Протестируйте плагин вручную: python3 plugins/redis_plugin.py
  4. Убедитесь, что сервис запущен и доступен

Дальнейшие шаги

Получение помощи