# Мониторинг Proxmox VE 8.3.0 в Grafana Для понимания: Задача - мониторить Proxmox VE средствами Grafana + Prometheus. Связка графаны и прометеуса находится на отдельной вм. ## Подготовка учетной записи и группы для мониторинга в Proxmox ```bash pveum groupadd monitoring -comment 'Monitoring group' pveum aclmod / -group monitoring -role PVEAuditor pveum useradd pve_exporter@pve pveum usermod pve_exporter@pve -group monitoring pveum passwd pve_exporter@pve ``` ## Установка prometheus_pve_exporter Ставим пакеты python на Proxmox VE ```bash apt install python3-pip python3-venv ``` Далее организуем venv в /opt/prometheus-pve-exporter ```bash python3 -m venv /opt/prometheus-pve-exporter ``` И установим пакет. Так же проверим что скрипт запускает --help ```bash /opt/prometheus-pve-exporter/bin/pip install prometheus-pve-exporter /opt/prometheus-pve-exporter/bin/pve_exporter --help ``` Если выводится список аргументов, то установка прошла успешно ## Создаем конфигурацию для pve_exporter Хранить конфиг будем в `/etc/prometheus`. Предварительно создадим папку и запишем конфигурацию в /etc/prometheus/pve.yml ```bash mkdir -p /etc/prometheus cat <<EOF > /etc/prometheus/pve.yml default: user: pve_exporter@pve password: YourStronkPassword verify_ssl: false EOF ``` ## Создаем службу systemd pve_exporter Для того, чтобы экспортер работал при запуске системы автоматически, создадим демона ```bash cat <<EOF> /etc/systemd/system/prometheus-pve-exporter.service [Unit] Description=Prometheus exporter for Proxmox VE Documentation=https://github.com/znerol/prometheus-pve-exporter [Service] Restart=always ExecStart=/opt/prometheus-pve-exporter/bin/pve_exporter --config.file /etc/prometheus/pve.yml [Install] WantedBy=multi-user.target EOF ``` Далее по классике перезагружаем демона и запускаем службу ```bash systemctl daemon-reload systemctl start prometheus-pve-exporter systemctl status prometheus-pve-exporter ``` Для проверки дополнительно можно обратиться по адресу вашего proxmox и порту 9221 и content-path /pve чтобы убедиться в том, что метрики собираются. Например: ```bash mayekkuzu@grafana:~$ curl http://proxmox-node-fqdn-or-ip:9221/pve # HELP pve_up Node/VM/CT-Status is online/running # TYPE pve_up gauge pve_up{id="node/main-server"} 1.0 pve_up{id="qemu/100"} 1.0 pve_up{id="qemu/101"} 1.0 pve_up{id="qemu/102"} 1.0 ... ``` Что говорит о том все работает корректно ## Добавляем в Prometheus job (на VM с Grafana) Прописываем такую конфигурацию в блок `scrape_configs` ``` - job_name: 'pve' metrics_path: /pve static_configs: - targets: ["ip-or-fqdn-promox:9221"] params: module: [default] ``` Обязательно проверяем конфигурацию: ```bash mayekkuzu@grafana:~$ sudo promtool check config /etc/prometheus/prometheus.yml Checking /etc/prometheus/prometheus.yml SUCCESS: /etc/prometheus/prometheus.yml is valid prometheus config file syntax ``` После этого спокойно рестартим службу prometheus на вм ## Добавляем дашборд в Grafana Копируем ID дашборда на странице [Proxmox via Prometheus](https://grafana.com/grafana/dashboards/10347-proxmox-via-prometheus/). Далее преходим на инстанс Grafana. В нем жмякаем `Dashboards -> New -> Import`. Вбиваем ID дашборда и Load. После чего в идеале увидите панель с метриками которые собираются с Proxmox. Альтернативно можно импортировать JSON на той же странице если есть проблемы с доступностью до репозитория дашбордов графаны. ## Откуда информация? - Гитхаб проекта https://github.com/prometheus-pve/prometheus-pve-exporter - Proxmox Exporter in venv - https://github.com/prometheus-pve/prometheus-pve-exporter/wiki/PVE-Exporter-on-Proxmox-VE-Node-in-a-venv - Рабочая инструкция, но дзен есть дзен (затык на установке с pip, workaround - в venv) - https://dzen.ru/a/ZEZsd97tql_ryU1W