Zabbix 2.2.0 以前は、Zabbix から VMware環境(VMware ESXi、VMware vSphere)を監視するためには、SNMPトラップを飛ばしたり作り込みが必要でした。
スキル的にはかなり敷居が高かったと思います。
しかし Zabbix 2.2.0 のバージョンから、VMware vSphere 環境の監視をサポートされるようになりました。
※ちなみにZabbix 2.2.0 がリリースされたのは2014年12月13日です。
今回は Zabbix 3.4.3 で設定をしています。
今回試した Zabbix Server および VMware ESXi Hypervisor 環境
Zabbix Server:3.4.3
VMware ESXi Hypervisor:6.0
VMware vSphere環境を Zabbix で監視するために「vSphere API」を利用する
VMware vSphere 環境を Zabbix で監視をするために「vSphere API」を利用します。
「VMware ESXi Hypervisor」や「仮想アプライアンス」には Zabbix Agentがインストールできません。
そのため、VMware vSphere は Zabbix などの外部のツールから vSphere 環境を管理できるように vSphere API を提供しています。
vSphere API とは
実は vSphere Client や vSphere Web Client で可能な操作は vSphere API でも可能です。
vSphere API にアクセスする場合は vSphere Web Client へのログイン同様に認証をします。
vSphere API は「SOAP(Simple Object Access Protocol)」を利用して「VMware ESXi Hypervisor」や「VMware vSphere vCenter Server」や「仮想マシン」の制御を行ないます。
vSphere APIへは「https://<IPアドレス>/sdk」にアクセスします。
【参考】VMware vSphere API リファレンス
英語ですが VMware vSphere API リファレンスです。
VMware vSphere API Reference Documentation
https://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/
ZabbixでVMware vSphereを監視する手順
Zabbix 2.2.0 からサポートされるようになった VMware 監視機能ですが、今回は最新の Zabbix 3.4.3 で監視の設定をします。
以下、設定の手順を説明します。
手順の概要
- Zabbix サーバーの設定ファイル(/etc/zabbix/zabbix_server.conf)に VMware 環境監視用の設定を追加する
- Zabbix サーバーに VMware vSphere vCenter Server か VMware ESXi Hypervisor のホストを登録する
- 仮想マシンや VMware ESXi Hypervisor 情報のローレベルディスカバリルールを登録する
- 仮想マシンや VMware ESXi Hypervisor 用の Zabbix ホストを自動登録するためのホストタイプを登録する
- 仮想マシンや VMware ESXi Hypervisor 情報監視のためのアイテムを登録する
Zabbix サーバーの設定ファイル(/etc/zabbix/zabbix_server.conf)に VMware 環境監視用の設定を追加する
初めに「/etc/zabbix/zabbix_server.conf」ファイルの設定をします。
以下、「/etc/zabbix/zabbix_server.conf」ファイルの中より「VMware 監視」部分の抜粋です。
※黄色の文字が設定した個所です。
### Option: StartVMwareCollectors StartVMwareCollectors=1 ### Option: VMwareFrequency VMwareFrequency=60 ### Option: VMwarePerfFrequency VMwarePerfFrequency=60 ### Option: VMwareCacheSize VMwareCacheSize=8M ### Option: VMwareTimeout VMwareTimeout=10 |
■VMware 監視設定のための設定項目
- StartVMwareCollectors
設定可能範囲:0~250
デフォルト:0
vSphere API と通信する VMware 監視用ポーリングプロセスの起動数です。
設定値の基準ですが、例えば「ESXi Hypervisor」が2台なら「2」にするなど、1台につき1プロセスを割り当てます。
ただしプロセスを多数起動すれば、それだけ Zabbix サーバーに負荷が掛かるので運用しながら調整します。
- VMwareFrequency
設定可能範囲:10~86400
デフォルト:60
VMware 監視用ポーリングプロセスが vSphere API にアクセスをして情報を収集する時間間隔です。
※注意点
VMwareFrequencyの設定値ですが、vSphere API にアクセスする時間間隔なので、例えば3600秒(1時間)に設定した場合は、1時間に1回しか情報を取得しないということです。
そのため、たとえアイテムの監視間隔を60秒に設定したとしても、実際に vSphere API にアクセスするのは1時間に1回なので、値は変化しません。
そのため、アイテムの監視間隔と vSphere API の間隔を同じにするか、若干 vSphere API の間隔の方を短くするかして調整しましょう。
- VMwareCacheSize
設定可能範囲:256K-2G
デフォルト:8M
VMware 監視用ポーリングプロセスが収集した情報を一時的に蓄積する共有メモリ上のキャッシュサイズです。
どれくらい割り当てるのかは環境によって異なりますが、メモリに余裕があれば割り当てます。
メモリにどれくらい余裕があるかはZabbixで監視をして計算してもいいです。
/etc/zabbix/zabbix_server.conf を変更したら zabbix-server を再起動します。
[root@cent07 ~]# systemctl restart zabbix-server |
仮想マシンや VMware ESXi Hypervisor のローレベルディスカバリルールを設定する
Zabbix 2.0 よりローレベルディスカバリ(Low Level Discovery)という新機能が追加されました。
ローレベルディスカバリルールを使用して、自動的に
- VMware vCenter Server
- VMware ESXi Hypervisor
- 仮想マシン
を発見し、定義済みのホストのプロトタイプに基づいて、Zabbix にホストとして自動登録をします。
また、ホストだけでなく「アイテム」や「トリガー」や「グラフ」など自動登録します。
Zabbix のディスカバリについて
Zabbixには「オートディスカバリ」機能があります。
オートディスカバリとは、自動的に「監視対象機器」や「監視項目」を追加/削除(登録)する機能です。
オートディスカバリには以下の2つのディスカバリがあります。
- ネットワークディスカバリ ← IPアドレスやZabbixエージェント経由でホストを見つける
- ローレベルディスカバリ ← 監視対象機器に対してアイテム、トリガー、グラフを自動生成する
VMware の場合は、VMware ESXi Hypervisor の vSphere API の URL(例:https://192.168.1.7/sdk)にアクセスすることで、仮想マシンの各アイテムの情報が自動的に下図のように取得することができます。
Zabbixの管理画面上より以下のようにディスカバリルールを設定します。
Zabbixの管理画面より「設定」–「ディスカバリ」をクリックします。
デフォルトで「local network」のディスカバリルールがあるので、これを利用します。
「local network」をクリックします。
今回の環境は「192.168.1.0/24」のネットワーク環境なので、IPアドレスの範囲を「192.168.1.1-254」に設定します。
「チェック」は「ICMP ping」を選択しています。
「更新間隔」は「1h」(1時間)になっていますが、長すぎる場合は「10m」や「30m」に設定してもいいと思います。
Zabbix サーバーに VMware vSphere ESXi Hypervisor のホストを登録する
次に Zabbix 管理画面より「ホスト」の登録をします。
ホストとして「VMware vSphere ESXi Hypervisor」を登録します。
Zabbix管理画面より「設定」–「ホスト」–「ホストの作成」をクリックします。
ホストを登録しますが、「エージェントのインターフェース」は、下図のようにデフォルトのままで問題ありません。
次に「テンプレート」タブへ移動して、下図のようにテンプレートとのリンクを設定します。
- Template VM VMware
- Template VM VMware Hypervisor
次に「vSphere API」へのアクセス権限の設定をします。
「マクロ」タブに移動して、VMware ESXi Hypervisor への認証情報を入力します。
- {$URL} → https://IPアドレス/sdk(例:https://192.168.1.7/sdk)
- {$USERNAME} → vSphere API へのアクセスアカウント(例:root)
- {$PASSWORD} → vSphere API へのアカウントパスワード(例:rootに設定したパスワード)
設定したら「追加」ボタンをクリックしてホストを追加します。
以上で設定完了です。
設定に問題がなければ自動的に VMware vSphere ESXi Hypervisor に紐付く「vCenter Server」や「仮想マシン」が下図のように登録されます。
動作確認
下図のように自動的に「Discover VMware hypervisors:localhost.localdomain」というように登録されます。
Zabbix管理画面より「監視データ」-「概要」をクリックすると下図のように各項目が自動登録され、値が取得されています。
これが「ローレベルディスカバリ」です。
参考書籍
私の一押しのZabbix技術書籍です。
内容は「仮想環境の監視方法」です。
最近は仮想化の流れが大きくなり、データセンターに1台1台物理サーバーを置いて運用するということが少なくなっています。
日常の運用監視を効率化し、ダウンタイムを極力少なくして品質を向上させるためには、どうしても「仮想化」が必要になります。
そのような現代のニーズを組んでいかにZabbixで仮想環境(VMware vSphere 環境、Amazon AWS 環境)を監視するのかを詳しく解説しています。
Zabbix統合監視徹底活用 ~複雑化・大規模化するインフラの一元管理 (Software Design plus)
コメント