BLOGTIMES
2011/02/05

続・ESXi の状態変化をメールで受け取る

  Tips esxi 
このエントリーをはてなブックマークに追加

先日、snmptrapdを使ってESXiのイベントを受け取れるようにしたのですが、VMWARE-VMINFO-MIB::vmwVmHBLostVMWARE-VMINFO-MIB::vmwVmHBDetectedのような、ゲストOSとのハートビート*1関連のイベントが山のように飛んできて、これがあまり嬉しくないので不必要なイベント通知をフィルタできるように設定してみました。

以下、設定メモ。

snmptrapd.confではそんなに細かく設定出来ないようなので・・・・

本筋としては snmptrapd.conf でいらないイベントをフィルタできればベストなのでしょうが、どうも snmptrapd.conf はそこまで細かい設定ができないようなので、イベント通知時に呼び出されるスクリプトに手を加えて、いらないイベントを通知しないようにしてみます。必要なイベントだけ通知しようとすると予期しない大事なイベントを落としてしまう可能性があるので、ブラックリスト方式で実装してみました。基本的には blacklist ファイルを参照して、そこに含まれているイベントであれば通知しないという動作をする単純なものです。

まず、下記のスクリプトと、blacklist ファイルを作成して、shの方は chmod +x しておきます。blacklist ファイルの中身は下記の例では2つだけ指定していますが、必要に応じて追加するとよいと思います(例えば VMWARE-VMINFO-MIB::vmwVmPoweredOn とか)。

/etc/snmp/traphandle.sh

#!/bin/bash TMP_FILE="/tmp/snmptrapd_$$" BLACKLIST_FILE="/etc/snmp/blacklist" MAIL_SMTP="mail.example.jp" MAIL_FROM="snmptrapd@example.jp" MAIL_TO="hsur@example.jp" trap 'rm "$TMP_FILE"' 0 while read LINE; do echo $LINE >> $TMP_FILE done cat $TMP_FILE | grep "SNMPv2-MIB::snmpTrapOID" | grep -v -f "$BLACKLIST_FILE" 2>&1 >/dev/null BLACKLISTED=$? if [ $BLACKLISTED -ne 1 ] ; then cat $TMP_FILE | /usr/bin/traptoemail -f $MAIL_FROM -s $MAIL_SMTP $MAIL_TO fi

/etc/snmp/blacklist

VMWARE-VMINFO-MIB::vmwVmHBLost VMWARE-VMINFO-MIB::vmwVmHBDetected

作成し終わったら、 snmptrapd.conf の記述を上記のスクリプトを呼ぶように書き換えて、デーモンをリスタートしてあげます。

/etc/snmp/snmptrapd.conf

--- snmptrapd.conf.org 2011-02-05 17:43:38.000000000 +0900 +++ snmptrapd.conf 2011-02-05 17:43:38.000000000 +0900 @@ -1,2 +1,2 @@ authCommunity log,execute,net public -traphandle .1 /usr/bin/traptoemail -f snmptrapd@example.jp -s mail.example.jp hsur@example.jp +traphandle .1 /etc/snmp/traphandle.sh

これでさらに快適なESXiライフが送れると思います。

  • *1: 多分、VMware Toolsがやっていると思われる

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→http://blog.cles.jp/item/4055
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン