proxmox自宅Lab

Proxmoxの仮想化基盤をPrometheusで可視化する

概要

自宅においてProxmoxクラスターのリソースを管理したかったがいいのないかなーということで,Prometheusのexporterを入れてみた.

母艦のホストだけでなくVMの情報も取りたいということで,使用するのはこれ
https://github.com/prometheus-pve/prometheus-pve-exporter

手順

PVE Exporterのインストール

大体のことはgithubにかかれているので,githubのWiki通りに
https://github.com/prometheus-pve/prometheus-pve-exporter/wiki/PVE-Exporter-on-Proxmox-VE-Node-in-a-venv

なお,私の環境は以下の通り.

root@r5700d1:~# pveversion
proxmox-ve: 8.2.0 (running kernel: 6.8.4-2-pve)
root@r5700d1:~# python3 --version
Python 3.11.2

まずはvenvのインストールから

# apt update
# apt install python3.11-venv

次に,venv環境を作って,pve-exporterをインストールすれば完了

# python3 -m venv /opt/prometheus-pve-exporter
# /opt/prometheus-pve-exporter/bin/pip install prometheus-pve-exporter

ユーザ&トークン作成

exporterからリソースにアクセスするために,監視用のユーザ及びトークンを作ります.監視用ユーザさえあれば,アクセスさせることは可能ですが,なんとなくパスワードを設定ファイルに入れたくなかったのでトークンで認証させます.

まずは,Data centerを選択してPermissionのUsersタブからpveユーザを作成.下の画像ではmonというユーザ名ですがこれは好みで.

次に,同じくPermissionタブからAPI Tokensを選択して,トークンを追加.ユーザは先程作ったユーザ,Token IDは好みで.

トークンを追加するとSecret Valueが発行されるので忘れずにコピーしておきます.

次に,Permmissionsタブから,ユーザ・トークンに権限を付与します.まずユーザは以下のように,PVEAuditorで設定します.

次に,トークンも同様にPVEAuditorで設定します.

これでユーザの設定は完了です.

PVE Exporterの設定・起動

次にPVE Exporterの設定を入れていきます.まずはexporterは,以下のようにトークンの情報を入れます.なお,トークンIDは設定したもので,<ユーザ>!は含みません

mkdir -p /etc/prometheus
cat <<EOF > /etc/prometheus/pve.yml
default:
    user: mon@pve
    token_name: "<token id>"
    token_value: "<コピーしたsecret>"
EOF

次に,Serviceの設定をしていきます.このあたりはgithubのwikiのままです.

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
User=prometheus
ExecStart=/opt/prometheus-pve-exporter/bin/pve_exporter --config.file /etc/prometheus/pve.yml

[Install]
WantedBy=multi-user.target
EOF

設定ができたら起動してみます.

root@r5700d1:~# systemctl daemon-reload
root@r5700d1:~# systemctl enable prometheus-pve-exporter.service
root@r5700d1:~# systemctl start prometheus-pve-exporter.service 

statusで起動できていればOKです.

root@r5700d1:~# systemctl status prometheus-pve-exporter.service

Prometheusの設定

Prometheusの設定は以下のように入れました.

  - job_name: 'pve'
    metrics_path: /pve
    params:
      module: [default]
      cluster: ['1']
    static_configs:
      - targets:
        - <ノード1>:9221  # Proxmox VE node with PVE exporter.
        - <ノード2>:9221

Graphana可視化

Grafanaは以下で公開されているもの使って可視化しました.

Proxmox via Prometheus | Grafana Labs

おわり!

コメント

タイトルとURLをコピーしました