Skip to content

Corvych/yc-susp-pinger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yandex Cloud VM Monitor & Auto-Restarter

Этот скрипт отслеживает состояние виртуальной машины (ВМ) в Yandex Cloud с помощью пинга и автоматически запускает её через API, если она становится недоступной.

Предварительные требования

  • Python 3.8+
  • Сервисный аккаунт Yandex Cloud с ролью compute.operator или compute.admin.
  • Авторизованный ключ сервисного аккаунта в формате JSON.

Настройка

  1. Клонируйте репозиторий или скопируйте файлы.
  2. Установите зависимости:
    pip install -r requirements.txt
  3. Создайте файл .env на основе .env.example и заполните данные:
    • INSTANCE_ID: ID вашей виртуальной машины (можно найти в консоли YC).
    • TARGET_IP: IP-адрес или хост для проверки доступности.
    • KEY_FILE: Путь к JSON-ключу сервисного аккаунта.
  4. Запустите скрипт для проверки:
    python monitor.py

Конфигурация

Вы можете настроить следующие параметры в файле .env:

  • PING_INTERVAL: Частота проверки в секундах (по умолчанию 60).
  • MAX_FAILURES: Количество неудачных попыток до запуска ВМ (по умолчанию 3).

Способы фонового запуска

1. Использование nohup (простой способ)

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

nohup python monitor.py > monitor.log 2>&1 &

Чтобы остановить процесс:

pkill -f monitor.py

2. Использование systemd (рекомендуемый способ для Linux)

Создайте файл сервиса /etc/systemd/system/yc-pinger.service:

[Unit]
Description=Yandex Cloud VM Pinger
After=network.target

[Service]
Type=simple
User=ваш_пользователь
WorkingDirectory=/path/to/yc-susp-pinger
ExecStart=/usr/bin/python3 monitor.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Замените ваш_пользователь и /path/to/yc-susp-pinger на актуальные значения.

Команды для управления:

# Перезагрузить конфигурацию
sudo systemctl daemon-reload

# Включить автозагрузку при старте системы
sudo systemctl enable yc-pinger

# Запустить сервис
sudo systemctl start yc-pinger

# Проверить статус
sudo systemctl status yc-pinger

About

A simple python script to ping Yandex.Cloud suspendable VM and kick run action

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages