[vCenter Server] SNMP Trap の設定

本記事では vCenter Server Appliance から送信する SNMP Trap に
ついて、記載します。

vCenter Server Appliance の SNMP Trap について

まず、vCenter Server Appliance から送信可能な SNMP Trap は 2種類
あります。

1 つ目は vCenter Server 上でアラームがトリガされた際のアラームアクション
として送信可能な SNMP Trap です。

2 つ目は vCenter Server Appliance の組み込みの SNMP (v1/v2c/v3)
エージェントを使用した SNMP Trap です。

今回は上記 2 つ、それぞれの設定方法について記載していきます。

アラームアクションで送信可能な SNMP Trap

アラームアクションとして送信可能な SNMP Trap については vSphere Client
から vCenter Server を選択 → [構成] → [SNMP レシーバ] より
SNMP マネージャの設定を行う必要があります。

後は、アラームのアクションにて [SNMP トラップを送信] が有効になっていれば
大丈夫です。
(デフォルトアラームはほぼ全てデフォルトで SNMP トラップを送信が有効です。)

なお、アラームアクションから飛ばす SNMP Trap はテスト Trap を飛ばす
機能は無いので、デフォルトアラームのいずれかを意図的にトリガさせる、
簡単なアラームを作成してトリガさせる等(仮想マシンパワーオン等)で動作を
確認する必要があります。

<参考>
vCenter Server での SNMP トラップの使用
https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.monitoring.doc/GUID-B42AD147-C7AC-48EF-B85B-F6D0F33032F2.html

vCenter Server の SNMP 設定の構成
https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.monitoring.doc/GUID-9D9747DD-E986-42AD-BB26-278FAD852ABF.html

アラームのルールの指定
https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.monitoring.doc/GUID-16757D5E-94CD-4224-A65C-3050329B591D.html
-------
7. vCenter Server インスタンスでアラームが起動したときにトラップを送信する
     には、[SNMP トラップの送信] を有効にします。
-------

以下は参考までとなりますが、アラームアクションで送信される SNMP Trap
は vCenter Server のサービスである vpxd を使用して送信されます。

Feb 12 02:43:45 ss150.test.com vpxd[7928]: Event [2831311] [1-1] [2023-02-12T02:43:45.847051Z] [vim.event.AlarmSnmpCompletedEvent] [info] [] [Datacenter] [2831311] 
[Alarm 'Network uplink redundancy lost': an SNMP trap for entity ss046.test.com was sent]

vCenter Server Appliance 組み込みの SNMP (v1/v2c/v3) エージェントを使用

vCenter Server Appliance 組み込みの SNMP (v1/v2c/v3) エージェントは
アプライアンスシェルから設定を行います。

まずは、アプライアンスシェル上から以下コマンドを実行し SNMP マネージャ
の設定を行います。

snmp.set --targets target_address@port/community

実行例は以下となります。

snmp.set --targets 10.10.10.10@162/public

複数設定する場合は、以下のようにコマンドを実行する。

snmp.set --targets 10.10.10.10@162/public,11.11.11.11@162/public

次に、以下のコマンドで SNMP エージェントを有効にします。
(snmp.enable 後に bash シェル上から systemctl status snmpd.conf
を実行すると active になります。)

snmp.enable

以上までの設定に問題は無いか、以下のコマンドより確認します。

Command> snmp.get
Config:
   Authentication: none
   Communities: ''
   Enable: True
   Processlist: False
   Engineid: 80001f88801d345312365de86300000000
   Loglevel: warning
   Notraps: ''
   Port: 161
   Privacy: none
   Syscontact: ''
   Syslocation: ''
   Targets:
     1:
         Ip: 10.10.10.10
         Port: 162
         Community: public
     2:
         Ip: 11.11.11.11
         Port: 162
         Community: public
   Users:
   Remoteusers:
   V3targets:
   Pid: 17449

設定に問題は無さそうであれば、以下コマンドでテスト Trap を飛ばします。

Command> snmp.test
Results:
   Success: True
   Message: A warmStart notification was sent to 2 targets.

SNMP マネージャ側で warmStart の SNMP Trap が受信できていれば
大丈夫です。

vCenter Server Appliance 側のログでは snmpd が warmStart を
飛ばしてることが確認できます。

2023-02-12T03:35:21.784872+00:00 ss155 snmpd[17449]: P4 9: Sending warmStart notification at operator request
<参考>
vCenter Server 用の SNMP の構成
https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.vcenter.configuration.doc/GUID-74E815A2-62BE-4B30-9132-DB705F6EB6A6.html

Appliance シェルの API コマンド
https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.vcenter.configuration.doc/GUID-CCC172CB-7CCB-41E4-B46A-0B5876E24EF5.html

vCenter Server Appliance で SNMP Trap を設定する際の注意点

上記に説明した通り、vCenter Server Appliance には 2 種類の SNMP Trap が
存在していますが、両方とも有効にするとアラームアクションでの SNMP Trap が
送信できなくなる既知問題が存在しています。

SNMP traps are not received by monitoring server when alarms in vCenter are triggered (67810)
https://kb.vmware.com/s/article/67810

もし、両方を有効にした際にアラームアクションでの SNMP Trap が受信できない
場合には、オフラインスナップショット取得の上、上記 KB の Workaround を
試してみるのが良いと思います。

タイトルとURLをコピーしました