Напълно автоматизиран мониторинг за Proxmox VE с Telegram известия

На скоро ми се наложи да напиша скрипт за автоматизиран мониторинг на Proxmox. Работех по проект, който изискваше непрекъснато следене. 

Proxmox VE е мощен инструмент за виртуализация, но липсва вградена система за мониторинг с известия в реално време. Това е проблем, особено когато сървърът ви е под натоварване или някоя от виртуалните машини спре неочаквано.

В тази статия ще разгледаме bash скрипт за автоматизиран мониторинг на Proxmox, който:
✅ Проверява CPU, памет, диск и натоварване
✅ Следи състоянието на всички контейнери и виртуални машини
✅ Изпраща моментни известия в Telegram при проблеми
✅ Поддържа история на събитията чрез логове


Как работи скриптът?

Скриптът извършва следните проверки на зададен интервал (по подразбиране 60 секунди):

1. Системен мониторинг

  • CPU използване – ако надвиши прага (напр. 80%), изпраща предупреждение
  • RAM използване – проверява за изчерпване на памет
  • Дисково пространство – предупреждава при запълване
  • Средно натоварване – ако системата е претоварена

2. Проверка на Proxmox услуги

  • Автоматично проверява критични процеси като pveproxypvedaemoncorosync
  • Ако някоя услуга спре, вие получавате известие

3. Мониторинг на контейнери и виртуални машини

  • Сканира всички LXC и QEMU/KVM инстанции
  • Известява, ако някоя машина е спряна неочаквано

4. Telegram интеграция

  • Използва Telegram bot за моментни известия
  • Поддържа HTML форматиране (удебелен текст, кодови блокове)
  • Изпраща два типа съобщения:
    • 🚨 Аварийни (при проблеми)
    • ✅ Възстановяване (когато системата се нормализира)

Как да го инсталирате?

1. Изисквания

  • Proxmox VE (тествано с версии 7.x и 8.x)
  • curljqbc (инсталират се автоматично)
  • Telegram бот (създава се чрез @BotFather)

2. Инсталация

Свалете скрипта proxmox-monitor.sh

Поставете го в /usr/local/bin/

Направете го изпълним:

chmod +x /usr/local/bin/proxmox-monitor

Инсталирайте:

/usr/local/bin/proxmox-monitor install

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

Редактирайте /opt/proxmox-monitor/config.conf:
TELEGRAM_BOT_TOKEN="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
TELEGRAM_CHAT_ID="123456789"
CHECK_INTERVAL=60
CPU_THRESHOLD=80
MEMORY_THRESHOLD=85
DISK_THRESHOLD=90
LOAD_THRESHOLD=5.0

4. Стартиране на мониторинга

systemctl enable --now proxmox-monitor.timer

Как да го използвате?

Употреба: /usr/local/bin/proxmox-monitor [команда]
Команди:
install – Инсталира и конфигурира монитора
daemon – Стартира като демон (използва се от systemd)
check – Извършва единична проверка
status – Показва текущия статус
summary – Изпраща обобщен отчет
test – Тества Telegram известието
config – Показва конфигурацията
logs – Показва последните логове
help – Показва тази помощ

Примерно Telegram известие

Telegram известие

Заключение

Този скрипт предоставя пълен мониторинг на Proxmox с минимални настройки. Ако искате автоматизиран надзор без сложни решения като Zabbix или Prometheus, той е идеален избор.  Скриптът е напълно автономен и не изисква cron.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: