ZabbixのvCenter経由で登録した各VMのリソース値の参照元について

環境
Zabbix 3.0.9
vCenter 6.0.0
ESXi 5.1.0,3872664

Zabbixにアイテムを作成しvCenterのログイン/パス情報でディスカバリにてvCemterで確認できた各VMを
Zabbixに登録できました。
その後このvCenterのアイテムは無効化しディスカバリのアイテムのみ有効化しております。

ZabbixにてBalloonとSwapの監視を行いたいのですが、確認した所ZabbixとvCenterと数値が異なります。
vCenterで確認できている値とディスカバリで登録された各VMの値が違うように思います。

例えばメモリの最大量
VMに割り当てた最大メモリ容量12GBに対して

Zabbix側のデータ
12884901888

vCenter側パフォーマンス表示上のデータ
12551524 kb

これはZabbixが参照しているのはvCenter上の各VMパフォーマンスの値ではなく
ESXiから直接取得した値をZabbix上で計算しているのでしょうか。Zabbixがどの値を参照しているのか分かりません。
またZabbixでアイテム(vCenter)を無効化しているのと関係があるのでしょうか、
ディスカバリとアイテムで利用しているvCenterの役割が分かっていません。
vCenter自体の監視はZabbixでしていないのでしょうか。

zabbix-saver.log上では監視しているVMのtimeoutなどのエラーはありませんでした。
vCenterで観ているパフォーマンスの値が正なのかZabbixの監視で観てる値が正なのか分かりません。

VMを監視されている方で同じように数値のズレが発生している方がいらっしゃったらどうされているのか
お教え頂けますでしょうか。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

Zabbixは、VMwareのAPIを使用して、例えば、VMのメモリサイズで
あれば、VMの「memorySizeMB」の値を取得しているようです。
Ballooned memoryは「balloonedMemory」、Swapped memoryは、
「swappedMemory」の値を取得しているようです。

詳細はソースの、

 src/zabbix_server/vmware/vmware.h
 src/zabbix_server/vmware/vmware.c

あたりをご参照ください。

手元にvCenterの環境が無いので、具体的にどの値と比較されてい
るのかわかりませんが、VMwareの管理用のメモリも合算して表示さ
れていたりしませんか?

VMwareのマニュアルなども再確認してみてください。

vCenterで確認できるメモリ情報の見方について
https://blogs.vmware.com/jp-cim/2014/04/vcenter_memory.html
VMwareテクニカルトレーナよりワンポイントアドバイス~VMware vSphereにおけるCPU・メモリの考え方編~
https://blogs.vmware.com/jp-cim/2015/01/vsphere_edu01.html
vSphere リソース管理について
https://docs.vmware.com/jp/VMware-vSphere/6.5/com.vmware.vsphere.resmgmt...
VirtualMachineConfigSummary
https://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference...

ユーザー Obs の写真

TNKさん

情報ありがとうございます。
VMに関してAPIの参照している値は理解しました。
実際に取得してる先のログなどを確認する場合は、Zabbixのデバッグモードで実行して
APIの情報とか取得できるのでしょうか。

期待してる出力は以下のような取得項目とホスト名の概要が分かることなんですが。
170 ZBX_XPATH_HV_HARDWARE("memorySize"), /* ZBX_VMWARE_HVPROP_HW_MEMORY_SIZE */

VMの値の参照元を探して観ましたがやはり値が違うようですね。
私が確認した画面の画像を添付しました、

ユーザー Obs の写真

参照値についてはvCenterをZabbixに登録しディスカバリの機能で登録された各ESXiは
Zabbix→vCenter→ESXiではなく。
Zabbix→ESXiで取得していることは分かりました。

その為、ディスカバリで利用したvCenterのアイテムを無効にしても特に取得データに関しては
影響がありませんでした。

メモリやCPUに関しては参照先の「esxtop」コマンドでESXi上のVMの値とほぼ一緒な事は確認できました。

■アイテムの取得するデータについて質問です
 Zabbixのアイテム(添付参照)は整数の表示値「B」で作成された場合は1B以下の値は取得された場合0になりますでしょうか。
 細心の値で[00000000008]とか小数点以下の値も表示される事を期待してましたが仕様としてないのでしょうか。

有識者の方お教え頂けますでしょうか。

ユーザー TNK の写真

アイテムのデータ型が「数値(整数)」であれば、整数しか扱えませ
んので、小数点以下の数値は扱えません。

そもそも、添付頂いたスワップメモリのサイズのアイテムに関して
取得している元のデータも1バイトよりも小さな値を取ることはな
いのではないでしょうか?

ユーザー Obs の写真

TNKさんありがとうございます

Swappedの表記がなぜ違うのかが自己解決しました。
Zabbixで利用しているvSphere APIで参照している値がMBからだったため、
vCenterではKBから表記されているので値が違いました。
ESXi上でTOPコマンドで確認する限りvCenterの値は正しいので混乱しましたが、
以下のLinkで仕様が公開されておりました。

お騒がせしました。

https://www.vmware.com/support/orchestrator/doc/vro-vsphere65-api/html/V...
The portion of memory, in MB, that is granted to a virtual machine from the host's swap space. This is a sign that there is memory pressure on the host. @since vSphere API 4.0