本記事では 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 を
試してみるのが良いと思います。