概要
自宅において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は以下で公開されているもの使って可視化しました.


おわり!
コメント