NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE から SNMP Trap を受信してみる。

Nutanix CE 5.18 から、SNMP Trap を受信してみます。

ポーリングでの SNMP 情報取得については前回の投稿もどうぞ。

今回の環境

  • Nutanix CE 5.18
  • 受信は Oracle Linux 7.9(前回の投稿と同様)
[root@lab-vm-02 ~]# cat /etc/system-release
Oracle Linux Server release 7.9

Prism での SNMP トラップ設定

Prism の「設定」→「SNMP」→「ユーザー」で、ユーザを作成しておきます。

前回の投稿と同様、「snmpuser」というユーザを作成しておきます。

f:id:gowatana:20201220212438p:plain

「トラップ」タブで、「新しいトラップレシーバ」を作成します。

f:id:gowatana:20201220212802p:plain

下記のように入力しつつ下にスクロールします。

  • SNMP バージョン: v3
  • トラップ ユーザ名: snmpuser
  • アドレス: SNMP トラップを受信するサーバのアドレス(今回は Linux)
  • ポート:162
  • エンジン ID: 16進数の文字列(0x~ の12文字以上)
  • 通知する: False
  • トランスポート プロトコル: UDP

f:id:gowatana:20201220212857p:plain

ひととおり入力したら、「保存」をクリックします。

f:id:gowatana:20201220213351p:plain

Linux での SNMP Trap 受信設定

一般的には SNMP Manager となる監視サーバで受信すると思いますが、今回は動作確認のため Linux サーバの snmptrapd で受信してみます。

net-snmp のインストール

snmptrapd を使用するため、net-snmp をインストールしておきます。

[root@lab-vm-02 ~]# yum install -y net-snmp
[root@lab-vm-02 ~]# rpm -qf `which snmptrapd`
net-snmp-5.7.2-49.el7_9.1.x86_64

snmptrapd が起動できることを確認しておきます。

[root@lab-vm-02 ~]# systemctl start snmptrapd
[root@lab-vm-02 ~]# systemctl enable snmptrapd
[root@lab-vm-02 ~]# systemctl status snmptrapd

snmptrapd の設定

Syslog の Local5 にトラップを出力します。vi などのエディタ、もしくは下記のようにファイルを作成します。

[root@lab-vm-02 ~]# mkdir /etc/systemd/system/snmptrapd.service.d
[root@lab-vm-02 ~]# echo '[Service]' > /etc/systemd/system/snmptrapd.service.d/logging.conf
[root@lab-vm-02 ~]# echo 'Environment=OPTIONS="-Ls5d"' >> /etc/systemd/system/snmptrapd.service.d/logging.conf

ファイルが作成されました。

[root@lab-vm-02 ~]# cat /etc/systemd/system/snmptrapd.service.d/logging.conf
[Service]
Environment=OPTIONS="-Ls5d"

snmptrapd.conf を編集して、Prism で作成した snmpuser ユーザの情報を追記します。ちなみに、nutanix/4u は snmpuser 作成時に設定したパスワードです。

[root@lab-vm-02 ~]# echo 'createUser -e 0x123456789a snmpuser SHA nutanix/4u AES nutanix/4u' >> /etc/snmp/snmptrapd.conf
[root@lab-vm-02 ~]# echo 'authUser log snmpuser' >> /etc/snmp/snmptrapd.conf

snmptrapd.conf ファイルの末尾に、2行追記されました。

[root@lab-vm-02 ~]# cat /etc/snmp/snmptrapd.conf
# Example configuration file for snmptrapd
#
# No traps are handled by default, you must edit this file!
#
# authCommunity   log,execute,net public
# traphandle SNMPv2-MIB::coldStart    /usr/bin/bin/my_great_script cold
createUser -e 0x123456789a snmpuser SHA nutanix/4u AES nutanix/4u
authUser log snmpuser

Syslog(rsyslog)設定

rsyslog の設定ファイル「/etc/rsyslog.d/nutanix-trap-test.conf」を作成します。

今回受信するトラップは、/var/log/nutanix-trap-test.log ファイルに出力します。

[root@lab-vm-02 ~]# echo 'local5.* /var/log/nutanix-trap-test.log' > /etc/rsyslog.d/nutanix-trap-test.conf

サービスの再起動

snmptrapd を再起動しておきます。

[root@lab-vm-02 ~]# systemctl daemon-reload
[root@lab-vm-02 ~]# systemctl restart snmptrapd

rsyslog も再起動しておきます。

[root@lab-vm-02 ~]# systemctl resatart rsyslog

ファイアウォール(iptables)解放

firewall-cmd で、162/UDP ポートを解放しておきます。

[root@lab-vm-02 ~]# firewall-cmd --add-port=162/udp
success
[root@lab-vm-02 ~]# firewall-cmd --add-port=162/udp --permanent
success

MIB ファイルの配置

受信したトラップを見やすくするため、MIB ファイルを配置します。

MIB ファイルは、前回の投稿と同様に Prism からダウンロードしておきます。

Nutanix CE から SNMP で情報取得してみる。 - NTNX>日記

MIB ファイルを /usr/share/snmp/mibs-private ディレクトリに配置して、SNMP 関連ツールから読み込めるようにします。

ディレクトリを作成して、MIB ファイルを配置します。

[root@lab-vm-02 ~]# mkdir /usr/share/snmp/mibs-private
[root@lab-vm-02 ~]# cp ./NUTANIX-MIB /usr/share/snmp/mibs-private/

/etc/snmp/snmp.conf ファイルを新規作成します。

[root@lab-vm-02 ~]# echo 'MIBDIRS /usr/share/snmp/mibs:/usr/share/snmp/mibs-private' >> /etc/snmp/snmp.conf
[root@lab-vm-02 ~]# echo 'MIBS all' >> /etc/snmp/snmp.conf

ファイルが作成されました。

[root@lab-vm-02 ~]# cat /etc/snmp/snmp.conf
MIBDIRS /usr/share/snmp/mibs:/usr/share/snmp/mibs-private
MIBS all

snmptrapd を再起動しておきます。

[root@lab-vm-02 ~]# systemctl daemon-reload
[root@lab-vm-02 ~]# systemctl restart snmptrapd

テスト トラップの送信

Prism から、テスト トラップを送信します。「設定」→「SNMP」→「トラップ」を開いて、「すべてのテスト」をクリックするとテスト トラップが送信されます。

f:id:gowatana:20201220222749p:plain

ログ ファイルを確認すると、「Test Alert is generated on Controller VM ~」といったメッセージのテスト トラップの受信が確認できます。

[root@lab-vm-02 ~]# tail -f /var/log/nutanix-trap-test.log
・・・
Dec 20 22:28:04 lab-vm-02 snmptrapd[16067]: 2020-12-20 22:28:04 lab-nxce-01-cvm.go-lab.jp [UDP: [192.168.20.52]:35628->[10.0.1.165]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (158036252) 18 days, 6:59:22.52#011SNMPv2-MIB::snmpTrapOID.0 = OID: NUTANIX-MIB::ntxTrapTestAlertTitle#011NUTANIX-MIB::ntxAlertCreationTime = Counter64: 1608470882#011NUTANIX-MIB::ntxAlertUuid = STRING: 48e0b99f-22eb-4b0d-8ca5-6db11f2742ed#011NUTANIX-MIB::ntxAlertDisplayMsg = STRING: AlertUuid:48e0b99f-22eb-4b0d-8ca5-6db11f2742ed: Test Alert is generated on Controller VM 192.168.20.52.#011NUTANIX-MIB::ntxAlertTitle = STRING: Test Alert Title#011NUTANIX-MIB::ntxAlertSeverity = INTEGER: informational(1)#011NUTANIX-MIB::ntxAlertClusterName = STRING:

受信したメッセージの例です。

Nutanix CE の Prism は 192.168.20.52 で、Linxu クライアントが 10.0.1.165 です。

[UDP: [192.168.20.52]:35628->[10.0.1.165]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (158036252) 18 days, 6:59:22.52#011SNMPv2-MIB::snmpTrapOID.0 = OID: NUTANIX-MIB::ntxTrapTestAlertTitle#011NUTANIX-MIB::ntxAlertCreationTime = Counter64: 1608470882#011NUTANIX-MIB::ntxAlertUuid = STRING: 48e0b99f-22eb-4b0d-8ca5-6db11f2742ed#011NUTANIX-MIB::ntxAlertDisplayMsg = STRING: AlertUuid:48e0b99f-22eb-4b0d-8ca5-6db11f2742ed: Test Alert is generated on Controller VM 192.168.20.52.#011NUTANIX-MIB::ntxAlertTitle = STRING: Test Alert Title#011NUTANIX-MIB::ntxAlertSeverity = INTEGER: informational(1)#011NUTANIX-MIB::ntxAlertClusterName = STRING: 

ちなみに MIB ファイルがない場合は、enterprises.41263 以下の階層の OID がそのまま表示されます。

[UDP: [192.168.20.52]:49002->[10.0.1.165]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (158170084) 18 days, 7:21:40.84#011SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.41263.1006#011SNMPv2-SMI::enterprises.41263.999.1 = Counter64: 1608472221#011SNMPv2-SMI::enterprises.41263.999.5 = STRING: "926cc870-5003-4e3f-835f-9f59b817df69"#011SNMPv2-SMI::enterprises.41263.999.2 = STRING: "AlertUuid:926cc870-5003-4e3f-835f-9f59b817df69: Test Alert is generated on Controller VM 192.168.20.52."#011SNMPv2-SMI::enterprises.41263.999.3 = STRING: "Test Alert Title"#011SNMPv2-SMI::enterprises.41263.999.4 = INTEGER: 1#011SNMPv2-SMI::enterprises.41263.999.7 = ""

以上。

©2021 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。