Мониторинг на Proxmox LXC контейнери с един скрипт

Мониторинг на Proxmox LXC контейнери с един скрипт

Управлението на множество LXC контейнери в Proxmox може да бъде предизвикателство, особено когато искате да следите тяхното състояние, производителност и ресурси в реално време. В тази статия представям две автоматизирани решения, които опростяват процеса и ви дават професионален мониторинг stack за минути.

Архитектура на решението

Решението се състои от два скрипта, които работят заедно:

Скрипт 1: Централен мониторинг контейнер

Първият скрипт създава пълна мониторинг инфраструктура в отделен LXC контейнер (препоръчително Ubuntu/Debian). Той автоматично инсталира и конфигурира:

Основни компоненти:

  • Prometheus – система за събиране и съхранение на метрики
  • Node Exporter – експортиране на системни метрики
  • Blackbox Exporter – мониторинг на HTTP/TCP/ICMP endpoints
  • Alertmanager – управление и изпращане на алерти
  • Grafana – визуализация на данни с готови dashboards

Автоматични функции:

  • Създаване на системни потребители с правилни права
  • Конфигуриране на Prometheus за автоматично откриване на контейнери
  • Настройка на Telegram нотификации за алерти
  • Инсталиране на готови Grafana dashboards за визуализация
  • Systemd сервизи за автоматично стартиране при рестарт

Alert правила включват:

  • Контейнер е DOWN (недостъпен)
  • Високо CPU натоварване (>80%)
  • Високо RAM използване (>80%)
  • Малко дисково пространство (<20%)
  • Високо системно натоварване (Load Average)
  • Мрежови грешки

По време на инсталацията скриптът иска Telegram Bot Token и Chat ID, за да може да изпраща известия директно в Telegram. След приключване на инсталацията, автоматично се изпраща тестов alert за потвърждение на работата.

Бонус функция: Скриптът създава helper команда add-lxc-container, която позволява бързо добавяне на нови контейнери към мониторинга с една команда.

Скрипт 2: Node Exporter за LXC контейнери

Вторият скрипт е лек и минималистичен – предназначен за инсталация във всеки LXC контейнер, който искате да следите. Той:

Какво прави:

  • Инсталира само Node Exporter (около 15MB RAM overhead)
  • Създава systemd сервиз за автоматично стартиране
  • Експортира метрики на порт 9100
  • Работи в background без да пречи на основните приложения

След инсталацията: Скриптът показва точно какво трябва да направите за да добавите контейнера към централния Prometheus – или с готовата add-lxc-container команда, или ръчно редактиране на конфигурацията.

Какво можете да следите?

След инсталация и конфигурация, имате достъп до богата информация за всеки контейнер:

Системни ресурси:

  • CPU използване в реално време и исторически данни
  • RAM използване – общо, използвано, налично
  • Дисково пространство и I/O операции
  • Network трафик – входящ/изходящ

Производителност:

  • Load Average (1, 5, 15 минути)
  • Disk IOPS (четене/писане операции)
  • Open File Descriptors
  • Running/Blocked процеси

Мрежа:

  • Трафик по интерфейси
  • Мрежови грешки
  • Packets dropped

Статус и uptime:

  • Контейнер UP/DOWN статус
  • Време от последен рестарт
  • Активни алерти

Custom Grafana Dashboard

Скриптът включва специално проектиран dashboard "Fedya's LXC Monitoring Dashboard", който показва:

  • Pie chart с UP/DOWN статус на всички контейнери
  • Обобщена статистика – общо контейнери, средно CPU/RAM, мрежов трафик
  • Детайлна таблица с всички метрики за всеки контейнер
  • Графики за CPU, RAM, Network, Disk за последния час
  • Gauge meters за дисково пространство
  • Uptime информация

Dashboard-ът автоматично се обновява на всеки 30 секунди и включва threshold линии за бързо идентифициране на проблеми.

Telegram интеграция

Една от най-полезните функции е директната интеграция с Telegram. Когато възникне проблем, получавате форматирано известие с:

  • Име на алерта и severity (critical/warning/info)
  • Засегнат контейнер и IP адрес
  • Детайлно описание на проблема
  • Timestamp на случването

Примерни алерти:

  • "⚠️ LXC контейнер Web Server е DOWN"
  • "🔥 Високо CPU натоварване – 85% на Database Server"
  • "💾 Високо RAM използване – 92% на App Container"

Предимства на решението

Бързо deployment: От нула до пълен мониторинг за под 5 минути

Централизирано управление: Всички данни на едно място в Grafana

Минимален overhead: Node Exporter използва около 15MB RAM на контейнер

Изолация: Мониторинг инфраструктурата е в отделен контейнер

Лесно мащабиране: Добавяне на нов контейнер за мониторинг = 1 команда

Production-ready: Всички компоненти са industry standard инструменти

Автоматични алерти: Не се налага да проверявате ръчно – Telegram ви известява

Визуална яснота: Графиките показват тенденции и помагат за capacity planning

Системни изисквания

За мониторинг контейнера:

  • Ubuntu/Debian LXC контейнер
  • Минимум 1GB RAM (препоръчително 2GB)
  • 10GB дисково пространство
  • Internet връзка за изтегляне на компонентите

За следени контейнери:

  • Всяка Linux дистрибуция
  • 50MB допълнителна RAM за Node Exporter
  • Достъп до мониторинг контейнера на порт 9100

Използване

След инсталация, просто отворете браузър и навигирайте до:

Grafana:         http://monitoring-ip:3000
Prometheus:      http://monitoring-ip:9090
Alertmanager:    http://monitoring-ip:9093

Първоначалните credentials за Grafana са:

  • Username: admin
  • Password: admin

Заключение

Автоматизираният мониторинг на Proxmox LXC контейнери вече не е сложна задача. С тези два скрипта получавате професионално решение, което работи "out of the box" и предоставя всичко необходимо за ефективно управление на вашата инфраструктура.

Независимо дали управлявате 3 или 30 контейнера, ще имате пълна видимост върху тяхното състояние, ще получавате навременни алерти за проблеми и ще можете да вземате информирани решения базирани на реални данни.


Изтегляне

Скриптовете могат да се свалят от тук:

📥 Скрипт 1: Monitoring Stack Setup
📥 Скрипт 2: Node Exporter Install
📊 Бонус: Fedya's LXC Dashboard JSON

Инсталация

Как да го използваш:

1️⃣ В мониторинг контейнера (Ubuntu LXC):

chmod +x monitoring-setup.sh
sudo ./monitoring-setup.sh

2️⃣ В другите LXC контейнери, които искаш да следиш:

Използвате лекия скрипт за Node Exporter в другите контейнери!

Как работи цялата система:

📦 Контейнер 1: Мониторинг

  • Prometheus + Grafana + Alertmanager
  • Събира данни от всички контейнери

📦 Контейнер 2, 3, 4… (всички останали LXC контейнери)

  • Само Node Exporter (минимален overhead)
  • Изпраща метрики към мониторинг контейнера

🎯 Процедура за добавяне на нов контейнер:

Стъпка 1: В новия LXC контейнер

# Копирай скрипта
nano install-node-exporter.sh

# Вмъкни скрипта, запази и затвори

# Направи го изпълним
chmod +x install-node-exporter.sh

# Стартирай
sudo ./install-node-exporter.sh

Скриптът автоматично ще покаже IP и hostname на контейнера! ✅

Стъпка 2: В мониторинг контейнера

# Автоматично добавяне (лесен начин)
add-lxc-container 10.0.0.101 'Web Server'

# ИЛИ ръчно редактиране (ако предпочиташ)
nano /etc/prometheus/prometheus.yml
# Добави контейнера в секцията lxc-containers
systemctl restart prometheus

Споделете и помогнете на други:
Ако статията ви е била полезна, споделете я с колеги, които също управляват Proxmox инфраструктура!


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

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

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

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

Последвайте ни във Facebook за още IT съвети и новини

Последвайте ни

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *


Колко е 7 + 6 ? (въведете числото)