こんにちは。
ALJの江口と申します。
Proxmoxの監視メニューのMetric Serverには、GraphiteとInfluxDBがプルダウンで選択でき、これらは容易に連携できますが、既にZabbixがあるという環境や、Zabbixになじみがあるという方もいると思います。
Zabbixのページを見ると、ProxmoxのAPIを利用したProxmox VE by HTTPというテンプレートが用意されており、Zabbix AgentをインストールしなくてもCPUやメモリなどの監視であればすぐにZabbixでデータ収集することができます。このテンプレートは、Zabbix6.0以降に対応しています。
Zabbixのテンプレートの利用方法は公式ページに設定手順が記載されており、おおむね記載の通りで情報の取得ができますが、自分の環境(Zabbix6.0)では、少しだけ追加の設定が必用だったので、その点を含めて、設定の流れを説明したいと思います。
設定が完了すると以下のように各PVEと稼働しているVMのデータが可視化されます。
設定した環境は以下の通りです。
・Zabbix 6.0
・ProxmoxVE 8.3.2
設定の大まかな流れ
設定作業は以下を行います。
対象 | 作業内容 |
---|---|
Proxmox | ・ユーザー追加 [推奨] ・APIトークンの作成 ・Permissionsの設定 |
Zabbix | ・ホストの追加 |
実際の設定
ユーザー追加
ユーザーの追加は必須ではありませんが、セキュリティの観点からAPIアクセス用ユーザーの追加が推奨されています。
Server View - Datacenter - Permissions - Users の順に移動して、[Add] をクリックします。以下の例では、zabbixというユーザーを追加しています。
APIトークンの作成
Server View - Datacenter - Permissions - API Tokens の順に移動して、[Add] をクリックします。以下の例では、IDにzabbixという名前で登録しています。
Permissionsの設定
Server View - Datacenter - Permissions の順に移動して、[Add] をクリックします。
- "/" に "Sys.Audit"
- "/storage" に "Datastore.Audit"
- "/vms" に "VM.Audit"
公式ページに上記のアクセス権の説明がありますが、PVEAdminは上記の権限を持っているので、PVEAdminで設定しました。UserとTokenの両方に設定が必用ですので、計6個追加します。
Zabbixにホストの追加
ホストの追加では、[ホスト]と[マクロ]に設定が必用です。
[ホスト]
ホストでは以下の項目を設定します。
- "ホスト名" に 任意のホスト名
- "テンプレート" に "Proxmox VE by HTTP"
- "グループ" に 任意のグループ
- "インタフェース" にエージェントを選択し、IPアドレスに PVEのIPアドレス
インターフェースの設定は公式ページに説明がありませんでしたが、ここに設定を入れないとデータが取得できませんでした。ポートは関係ないようで、デフォルトの10050で動作しました。
[マクロ]
マクロでは、以下の3項目を設定します。
「継承したマクロとホストマクロ」で変更したい項目がある場合は、追加してください。
- {$PVE.TOKEN.ID}
- {$PVE.TOKEN.SECRET}
- {$PVE.URL.HOST}
クラスターを組んでいる場合は、PVEのノード全てのホストを作成します。
設定後、しばらく待つ
数分ほど待つと、データが収集されると思います。
テンプレートを使うと、PVEノードのみではなく、稼働しているインスタンスの情報も取得できるので、便利だと思います。
多くのデータが収集されるため、ダッシュボードの作成は必須なので、あとは好みのダッシュボードを作成してください。
以上です。