📊 Мониторинг KVM: Prometheus + Grafana + Node Exporter Мы подняли парк виртуальных машин.
Мы подняли парк виртуальных машин. Но как узнать, что на web-server-01 закончилась память, а db-02 уперлась в полку по CPU? Смотреть htop на каждом сервере не выход.
Строим классический стек мониторинга. Это стандарт индустрии: бесплатно, гибко и выглядит так, что начальство будет в восторге.
🛠 Три мушкетера мониторинга
1. Node Exporter: Агент-шпион. Ставится на каждую Linux-машину (VM). Собирает метрики (CPU, RAM, Disk, Net) и отдает их по HTTP.
2. Prometheus: База данных (TSDB). Периодически опрашивает всех агентов («скрейпит») и сохраняет историю изменений.
3. Grafana: Красивая "морда". Рисует графики, дашборды и шлет алерты в Telegram.
🚀 Шаг 1. Ставим агента (на каждую VM)
На целевой виртуалке скачиваем и запускаем node_exporter.
Самый простой способ - через Systemd, чтобы он стартовал сам.
Создаем юнит /etc/systemd/system/node_exporter.service:
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
Не забудьте открыть порт 9100 в фаерволе!
💾 Шаг 2. Настраиваем Prometheus (Сервер мониторинга)
На сервере мониторинга в prometheus.yml добавляем наши виртуалки в список целей:
scrape_configs:
- job_name: 'kvm_vms'
static_configs:
- targets:
- '192.168.122.10:9100' # web-server
- '192.168.122.11:9100' # db-server
Перезапускаем Prometheus. Теперь он каждые 15 секунд (по дефолту) ходит к виртуалкам и спрашивает: «Как дела?».
🎨 Шаг 3. Визуализация в Grafana
Заходим в Grafana -> Data Sources -> Add Prometheus.
А теперь магия: не нужно рисовать графики вручную!
1. Идем в Dashboards -> Import.
2. Вводим ID готового дашборда: 1860 (или 11074).
3. Нажимаем Load.
Вуаля! У вас перед глазами полная картина: загрузка ядер, потребление RAM, IOPS дисков и сетевой трафик по каждой машине.
💡 Pro Tip для KVM: libvirt-exporter
Node Exporter показывает то, что видит сама виртуалка. Но иногда виртуалка "врет" или зависает так, что агент не отвечает.
Чтобы видеть ситуацию снаружи (со стороны гипервизора), поставьте на хост-машину libvirt-exporter.
Он берет метрики напрямую из KVM/QEMU. Вы увидите:
🔸Реальное потребление CPU (включая Overhead).
🔸Статус машин (Running/Paused/Shutdown).
🔸Проблемы с дисками на уровне хоста.
#sysadmin #monitoring #prometheus #grafana #devops #linux
👉 @sysadminof