Обновление агента
Поддерживайте агент мониторинга 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
Что происходит:
- Проверяет, установлен ли агент в
/opt/statusradar - Останавливает сервис
statusradar-agent - Создаёт резервную копию текущего агента в
/opt/statusradar/statusradar-agent.py.backup - Скачивает последнюю версию как
/opt/statusradar/statusradar-agent.py.new - Заменяет
/opt/statusradar/statusradar-agent.pyновым файлом - Скачивает последние плагины в
/opt/statusradar/plugins/ - Перезапускает сервис
Шаг 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
Если у вас несколько серверов:
- Сначала обновите один тестовый сервер
- Понаблюдайте 24 часа
- Затем обновляйте production-серверы
2. Обновляйтесь в окна обслуживания
- Планируйте обновления на периоды низкого трафика
- Держите наготове план отката
- Следите за логами после обновления
3. Проверяйте панель управления после обновления
После обновления проверьте в панели управления StatusRadar:
- Сервер отображается как «Online»
- Метрики собираются
- Плагины передают данные
- Нет оповещений об ошибках
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
Получение помощи
Если при обновлении возникли проблемы:
- Проверьте логи:
sudo journalctl -u statusradar-agent -n 100 - Откатитесь: используйте файл
.backupдля восстановления предыдущей версии - Ручной тест: запустите агент с флагом
--debug - Обратитесь в поддержку: напишите на [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
Дальнейшие шаги
- Руководство по настройке — настройте обновлённый агент
- Руководство по устранению неполадок — устраните проблемы
- Документация по плагинам — добавьте новые плагины
- Руководство по удалению — если нужно удалить агент
- Быстрое обновление
- Автоматическое самообновление
- Когда обновлять
- Регулярные обновления
- Проверьте текущую версию
- Процесс обновления
- Автоматическое обновление (рекомендуется)
- Ручное обновление
- Обновление плагинов
- Обновление одного плагина
- Обновление всех плагинов
- Сохранение конфигурации
- Ваша конфигурация в безопасности
- Проверьте конфигурацию после обновления
- Откат
- Устранение неполадок при обновлении
- Скрипт обновления завершается с ошибкой
- Агент не запускается после обновления
- Обновление скачано, но сервис не перезапускается
- Рекомендации
- 1. Сначала тестируйте обновления вне production
- 2. Обновляйтесь в окна обслуживания
- 3. Проверяйте панель управления после обновления
- 4. Храните резервные копии
- Автоматизированные обновления
- Вариант 1. Cron-задание (используйте с осторожностью)
- Вариант 2. График ручного обновления
- Получение помощи
- Включите эту информацию
- Дальнейшие шаги