# Мониторинг 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
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9