はじめに
ESXiのSNMPトラップをLinuxマシン(RHEL)で受信し、ログとして残すための作業の流れについて記載しました。
尚、今回はログをそのまま蓄積するのみなのでMIBファイル等は不要です。
環境情報
- VMware ESXi 6
- Red Hat Enterprise Linux Server 7
受け手側の設定
以下で関連ファイル群をインストールすると
# yum -y install net-snmp net-snmp-utils
以下のファイル群が動的に生成されます。
# ls /etc/snmp/ snmpd.conf snmptrapd.conf
あとは以下でサービスを起動した状態にすれば受け手側の作業は終わりです。
# systemctl status snmptrapd #systemctl status snmpd
送り手側の設定
ESXiはデフォルトだと以下のように設定が入っていません。
# esxcli system snmp get Authentication: Communities: Enable: false Engineid: Hwsrc: indications Largestorage: true Loglevel: info Notraps: Port: 161 Privacy: Remoteusers: Syscontact: Syslocation: Targets: Users: V3targets:
以下にて対抗先のIPアドレスとコミュニティ名(public等)を指定して設定すれば
# esxcli system snmp set -c=public -e=true -t=10.X.X.X@162/public
尚、コミュニティ名は必須でそれを抜いて設定しようとすると以下のエラーとなります。
# esxcli system snmp set -e=true -t=10.Y.Y.X@162 invalid target specified, format is: ip-or-hostname[@port]/community,...]
Trap送受信テスト
ESXi側にて以下コマンドを押下すると
# esxcli system snmp test
標準出力に
Comments: There is 1 target configured, send warmStart requested, test completed normally.
と表示がされた後にRHEL側の/var/log/messageにメッセージが出力されます。
尚、後続対応として/etc/sysconfig/snmptrapd
にファシリティを追記することで/var/log/message
に出るメッセージを別ファイルに分けることも可能です。
終わりに
今回は受信サーバは一台でしたがターゲットを以下のように記載すれば複数台に送信することも可能です。
-t 10.X.X.X@162/public,10.Y.Y.Y@162/public
最低限の手順のみを記載しましたが、本記事がESXi監視の参考になれば幸いです。