会社で買ったサーバは、冗長化電源なので、ACコードを片方ぶち抜いた場合に、なんか通知できないかと模索してみる。答えは、snmptrapd だった。ESXiでSNMPが使えるのは知っていたが、まさかsnmptrapdだけしか有効でないとは…。俺的には、snmptrapd の設定は初体験だったので、少々苦労したのは内緒w
必要なもの~
- VMware vSphere Command-Line Interface(以下、CLIと略します)
- CLIをインストールするRHEL5/CentOS5等。Windowsは知らん(お
- VMware ESXi4(当たり前)
まず、2のサーバで、ポートを開けます。snmptrapd は 162(UDP)を使うらしい。
/etc/sysconfig
# vi iptables
~略~
-A RH-Firewall-1-INPUT -p udp -m state –state NEW -m udp –dport 162 -j ACCEPT
~略~
/etc/init.d/iptables restart をお忘れ無く。次に、この辺のファイルがあること。
net-snmp.i386 : SNMP プロトコルツールとライブラリの集合体
net-snmp-libs.i386 : NET-SNMP ランタイムライブラリです。
net-snmp-utils.i386 : NET-SNMP プロジェクトのSNMP を使用するネットワーク管理ユーティリティ
次に、snmptrapd が外部からのトラップ信号を受け取れるように設定する。CentOSの場合、/etc/sysconfig/snmptrapd.options のコメントを外す。
# snmptrapd command line options
OPTIONS="-Lsd -p /var/run/snmptrapd.pid"
で、/etc/snmp/snmptrapd.conf を以下のように編集。
authCommunity log,execute,net public
traphandle .1 /usr/bin/traptoemail -f error@vmware_esxi4 -s localhost hoge@hoge.jp
.1 で、すべての通知を受け取る設定に。traptoemailは、net-snmp-utilsに。-f でFROM。-s SMTPサーバ hoge@hoge.jp がメールの送信先となります。
CLIをインストール。俺的には /usr/local/bin/ に。で、cd /usr/local/bin に。設定コマンドは、vicfg-snmp です。こんな感じで設定します。
./vicfg-snmp –server [ESXi-IP] –username root –targets [snmptrapd-IP]@162/public –enable
./vicfg-snmp –server [ESXi-IP] –username root –s で設定内容が確認できます。
Current SNMP agent settings:
Enabled : 1
UDP port : 161Communities :
publicNotification targets :
[snmptrapd-IP]@162/public
./vicfg-snmp –server [ESXi-IP] –username root -T で、テストトラップが可能です。メールに英語で、こんな感じのものが届くと思います。
Host: <UNKNOWN> (UDP: [ESXi-IP]:61457)
DISMAN-EVENT-MIB::sysUpTimeInstance 0:0:59:21.56
SNMPv2-MIB::snmpTrapOID.0 SNMPv2-MIB::warmStart
SNMP-COMMUNITY-MIB::snmpTrapAddress.0 [ESXi-IP]
SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 "public"
SNMPv2-MIB::snmpTrapEnterprise.0 SNMPv2-SMI::enterprises.6876.4.1
以上です。ACコードをぶち抜いたら、こんなメールが来ました。
"Name: Power Supply 2 Status 0: Power Supply AC lost Status: Assert"
お疲れ様でした。


