NSXALBでController、SE、VSで状態変化が発生した際にSNMP Trap通知を行う設定を行っていきます。
デフォルトのAlert設定だとDownに関するAlertしか発生しなかったり、ControllerのDownに関してはTrap通知されないようになっているので、この辺のおすすめ設定を紹介します。
- ネットワーク構成
- 設定の流れ
- System SettingsでSNMPを有効化する
- SNMP Trap通知先を設定する
- Alert Actionで通知先を関連付ける
- Alert ConfigでTrap通知するEventを定義し、Alert Actionを関連付ける
- SNMP Trap通知の動作確認
- 補足
設定の流れ
SNMPの設定は以下の手順で設定します。
- System SettingsでSNMPを有効化する
- SNMP Trap通知先を設定する
- Alert Actionで通知先を関連付ける
- Alert ConfigでTrap通知するEventを定義し、Alert Actionを関連付ける
vmwareの以下サイト参考に設定しています。
docs.vmware.com
System SettingsでSNMPを有効化する
NSXALBの管理コンソールにログイン後、[Administration]ー[System Settings]からEDITを選択します。
SNMPの設定を、「None」から「SNMP V2」に変更し、SNMP Communityに「VMwarevmware1!」を入力後、SAVEを選択します。
SNMP Trap通知先を設定する
[Operations]ー[Notifications]ー[SNMP Trap]からCREATEを選択します。
Nameに「Trap Receiver」を入力し、SNMP Trap ServersからADDを選択します。
Trap Server IP Addressに「192.168.10.32」を入力します。
SNMP VersionとSNMP Communityは、System Settingsで設定したものが自動的に反映されます。
SNMP Trap Serversの情報が反映されたら、SAVEを選択します。
SNMP Trapの画面に戻ると設定が反映されていますが、Serverの欄が空欄になっているのはバグであるため、このまま設定を進めます。
Alert Actionで通知先を関連付ける
[Operations]ー[Alerts]ー[Alert Actions]からCREATEを選択します。
Nameに「SNMP Trap」を入力し、Alert Levelを「Low」から「Medium」に変更し、SNMP Trapは「Trap Receiver」を選び、SAVEを選択します。
Alert ConfigでTrap通知するEventを定義し、Alert Actionを関連付ける
[Operations]ー[Alerts]ー[Alert Config]からCREATEを選択します。
Nameに「SNMP Trap-Alert」を入力します。
Throttle Alertは、アラートが生成されてから設定された秒数経過するまで、アラートが抑止 (調整) される設定ですが、即時アラート通知をさせたいので「0」とします。
Event Occursは、ここで設定したEventが発生した際にActionが実行されるものとなります。
デフォルトの設定だと、Controller、SE、VSなどが別々のAlert Configで定義されており、かつDownの事象しか定義されていないため、ここでは、Upの事象でもTrap通知されるようにEventを選択していきます。
Event OccursでVS Upを選択したら、「AND」から「OR」に変更し、「+Add New Event」を選択して、以下のEventを追加していきます。
- VS Down
- Pool Up
- Pool Down
- VIP Up
- VIP Down
- SE Up
- SE Down
- Controller Leader Failover
- Controller Node Joined
- Controller Node Left
最後に、Alert Actionから「SNMP Trap」を選び、SAVEを選択します。
SNMP TrapはControllerから通知されるため、1台構成だとController自体の停止だとTrap通知できません。そのため、Controller Clusterが設定されていることが前提となりますが、Shutdown、Started、Warm Rebootだと、通常の起動、停止のアクションでは通知がされないため、Controllerが起動・停止した際に Controller ClusterのJoined、Leftをトリガーとして検知します。
また、Controller Leaderが障害となった場合は、Failoverが発生し残り2台のどちらかに切り替わるため、Leaderが変更となった場合も通知するようにします。
SNMP Trap通知の動作確認
SNMP Trapに関する設定が完了したので、実際に設定したEventを発生させTrapが通知されるか確認します。
VS Down、Pool Down、VIP Down
PoolをDownさせることで、VS、Pool、VIPのDown Trapを確認します。
Trapの受信は、dns32でtcpdumpを実行します。
[root@dns32 ~]# tcpdump -i ens192 -nn -tttt | grep Trap tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes 2023-12-02 17:13:07.947721 IP 192.168.10.51.38612 > 192.168.10.32.162: C="VMwarevmware1!" V2Trap(221) .1.3.6.1.2.1.1.3.0=1224402 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.45468.0.5 .1.3.6.1.4.1.45468.1.1.7="[ALB: reason: SNMP Trap-Alert] At 2023-12-02 08:11:32+00:00 event VIP_DOWN occurred on object ALB in tenant admin as VIP 192.168.3.200 is DOWN. " 2023-12-02 17:13:07.976950 IP 192.168.10.51.54207 > 192.168.10.32.162: C="VMwarevmware1!" V2Trap(326) .1.3.6.1.2.1.1.3.0=1224405 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.45468.0.3 .1.3.6.1.4.1.45468.1.1.8="/api/virtualservice/virtualservice-f8f2bf3f-fee1-4d01-97cf-0abe57c69a54" .1.3.6.1.4.1.45468.2.3.1.6.4=2 .1.3.6.1.4.1.45468.1.1.4="[ALB: reason: SNMP Trap-Alert] At 2023-12-02 08:11:32+00:00 event VS_DOWN occurred on object ALB in tenant admin as VirtualService is Down. " 2023-12-02 17:13:08.006960 IP 192.168.10.51.51168 > 192.168.10.32.162: C="VMwarevmware1!" V2Trap(229) .1.3.6.1.2.1.1.3.0=1224408 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.45468.0.5 .1.3.6.1.4.1.45468.1.1.7="[192.168.10.51: reason: SNMP Trap-Alert] At 2023-12-02 08:11:33+00:00 event POOL_DOWN occurred on object Pool-HTTP in tenant admin as Pool is DOWN. "
VS Up、Pool Up、VIP Up
PoolをUpさせることで、VS、Pool、VIPのUpTrapを確認します。
[root@dns32 ~]# tcpdump -i ens192 -nn -tttt | grep Trap tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes 2023-12-02 17:15:06.647249 IP 192.168.10.51.56182 > 192.168.10.32.162: C="VMwarevmware1!" V2Trap(225) .1.3.6.1.2.1.1.3.0=1236272 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.45468.0.5 .1.3.6.1.4.1.45468.1.1.7="[192.168.10.51: reason: SNMP Trap-Alert] At 2023-12-02 08:13:30+00:00 event POOL_UP occurred on object Pool-HTTP in tenant admin as Pool is UP. " 2023-12-02 17:15:06.675684 IP 192.168.10.51.46900 > 192.168.10.32.162: C="VMwarevmware1!" V2Trap(217) .1.3.6.1.2.1.1.3.0=1236275 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.45468.0.5 .1.3.6.1.4.1.45468.1.1.7="[ALB: reason: SNMP Trap-Alert] At 2023-12-02 08:13:30+00:00 event VIP_UP occurred on object ALB in tenant admin as VIP 192.168.3.200 is UP. " 2023-12-02 17:15:06.704245 IP 192.168.10.51.60861 > 192.168.10.32.162: C="VMwarevmware1!" V2Trap(322) .1.3.6.1.2.1.1.3.0=1236278 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.45468.0.3 .1.3.6.1.4.1.45468.1.1.8="/api/virtualservice/virtualservice-f8f2bf3f-fee1-4d01-97cf-0abe57c69a54" .1.3.6.1.4.1.45468.2.3.1.6.4=1 .1.3.6.1.4.1.45468.1.1.4="[ALB: reason: SNMP Trap-Alert] At 2023-12-02 08:13:30+00:00 event VS_UP occurred on object ALB in tenant admin as VirtualService is Up. "
SE Down、SE Up
SEをDown/UPさせて、Trapを確認します。
[root@dns32 ~]# tcpdump -i ens192 -nn -tttt | grep Trap tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes 2023-12-02 17:19:37.525922 IP 192.168.10.51.36169 > 192.168.10.32.162: C="VMwarevmware1!" V2Trap(313) .1.3.6.1.2.1.1.3.0=1263360 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.45468.0.2 .1.3.6.1.4.1.45468.1.1.8="/api/serviceengine/se-0050569b135d" .1.3.6.1.4.1.45468.2.2.1.6.2=2 .1.3.6.1.4.1.45468.1.1.5="[192.168.10.53: reason: SNMP Trap-Alert] At 2023-12-02 08:18:00+00:00 event SE_DOWN occurred on object 192.168.10.53 in tenant admin as Service Engine marked down. " 2023-12-02 17:21:41.737520 IP 192.168.10.51.47336 > 192.168.10.32.162: C="VMwarevmware1!" V2Trap(331) .1.3.6.1.2.1.1.3.0=1275781 .1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.45468.0.2 .1.3.6.1.4.1.45468.1.1.8="/api/serviceengine/se-0050569b135d" .1.3.6.1.4.1.45468.2.2.1.6.2=1 .1.3.6.1.4.1.45468.1.1.5="[192.168.10.53: reason: SNMP Trap-Alert] At 2023-12-02 08:20:06+00:00 event SE_UP occurred on object 192.168.10.53 in tenant admin as Avi Service Engine connected to Avi Controller. "
補足
Controllerが1台構成のため、Failoverのテストは実施しませんが、Leaderを停止させると、新に昇格したLeaderからController Node LeftとController Leader Failoverのtrapが通知されます。
Controllerは固定IPで設定することがほとんどであるため、死活監視でも生き死には確認できますが、SEは構成によって、動的にスケールアウト/スケールインするため、死活監視が難しくなります。
そもそも、SEは特性上、死活監視の必要はないと思うので、SNMP Trapで状態を把握するぐらいで丁度良いのかなと考えます。
今回の検証は以上です。