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

Поддерживайте агент мониторинга StatusRadar в актуальном состоянии с новейшими функциями, исправлениями ошибок и патчами безопасности.

Быстрое обновление

Самый простой способ обновить агент:

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

Обновление читает вашу существующую конфигурацию из /opt/statusradar/config.env, поэтому передавать токен заново не нужно.

Скрипт обновления автоматически:

  • Останавливает работающий агент
  • Создаёт резервную копию текущей версии
  • Скачивает последнюю версию агента
  • Обновляет все плагины
  • Перезапускает сервис

Автоматическое самообновление

Агент обновляет себя по умолчанию. При каждом сеансе связи он сравнивает собственную версию с последней версией, сообщённой сервером. Когда доступна более новая версия, агент скачивает её, создаёт резервную копию текущего скрипта в /opt/statusradar/statusradar-agent.py.backup, атомарно заменяет /opt/statusradar/statusradar-agent.py и перезапускает себя для загрузки новой версии. Ваша конфигурация остаётся нетронутой.

Чтобы отключить автоматическое самообновление, отредактируйте ExecStart в systemd-юните, добавив --no-auto-update:

sudo systemctl edit --full statusradar-agent
# Append --no-auto-update to the ExecStart line, then:
sudo systemctl daemon-reload
sudo systemctl restart statusradar-agent

При отключённом самообновлении используйте команду ручного обновления ниже всякий раз, когда захотите обновиться.

Когда обновлять

Регулярные обновления

Обновляйте агент:

  • Ежемесячно — для получения новейших функций и улучшений
  • При выходе уведомлений о безопасности — критические патчи безопасности
  • Перед добавлением новых плагинов — для гарантии совместимости плагинов
  • После обновлений системы — для проверки совместимости с новой ОС

Проверьте текущую версию

# View agent file modification date
ls -lh /opt/statusradar/statusradar-agent.py

# Check agent logs for version info
sudo journalctl -u statusradar-agent -n 20 --no-pager | grep "Agent"

Процесс обновления

Автоматическое обновление (рекомендуется)

Шаг 1. Запустите команду обновления

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

Что происходит:

  1. Проверяет, установлен ли агент в /opt/statusradar
  2. Останавливает сервис statusradar-agent
  3. Создаёт резервную копию текущего агента в /opt/statusradar/statusradar-agent.py.backup
  4. Скачивает последнюю версию как /opt/statusradar/statusradar-agent.py.new
  5. Заменяет /opt/statusradar/statusradar-agent.py новым файлом
  6. Скачивает последние плагины в /opt/statusradar/plugins/
  7. Перезапускает сервис

Шаг 2. Проверьте обновление

# Check service is running
sudo systemctl status statusradar-agent

# View recent logs
sudo journalctl -u statusradar-agent -n 50 --no-pager

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

● statusradar-agent.service - StatusRadar Server Monitoring Agent
   Active: active (running)

Ручное обновление

Для большего контроля над процессом обновления:

# 1. Stop the agent
sudo systemctl stop statusradar-agent

# 2. Backup current agent
sudo cp /opt/statusradar/statusradar-agent.py \
  /opt/statusradar/statusradar-agent.py.backup

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

# 4. Make executable
sudo chmod +x /opt/statusradar/statusradar-agent.py

# 5. Update plugins (if using any)
cd /opt/statusradar/plugins
sudo curl -sL https://statusradar.dev/agent/plugins/redis_plugin.py \
  -o redis_plugin.py
# ... repeat for other plugins

# 6. Restart agent
sudo systemctl start statusradar-agent

# 7. Check status
sudo systemctl status statusradar-agent

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

Плагины обновляются автоматически при запуске скрипта обновления. Чтобы обновить конкретные плагины вручную:

Обновление одного плагина

cd /opt/statusradar/plugins

# Update Redis plugin
sudo curl -sL https://statusradar.dev/agent/plugins/redis_plugin.py \
  -o redis_plugin.py

# Update MySQL plugin
sudo curl -sL https://statusradar.dev/agent/plugins/mysql_plugin.py \
  -o mysql_plugin.py

# Restart agent to load new plugin
sudo systemctl restart statusradar-agent

Обновление всех плагинов

# Re-run the updater with your current PLUGINS list
curl -s https://statusradar.dev/install-agent.sh | sudo PLUGINS='redis,mysql,nginx' bash -s update

Список должен совпадать со значением PLUGINS в /opt/statusradar/config.env, поскольку обновлятор скачивает ровно те плагины, которые вы здесь укажете.

Сохранение конфигурации

Ваша конфигурация в безопасности

Процесс обновления сохраняет:

  • /opt/statusradar/config.env — ваш API-токен и настройки плагинов
  • Конфигурации плагинов
  • Конфигурацию systemd-сервиса

Процесс обновления заменяет:

  • /opt/statusradar/statusradar-agent.py — основной скрипт агента
  • /opt/statusradar/plugins/*.py — файлы плагинов

Проверьте конфигурацию после обновления

# Check your config is intact
cat /opt/statusradar/config.env | grep API_TOKEN

# Verify plugins are configured
cat /opt/statusradar/config.env | grep PLUGINS

Откат

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

# Stop the new version
sudo systemctl stop statusradar-agent

# Restore backup
sudo mv /opt/statusradar/statusradar-agent.py.backup \
  /opt/statusradar/statusradar-agent.py

# Restart service
sudo systemctl start statusradar-agent

# Verify rollback
sudo systemctl status statusradar-agent

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

Скрипт обновления завершается с ошибкой

Ошибка: «Agent not installed»

ERROR: Agent not installed. Please run the installer first.

Решение: Перед обновлением агент должен быть установлен:

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

Агент не запускается после обновления

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

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

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

1. Проблемы с зависимостями Python

# Reinstall the core dependencies
sudo pip3 install psutil requests urllib3

# Or if the agent uses a virtual environment
sudo /opt/statusradar/venv/bin/pip install psutil requests urllib3

2. Проблемы с файлом конфигурации

# Check config syntax
cat /opt/statusradar/config.env

3. Проблемы с правами доступа

# Fix permissions
sudo chmod +x /opt/statusradar/statusradar-agent.py
sudo chown -R root:root /opt/statusradar

Обновление скачано, но сервис не перезапускается

# Check service status
sudo systemctl status statusradar-agent

# Check what's preventing start
sudo journalctl -u statusradar-agent -n 50 --no-pager

# Try manual start
cd /opt/statusradar
sudo python3 statusradar-agent.py --token YOUR_TOKEN --once --debug

Рекомендации

1. Сначала тестируйте обновления вне production

Если у вас несколько серверов:

  1. Сначала обновите один тестовый сервер
  2. Понаблюдайте 24 часа
  3. Затем обновляйте production-серверы

2. Обновляйтесь в окна обслуживания

  • Планируйте обновления на периоды низкого трафика
  • Держите наготове план отката
  • Следите за логами после обновления

3. Проверяйте панель управления после обновления

После обновления проверьте в панели управления StatusRadar:

  1. Сервер отображается как «Online»
  2. Метрики собираются
  3. Плагины передают данные
  4. Нет оповещений об ошибках

4. Храните резервные копии

Скрипт обновления автоматически создаёт файлы .backup. Храните их в течение 7 дней:

# List backups
ls -lh /opt/statusradar/*.backup

# Clean old backups (older than 7 days)
find /opt/statusradar -name "*.backup" -mtime +7 -delete

Автоматизированные обновления

Вариант 1. Cron-задание (используйте с осторожностью)

Рекомендуется только для некритичных окружений:

# Edit root crontab
sudo crontab -e

# Add weekly update (Sunday 3 AM)
0 3 * * 0 curl -s https://statusradar.dev/install-agent.sh | bash -s update >> /var/log/statusradar-update.log 2>&1

Вариант 2. График ручного обновления

Более безопасный подход: Поставьте напоминание в календаре, чтобы обновлять вручную ежемесячно

# Save this as update-agent.sh
#!/bin/bash
curl -s https://statusradar.dev/install-agent.sh | bash -s update

Запускайте вручную, когда удобно:

sudo bash update-agent.sh

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

Если при обновлении возникли проблемы:

  1. Проверьте логи: sudo journalctl -u statusradar-agent -n 100
  2. Откатитесь: используйте файл .backup для восстановления предыдущей версии
  3. Ручной тест: запустите агент с флагом --debug
  4. Обратитесь в поддержку: напишите на [email protected] с логами ошибок

Включите эту информацию

При обращении в поддержку:

# System info
uname -a
cat /etc/os-release

# Agent version (backup file date)
ls -lh /opt/statusradar/statusradar-agent.py*

# Service status
sudo systemctl status statusradar-agent --no-pager

# Recent logs
sudo journalctl -u statusradar-agent -n 100 --no-pager

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

On this page