2014年4月7日月曜日

NagiosでVMware ESXi の Datastore を監視する方法


監視によっていろいろ楽したい @snicker_jp です!


もくじ



きっかけ

仮想化が進み、気がついたらホスト側の監視が抜けていたので、設定しました。
ゲストOSのDisk監視はしていたけど・・・て言うやつです。

前提条件


  • VMware ESXi (4.1 or 5.x)
  • vCenterとか使ってないよ!
  • Datastoreの容量空きの監視
  • CentOS 6 x86_64(監視する側)
  • Nagios(RPM)
  • vSphere SDK for Perl
  • perl-Nagios-Plugin(RPM)
  • perl-TimeDate(RPM)
  • Nagios(check_esx_datastore.pl)


作業の流れ


  • VMware ESXi に「監視用ユーザー」の作成
  • 「vSphere SDK for Perl」の導入
  • 「perl-Nagios-Plugin(RPM)」の導入
  • 「perl-TimeDate(RPM)」の導入
  • 「Nagios (check_esx_datastore.pl)」の導入
  • 設定
  • 確認


作業


VMware ESXi に「監視用ユーザー」の作成

こちらは前回書いた記事を、参照



この後はすべて、監視する側Nagiosが入っているマシンで行います!

「vSphere SDK for Perl」の導入

vSphere SDK for Perl から、「SDK for Perl」のダウンロード(バージョンは4.1以降なら大丈夫と思われる)

今回は「VMware-vSphere-Perl-SDK-4.1.0-254719.x86_64.gz」を使いました。
tar zxf VMware-vSphere-Perl-SDK-4.1.0-254719.x86_64.gz
cd vmware-vsphere-cli-distrib
sudo perl vmware-install.pl
メッセージに従って導入!
最後こんな感じ
The installation of vSphere CLI 4.1.0 build-254719 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command:
"/usr/bin/vmware-uninstall-vSphere-CLI.pl".

This installer has successfully installed both vSphere CLI and the vSphere SDK
for Perl.

The following Perl modules were found on the system but may be too old to work
with vSphere CLI:

version 0.78 or newer

Enjoy,

--the VMware team

「perl-Nagios-Plugin(RPM)」の導入

前後しますが、「check_esx_datastore.pl」を実行したら、以下のメッセージが出たのでPerlモジュール追加
perl check_esx_datastore.pl
Can't locate Nagios/Plugin.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/loastore.pl line 12.
BEGIN failed--compilation aborted at check_esx_datastore.pl line 12.

sudo yum install perl-Nagios-Plugin
依存関係はこんな感じ
Dependencies Resolved

====================================================================================
 Package                                                     Arch
====================================================================================
Installing:
 perl-Nagios-Plugin                                          noarch
Installing for dependencies:
 perl-Class-Accessor                                         noarch
 perl-Config-Tiny                                            noarch
 perl-Math-Calc-Units                                        noarch
 perl-Params-Validate                                        x86_64

「perl-TimeDate(RPM)」の導入

また、前後しますが、「check_esx_datastore.pl」を実行したら、以下のメッセージが出たのでPerlモジュール追加
perl check_esx_datastore.pl
Can't locate Date/Parse.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/localore.pl line 10.
BEGIN failed--compilation aborted at check_esx_datastore.pl line 10.

sudo yum install perl-TimeDate
依存関係はありませんでした。
Dependencies Resolved

====================================================================================
 Package                                                Arch
====================================================================================
Installing:
 perl-TimeDate                                          noarch


「Nagios(check_esx_datastore.pl)」の導入

check_esx_datastores - Nagios Exchange をダウンロードして展開

ダウンロード・展開
git clone https://github.com/tg432/check_esx_datastores.git
cp check_esx_datastores/check_esx_datastore.pl /usr/lib64/nagios/plugins/


確認

動くか確認~
perl /usr/lib64/nagios/plugins/check_esx_datastore.pl -H 192.168.100.10 -u user1 -p @Snicker_jp3 -w 10 -c 10

CRITICAL:
datastore1          Size: 1856                           Used: 76.7653892780172
CHECK_ESX_DATASTORES CRITICAL - Space used on Datastore > 10%


休憩


photo by pakutaso.com

設定

設定のサンプル
define command{
    command_esx_datastore
    command_line    $USER1$/check_esx_datastore.pl -H $HOSTADDRESS -u $ARG1$ -p $ARG2$ -c $ARG3$- -w $ARG4$
    }

define service{
        use                            generic-service
        host_name                      「ESXi ホスト」
        service_description            VMware Datastore
        servicegroups                  Disk
        check_command                  check_esx_datastore!user!パスワード!80!90
}


確認

ざっくり確認
「通知」を止めて、確認。
「OK」になれば、監視適用

まとめ


  • あんまり需要ないと思いますけど、こんなこともできますよ~程度に
  • vCenterだけでなく、今まで使っていた監視ツールで一元管理できますね!
  • 今回のはあくまで、一例です~ ポィ(o'д')ノ ⌒ ○

他にも方法があるみたいです!(^-^)

参考リンク

nagios-plugin: check_esx_datastore | www.tg432.de

VMWare - Nagios Exchange




Zenback