zabbixでVMのパフォーマンスカウンタ値を取得してみる


ZabbixでVMware環境を監視する時に、標準で用意されているシンプルチェックのキーだけだと欲しい情報が取れ無かったりします。
Zabbixでは、他のパフォーマンスカウンタ値を取得するためのキーが用意されています。
そのキーを使用してvCenterやESXiから値を取得することできます。
ここでは、そのやり方について説明します。

環境

OS情報

OS
CentOS 7.2

パッケージ情報

パッケージ名 バージョン
zabbix-agent 3.0.4-1.el7.x86_64
zabbix-get 3.0.4-1.el7.x86_64
zabbix-release 3.0-1.el7.noarch
zabbix-server-mysql 3.0.4-1.el7.x86_64
zabbix-web-japanese 3.0.4-1.el7.noarch
zabbix-web-mysql 3.0.4-1.el7.noarch
zabbix-web 3.0.4-1.el7.noarch
httpd-tools 2.4.6-40.el7.centos.4.x86_64
mariadb-libs 5.5.50-1.el7_2.x86_64
mariadb-server 5.5.50-1.el7_2.x86_64

パフォーマンスカウンタ値取得方法

Zabbixのキーについて

ZabbixでVMwareのパフォーマンスカウンタ値を取得するには、仮想マシンとハイパーバイザーで2種類あります。

仮想マシンのキー

ハイパーバイザーのキー

このキーには4つの引数が存在します。

引数 説明
<url> vCenter or ESXiのAPIを受け付けるURL
<uuid> ESXi or VMのUUID
<path> 取得対象のカウンタ情報
<instance> 取得対象のインスタンス

<url><uuid> は、LLDを使えば取得できると思います。
ここで謎なのは <path>(取得対象のカウンタ情報) です。
そこで、次にカウンタの情報を確認するやり方について説明します。

カウンタ情報の調べ方

カウンタの情報はvCenterやESXiにvSphere Client(C# Client) or vSphere Web Clientで接続した後にパフォーマンスから確認することが出来ます。
以下の図では、ESXiのCPU使用率のカウンタ情報を確認しています。

一個一個確認していくのは大変なので、ここでは以下のツールを使用します。

実行例

counter_list.csvの一部

注意 : 表示された全ての情報が取得できるわけではありません。
vCenterやESXiで確認できるカウンタであれば取得可能です。

Zabbixでの <path> の指定方法は group/counter[rollup] となります。
例えば、CPU使用率を確認したい場合の <path>cpu/usage[average] となります。

Zabbix設定例

CPUパフォーマンス例

CPUの使用率を取得する設定例です。
乗数を使っているのは、4桁で出力されるためです。

指定しているキー
vmware.hv.perfcounter[{$URL},{HOST.HOST},"cpu/usage[average]",]

これだとCPU全体の使用率しか取得できないので、コアごとに取得する場合は以下のようにinstanceを指定します。

指定しているキー
vmware.hv.perfcounter[{$URL},{HOST.HOST},"cpu/usage[average]",0]

vmnicパフォーマンス例

vmnic0の受信量(B)を取得する時の設定例です。

指定しているキー
vmware.hv.perfcounter[{$URL},{HOST.HOST},"net/received[average]",vmnic0]

vmnic0の送信量(B)を取得する時の設定例です。

指定しているキー
vmware.hv.perfcounter[{$URL},{HOST.HOST},"net/transmitted[average]",vmnic0]

Zabbixの最新データ例

こんな感じになります。

最後に

vCenterやESXiで確認できるパフォーマンスカウンタは、ほぼ取得できそうです。
いくつか課題(後々言えれば…)はありますが、基本的な監視はこれで問題なさそうです 🙂

Leave a Reply

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)