rSeries F5OS-A SNMP Monitoring and Alerting

Within rSeries tenants, SNMP support remains unchanged from existing BIG-IPs. SNMP monitoring and SNMP traps are supported in a similar manner as they are within a vCMP guest. F5OS-A handles the lower level networking, and SNMP MIBs and Traps are supported at this layer. F5OS-A currently supports SNMP v1 and v2c versions. SNMPv3 is currently unsupported in the F5OS-A layer, but will be added in the Q3CY22 timeframe.

In the F5OS-A v1.x.x versions, SNMP support is limited to SNMP Trap support for certain events like link up/down traps, and IF-MIB support for the physical interfaces. IF-MIB, EtherLike-MIB, and the PLATFORM-STATS-MIB.

As of F5OS-A 1.x.x the following netSNMP MIBs available are available:

  • TRANSPORT-ADDRESS-MIB
  • SNMPv2-TC
  • SNMPv2 SMI
  • SNMPv2-MIB
  • SNMPv2-CONF
  • SNMP-VIEW-BASED-ACM-MIB
  • SNMP-USER-BASED-SM-MIB
  • SNMP-TARGET-MIB
  • SNMP-NOTIFICATION-MIB
  • SNMP-MPD-MIB
  • SNMP-FRAMEWORK-MIB
  • SNMP-COMMUNITY-MIB
  • RFC1213-MIB
  • IPV6-MIB
  • IF-MIB
  • IANAifType-MIB
  • HOST-RESOURCES-MIB
  • EtherLike-MIB

As of F5OS-A 1.x.x the following F5OS Appliance MIBs available are available:

  • F5-ALERT-DEF-MIB
  • F5-COMMON-SMI-MIB
  • F5OS-APPLIANCE-ALERT-NOTIF-MIB

As of F5OS-A 1.x.x the following alerts and traps are available:

  • Interface UP
  • Interface DOWN
  • Cold Start
  • Hardware device fault detected
  • Firmware diagnostic state fault detected
  • Unregistered alarm detected
  • Fault in memory detected
  • Fault in drive detected
  • CPU fault detected
  • Fault in PCIe device detected
  • Running out of drive capacity
  • Power fault detected in hardware
  • Thermal fault detected in hardware
  • Drive has entered a thermal throttle condition
  • Thermal fault detected in blade
  • Hardware fault detected in blade
  • Firmware update status
  • Drive utilization growth rate is high
  • Service health status
  • Change detected in appliance module presence
  • PSU fault detected
  • Fault detected in LCD module
  • Module communication error detected
  • Crypto error identified in one or more services
  • Detected process crash on the system

Adding Allowed IPs for SNMP

Adding Allowed IPs for SNMP via CLI

By default SNMP traffic is not allowed into the F5OS layer. Before enabling SNMP, you’ll need to open up the out-of-band management port on F5OS-A to allow SNMP traffic. Below is an example of allowing an SNMP endpoint at 10.255.0.144 to SNMP poll the system on port 161.

appliance-1(config)# system allowed-ips allowed-ip SNMP-144 config ipv4 address 10.255.0.144 port 161
appliance-1(config-allowed-ip-SNMP)# commit
Commit complete.
appliance-1(config-allowed-ip-SNMP)#

Currently you can add one ip address/port pair per allowed-ip name. If you require more than one IP address you can add it under another name as seen below.

appliance-1(config)# system allowed-ips allowed-ip SNMP-144 config ipv4 address 10.255.0.144 port 161
appliance-1(config-allowed-ip-SNMP)# commit
Commit complete.
appliance-1(config-allowed-ip-SNMP)#


appliance-1(config)# system allowed-ips allowed-ip SNMP-145 config ipv4 address 10.255.0.145 port 161
appliance-1(config-allowed-ip-SNMP)# commit
Commit complete.
appliance-1(config-allowed-ip-SNMP)#

The allowed-ips currently allows a specific IP address, and doesn’t support CIDR configurations. This is being added, and will be available in an upcoming F5OS-A release.

Adding Allowed IPs for SNMP via API

By default SNMP traffic is not allowed into the F5OS layer. Before enabling SNMP you’ll need to open up the out-of-band management port on F5OS-A to allow SNMP traffic. Below is an example of allowing an multiple SNMP endpoints at to access SNMP on the system on port 161.

POST https://{{Appliance1_IP}}:8888/restconf/data/openconfig-system:system/f5-allowed-ips:allowed-ips

Within the body of the API call, specific IP address/port combinations can be added under a given name. In the current release, you are limited to one IP address/port per name.

{
    "allowed-ip": [
        {
            "name": "SNMP-142",
            "config": {
                "ipv4": {
                    "address": "10.255.0.142",
                    "port": 161
                }
            }
        },
        {
            "name": "SNMP-143",
            "config": {
                "ipv4": {
                    "address": "10.255.0.143",
                    "port": 161
                }
            }
        },
        {
            "name": "SNMP-144",
            "config": {
                "ipv4": {
                    "address": "10.255.0.144",
                    "port": 161
                }
            }
        }
    ]
}

To view the allowed IP’s in the API, use the following call.

GET https://{{Appliance1_IP}}:8888/restconf/data/openconfig-system:system/f5-allowed-ips:allowed-ips

The output will show the previously configured allowed-ip’s.

{
    "f5-allowed-ips:allowed-ips": {
        "allowed-ip": [
            {
                "name": "SNMP-142",
                "config": {
                    "ipv4": {
                        "address": "10.255.0.142",
                        "port": 161
                    }
                }
            },
            {
                "name": "SNMP-143",
                "config": {
                    "ipv4": {
                        "address": "10.255.0.143",
                        "port": 161
                    }
                }
            },
            {
                "name": "SNMP-144",
                "config": {
                    "ipv4": {
                        "address": "10.255.0.144",
                        "port": 161
                    }
                }
            }
        ]
    }
}

Adding Interface and LAG descriptions

It is highly recommended that you put interface descriptions in your configuration, so that they will show up in the description field when using SNMP polling.

Adding Interface and LAG descriptions via CLI

To add descriptions for both the in-band, and out-of-band management ports in the CLI, follow the examples below.

appliance-1(config)# interfaces interface 1.0 config description "Interface 1.0"
appliance-1(config-interface-1.0)# exit
appliance-1(config)# interfaces interface 2.0 config description "Interface 2.0"
appliance-1(config-interface-2.0)# exit
appliance-1(config)# interfaces interface 3.0 config description "Interface 3.0"
appliance-1(config-interface-3.0)# interfaces interface 4.0 config description "Interface 4.0"
appliance-1(config-interface-4.0)# interfaces interface 5.0 config description "Interface 5.0"
appliance-1(config-interface-5.0)# interfaces interface 6.0 config description "Interface 6.0"
appliance-1(config-interface-6.0)# interfaces interface 7.0 config description "Interface 7.0"
appliance-1(config-interface-7.0)# interfaces interface 8.0 config description "Interface 8.0"
appliance-1(config-interface-8.0)# interfaces interface 9.0 config description "Interface 9.0"
appliance-1(config-interface-9.0)# interfaces interface 10.0 config description "Interface 10.0"
appliance-1(config-interface-10.0)# interfaces interface 11.0 config description "Interface 11.0"
appliance-1(config-interface-11.0)# interfaces interface 12.0 config description "Interface 12.0"
appliance-1(config-interface-12.0)# interfaces interface 13.0 config description "Interface 13.0"
appliance-1(config-interface-13.0)# interfaces interface 14.0 config description "Interface 14.0"
appliance-1(config-interface-14.0)# interfaces interface 15.0 config description "Interface 15.0"
appliance-1(config-interface-15.0)# interfaces interface 16.0 config description "Interface 16.0"
appliance-1(config-interface-16.0)# interfaces interface 17.0 config description "Interface 17.0"
appliance-1(config-interface-17.0)# interfaces interface 18.0 config description "Interface 18.0"
appliance-1(config-interface-18.0)# interfaces interface 19.0 config description "Interface 19.0"
appliance-1(config-interface-19.0)# interfaces interface 20.0 config description "Interface 20.0"
appliance-1(config-interface-20.0)# exit
appliance-1(config)# commit
Commit complete.
appliance-1(config)#



appliance-1(config)# interfaces interface mgmt  config description "Interface mgmt"
appliance-1(config-interface-mgmt)# commit

If Link Aggregation Groups (LAGs) are configured, descriptions should be added to the LAG interfaces as well.

appliance-1(config)# interfaces interface Arista config description "Arista LAG"
appliance-1(config-interface-Arista)# exit
appliance-1(config)# interfaces interface HA-Interconnect  config description "HA-Interconnect LAG"
appliance-1(config-interface-HA-Interconnect)# exit
appliance-1(config)# commit
Commit complete.
appliance-1(config)#

Adding Interface and LAG descriptions via API

To add descriptions for both the in-band, and out-of-band management ports in the CLI, follow the examples below. The API example below is for the r10000 models, which have 20 interfaces and one managment port. For the r5000 series models you should adjust for 10 interfaces and one managment port.

PATCH https://{{Appliance1_IP}}:8888/restconf/data/
{
    "openconfig-interfaces:interfaces": {
        "interface": [
            {
                "name": "1.0",
                "config": {
                    "description": "r10900 Interface 1.0"
                }
            },
            {
                "name": "2.0",
                "config": {
                    "description": "r10900 Interface 2.0"
                }
            },
            {
                "name": "3.0",
                "config": {
                    "description": "r10900 Interface 3.0"
                }
            },
            {
                "name": "4.0",
                "config": {
                    "description": "r10900 Interface 4.0"
                }
            },
            {
                "name": "5.0",
                "config": {
                    "description": "r10900 Interface 5.0"
                }
            },
            {
                "name": "6.0",
                "config": {
                    "description": "r10900 Interface 6.0"
                }
            },
            {
                "name": "7.0",
                "config": {
                    "description": "r10900 Interface 7.0"
                }
            },
            {
                "name": "8.0",
                "config": {
                    "description": "r10900 Interface 8.0"
                }
            },
            {
                "name": "9.0",
                "config": {
                    "description": "r10900 Interface 9.0"
                }
            },
            {
                "name": "10.0",
                "config": {
                    "description": "r10900 Interface 10.0"
                }
            },
            {
                "name": "11.0",
                "config": {
                    "description": "r10900 Interface 11.0"
                }
            },
            {
                "name": "12.0",
                "config": {
                    "description": "r10900 Interface 12.0"
                }
            },
            {
                "name": "13.0",
                "config": {
                    "description": "r10900 Interface 13.0"
                }
            },
            {
                "name": "14.0",
                "config": {
                    "description": "r10900 Interface 14.0"
                }
            },
            {
                "name": "15.0",
                "config": {
                    "description": "r10900 Interface 15.0"
                }
            },
            {
                "name": "16.0",
                "config": {
                    "description": "r10900 Interface 16.0"
                }
            },
            {
                "name": "17.0",
                "config": {
                    "description": "r10900 Interface 17.0"
                }
            },
            {
                "name": "18.0",
                "config": {
                    "description": "r10900 Interface 18.0"
                }
            },
            {
                "name": "19.0",
                "config": {
                    "description": "r10900 Interface 19.0"
                }
            },
            {
                "name": "20.0",
                "config": {
                    "description": "r10900 Interface 20.0"
                }
            },
            {
                "name": "mgmt",
                "config": {
                    "description": "r10900 Interface mgmt"
                }
            }
        ]
    }
}

If Link Aggregation Groups (LAGs) are configured, descriptions should be added to the LAG interfaces as well.

PATCH https://{{Appliance1_IP}}:8888/restconf/data/

The body of the API call should contain JSON data that includes the descriptions for each LAG.

{
    "openconfig-interfaces:interfaces": {
        "interface": [
            {
                "name": "Arista",
                "config": {
                    "description": "LAG to Arista"
                }
            },
            {
                "name": "HA-Interconnect",
                "config": {
                    "description": "LAG to other r10900"
                }
            }

        ]
    }
}

Configuring SNMP Access

To enable SNMP, you’ll need to configure basic SNMP parameters like sytem contact, location and name. Then configure access for specific SNMP communities and versions. Currently SNMP can be setup via CLI or API, but not the webUI. Adding SNMP configuraiton support for the webUI will be available in a future F5OS-A release.

Configuring SNMP Access via CLI

You can configure the SNMP System parameters including the System Contact, System Location, and System Name as seen below:

appliance-1(config)# SNMPv2-MIB system sysContact jim@f5.com sysLocation Boston sysName r5900-2
appliance-1(config)# commit
Commit complete.
appliance-1(config)#

Enabling SNMP can de done from the CLI by configuring the public SNMP community, and then configuring a Security Access Group. Below is an example of enabling SNMP monitoring at the F5OS layer. F5OS only supports read-only access for SNMP monitoring.

appliance-1# config
Entering configuration mode terminal
appliance-1(config)# SNMP-COMMUNITY-MIB snmpCommunityTable snmpCommunityEntry public snmpCommunityName public snmpCommunitySecurityName public
appliance-1(config-snmpCommunityEntry-public)# exit

To configure a Security Group for both SNMPv1 and SNMPv2c.

appliance-1(config)# SNMP-VIEW-BASED-ACM-MIB vacmSecurityToGroupTable vacmSecurityToGroupEntry 2 public vacmGroupName read-access
appliance-1(config-vacmSecurityToGroupEntry-2/public)# exit
appliance-1(config)# SNMP-VIEW-BASED-ACM-MIB vacmSecurityToGroupTable vacmSecurityToGroupEntry 1 public vacmGroupName read-access
appliance-1(config-vacmSecurityToGroupEntry-1/public)# exit
appliance-1(config)# commit
Commit complete.
appliance-1(config)#

Configuring SNMP Access via API

You can configure the SNMP System parameters including the System Contact, System Location, and System Name as seen below:

PATCH https://{{Appliance1_IP}}:8888/restconf/data/SNMPv2-MIB:SNMPv2-MIB/system/sysContact
{
    "SNMPv2-MIB:sysContact": "jim@f5.com",
    "SNMPv2-MIB:sysName": "Boston-r10900-1",
    "SNMPv2-MIB:sysLocation": "Boston"
}

Enabling SNMP can de done from the API by configuring the public SNMP community. Below is an example of enabling SNMP monitoring at the F5OS layer. F5OS only supports read-only access for SNMP monitoring.

PATCH https://{{Appliance1_IP}}:8888/restconf/data/SNMP-VIEW-BASED-ACM-MIB:SNMP-VIEW-BASED-ACM-MIB
{
    "SNMP-VIEW-BASED-ACM-MIB:SNMP-VIEW-BASED-ACM-MIB": {
        "vacmSecurityToGroupTable": {
            "vacmSecurityToGroupEntry": [
                {
                    "vacmSecurityModel": 1,
                    "vacmSecurityName": "public",
                    "vacmGroupName": "read-access",
                    "vacmSecurityToGroupStorageType": "nonVolatile"
                },
                {
                    "vacmSecurityModel": 2,
                    "vacmSecurityName": "public",
                    "vacmGroupName": "read-access",
                    "vacmSecurityToGroupStorageType": "nonVolatile"
                }
            ]
        },
        "vacmAccessTable": {
            "vacmAccessEntry": [
                {
                    "vacmGroupName": "read-access",
                    "vacmAccessContextPrefix": "",
                    "vacmAccessSecurityModel": 0,
                    "vacmAccessSecurityLevel": "noAuthNoPriv",
                    "vacmAccessContextMatch": "exact",
                    "vacmAccessReadViewName": "internet",
                    "vacmAccessNotifyViewName": "internet",
                    "vacmAccessStorageType": "nonVolatile"
                }
            ]
        },
        "vacmViewTreeFamilyTable": {
            "vacmViewTreeFamilyEntry": [
                {
                    "vacmViewTreeFamilyViewName": "internet",
                    "vacmViewTreeFamilySubtree": "1.3.6.1",
                    "vacmViewTreeFamilyMask": "",
                    "vacmViewTreeFamilyType": "included",
                    "vacmViewTreeFamilyStorageType": "nonVolatile"
                }
            ]
        }
    }
}

Enabling SNMP Traps

Enabling SNMP Traps in the CLI

Enter config mode, and enter the following commands to enable SNMP traps for the F5OS-A layer. Specifiy, your SNMP trap receiver’s IP address and port after the snmpTargetAddrTAddress field. Make sure to commit any changes.

Note: The snmpTargetAddrTAddress is currently unintuitive and an enhancement request has been filed to simplify the IP address and port configuration. In the snmpTargetAddrTAddress, The 1st octet after the IP address is 161 >> 8 = 0, and 2nd octet 161 & 255 = 161. The IP address configuration for an IP address of 10.255.0.144 & 161 UDP port is 10.255.0.144.0.161.

r5900-2# config
Entering configuration mode terminal
r5900-2(config)# SNMP-NOTIFICATION-MIB snmpNotifyTable snmpNotifyEntry v2_trap snmpNotifyTag v2_trap snmpNotifyType trap snmpNotifyStorageType nonVolatile
r5900-2(config-snmpNotifyEntry-v2_trap)# exit
r5900-2(config)# SNMP-TARGET-MIB snmpTargetAddrTable snmpTargetAddrEntry group2 snmpTargetAddrTDomain 1.3.6.1.6.1.1 snmpTargetAddrTAddress 10.255.0.144.0.161 snmpTargetAddrTimeout 1500 snmpTargetAddrRetryCount 3 snmpTargetAddrTagList v2_trap snmpTargetAddrParams group2 snmpTargetAddrStorageType nonVolatile snmpTargetAddrEngineID "" snmpTargetAddrTMask "" snmpTargetAddrMMS 2048 enabled
r5900-2(config-snmpTargetAddrEntry-group2)# exit
r5900-2(config)# SNMP-TARGET-MIB snmpTargetParamsTable snmpTargetParamsEntry group2 snmpTargetParamsMPModel 1 snmpTargetParamsSecurityModel 2 snmpTargetParamsSecurityName public snmpTargetParamsSecurityLevel noAuthNoPriv snmpTargetParamsStorageType nonVolatile
r5900-2(config-snmpTargetParamsEntry-group2)# exit
r5900-2(config)# commit
Commit complete.
r5900-2(config)#

There are various SNMP show commands in the CLI to provide configuration and stats.

appliance-1# show SNMP-FRAMEWORK-MIB
SNMP-FRAMEWORK-MIB snmpEngine snmpEngineID 80:00:61:81:05:01
SNMP-FRAMEWORK-MIB snmpEngine snmpEngineBoots 26
SNMP-FRAMEWORK-MIB snmpEngine snmpEngineTime 15215
SNMP-FRAMEWORK-MIB snmpEngine snmpEngineMaxMessageSize 50000

appliance-1# show SNMP-MPD-MIB
SNMP-MPD-MIB snmpMPDStats snmpUnknownSecurityModels 0
SNMP-MPD-MIB snmpMPDStats snmpInvalidMsgs 0
SNMP-MPD-MIB snmpMPDStats snmpUnknownPDUHandlers 0

appliance-1# show SNMP-TARGET-MIB
SNMP-TARGET-MIB snmpTargetObjects snmpUnavailableContexts 0
SNMP-TARGET-MIB snmpTargetObjects snmpUnknownContexts 0

appliance-1# show SNMP-USER-BASED-SM-MIB
SNMP-USER-BASED-SM-MIB usmStats usmStatsUnsupportedSecLevels 0
SNMP-USER-BASED-SM-MIB usmStats usmStatsNotInTimeWindows 0
SNMP-USER-BASED-SM-MIB usmStats usmStatsUnknownUserNames 0
SNMP-USER-BASED-SM-MIB usmStats usmStatsUnknownEngineIDs 0
SNMP-USER-BASED-SM-MIB usmStats usmStatsWrongDigests 0
SNMP-USER-BASED-SM-MIB usmStats usmStatsDecryptionErrors 0

appliance-1# show SNMPv2-MIB
SNMPv2-MIB system sysDescr "Linux 3.10.0-1160.25.1.F5.1.el7_8.x86_64 : Appliance services version 1.1.0-3306"
SNMPv2-MIB system sysObjectID 1.3.6.1.2.1.1
SNMPv2-MIB system sysUpTime 1525114
SNMPv2-MIB system sysServices 72
SNMPv2-MIB system sysORLastChange 6
SNMPv2-MIB snmp snmpInPkts 1
SNMPv2-MIB snmp snmpInBadVersions 0
SNMPv2-MIB snmp snmpInBadCommunityNames 1
SNMPv2-MIB snmp snmpInBadCommunityUses 0
SNMPv2-MIB snmp snmpInASNParseErrs 0
SNMPv2-MIB snmp snmpSilentDrops 0
SNMPv2-MIB snmp snmpProxyDrops 0
SNMPv2-MIB snmpSet snmpSetSerialNo 1200461836
                                                                                                        SYS
SYS                                                                                                        ORUP
ORINDEX  SYS ORID             SYS ORDESCR                                                                  TIME
-----------------------------------------------------------------------------------------------------------------
1        1.3.6.1.4.1.12276.1  F5 Networks enterprise Platform MIB                                          6
2        1.3.6.1.2.1.31       The MIB module to describe generic objects for network interface sub-layers  6

appliance-1#

Enabling SNMP Traps in the API

PATCH https://{{Appliance1_IP}}:8888/restconf/data/SNMP-NOTIFICATION-MIB:SNMP-NOTIFICATION-MIB
{
    "SNMP-NOTIFICATION-MIB:SNMP-NOTIFICATION-MIB": {
        "snmpNotifyTable": {
            "snmpNotifyEntry": [
                {
                    "snmpNotifyName": "v2_trap",
                    "snmpNotifyTag": "v2_trap",
                    "snmpNotifyType": "trap",
                    "snmpNotifyStorageType": "nonVolatile"
                }
            ]
        }
    }
}
PATCH https://{{Appliance1_IP}}:8888/restconf/data/SNMP-TARGET-MIB:SNMP-TARGET-MIB
{
    "SNMP-TARGET-MIB:SNMP-TARGET-MIB": {
        "snmpTargetAddrTable": {
            "snmpTargetAddrEntry": [
                {
                    "snmpTargetAddrName": "group2",
                    "snmpTargetAddrTDomain": "1.3.6.1.6.1.1",
                    "snmpTargetAddrTAddress": "10.255.0.144.0.161",
                    "snmpTargetAddrTimeout": 1500,
                    "snmpTargetAddrRetryCount": 3,
                    "snmpTargetAddrTagList": "v2_trap",
                    "snmpTargetAddrParams": "group2",
                    "snmpTargetAddrStorageType": "nonVolatile",
                    "snmpTargetAddrEngineID": "",
                    "snmpTargetAddrTMask": "",
                    "snmpTargetAddrMMS": 2048,
                    "enabled": true
                }
            ]
        },
        "snmpTargetParamsTable": {
            "snmpTargetParamsEntry": [
                {
                    "snmpTargetParamsName": "group2",
                    "snmpTargetParamsMPModel": 1,
                    "snmpTargetParamsSecurityModel": 2,
                    "snmpTargetParamsSecurityName": "public",
                    "snmpTargetParamsSecurityLevel": "noAuthNoPriv",
                    "snmpTargetParamsStorageType": "nonVolatile"
                }
            ]
        }
    }
}

Polling SNMP Endpoints

Once SNMP has been fully configured, you can then poll the appliance via SNMP from a remote system to get stats using the following SNMP OID’s:

SNMP System

SNMP System OID: .1.3.6.1.2.1.1

Exmaple output:

sysDescr.0  Linux 3.10.0-862.14.4.el7.centos.plus.x86_64 : Partition services version 1.2.1-10781   OctetString     10.255.0.148:161
sysObjectID.0       system  OID     10.255.0.148:161
sysUpTime.0 1 hour 13 minutes 13.88 seconds (439388)        TimeTicks       10.255.0.148:161
sysContact.0        jim@f5.com      OctetString     10.255.0.148:161
sysName.0   VELOS-bigpartition      OctetString     10.255.0.148:161
sysLocation.0       Boston  OctetString     10.255.0.148:161
sysServices.0       72      Integer 10.255.0.148:161
.1.3.6.1.2.1.1.8.0  190 milliseconds (19)   TimeTicks       10.255.0.148:161
.1.3.6.1.2.1.1.9.1.2.1      platform        OID     10.255.0.148:161
.1.3.6.1.2.1.1.9.1.2.2      .1.3.6.1.2.1.31 OID     10.255.0.148:161

SNMP ifTable

You can poll the following SNMP OID to get detailed interface stats for each physical port on the rSeries appliances and also for Link Aggregation Groups that have been configured.

NOTE: Stats for LAG interfaces are not currently populated.

SNMP ifIndex OID: .1.3.6.1.2.1.2.2

ifIndex ifDescr ifType ifMtu ifSpeed ifPhysAddress ifAdminStatus ifOperStatus ifLastChange ifInOctets ifInUcastPkts ifInNUcastPkts ifInDiscards ifInErrors ifInUnknownProtos ifOutOctets ifOutUcastPkts ifOutNUcastPkts ifOutDiscards ifOutErrors ifOutQLen ifSpecific Index Value
1 r10900 Interface mgmt ethernetCsmacd 0 1000000000 00-94-A1-69-59-02 up up         0 0         0 0     1
33554441 r10900 Interface 11.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-03 up down         0 0         0 0     33554441
33554442 r10900 Interface 13.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-04 up up         0 0         0 0     33554442
33554443 r10900 Interface 14.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-05 up up         0 0         0 0     33554443
33554444 r10900 Interface 15.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-06 up up         0 0         0 0     33554444
33554445 r10900 Interface 16.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-07 up up         0 0         0 0     33554445
33554441 r10900 Interface 12.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-08 up down         0 0         0 0     33554446
33554442 r10900 Interface 17.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-09 up up         0 0         0 0     33554447
33554443 r10900 Interface 18.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-0A up up         0 0         0 0     33554448
33554444 r10900 Interface 19.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-0B up up         0 0         0 0     33554449
33554445 r10900 Interface 20.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-OC up up         0 0         0 0     33554450
33554441 r10900 Interface 1.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-OD up down         0 0         0 0     33554451
33554442 r10900 Interface 3.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-0E up up         0 0         0 0     33554452
33554443 r10900 Interface 4.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-0F up up         0 0         0 0     33554453
33554444 r10900 Interface 5.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-10 up up         0 0         0 0     33554454
33554445 r10900 Interface 6.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-11 up up         0 0         0 0     33554455
33554441 r10900 Interface 2.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-12 up down         0 0         0 0     33554456
33554442 r10900 Interface 7.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-13 up up         0 0         0 0     33554457
33554443 r10900 Interface 8.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-14 up up         0 0         0 0     33554458
33554444 r10900 Interface 9.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-15 up up         0 0         0 0     33554459
33554445 r10900 Interface 10.0 ethernetCsmacd 9600 4294967295 00-94-A1-69-59-16 up up         0 0         0 0     33554460

SNMP ifXTable

You can poll the following SNMP OID to get detailed High Speed (64bit) Countersfor each physical port on the rSeries appliances.

NOTE: Stats for LAG interfaces are not currently populated.

SNMP ifIndex OID: .1.3.6.1.2.1.31.1.1

ifName ifInMulticastPkts ifInBroadcastPkts ifOutMulticastPkts ifOutBroadcastPkts ifHCInOctets ifHCInUcastPkts ifHCInMulticastPkts ifHCInBroadcastPkts ifHCOutOctets ifHCOutUcastPkts ifHCOutMulticastPkts ifHCOutBroadcastPkts ifLinkUpDownTrapEnable ifHighSpeed ifPromiscuousMode ifConnectorPresent ifAlias ifCounterDiscontinuityTime Index Value
mgmt         1089168700 364882 1766975 6838198 144600512 363307 121 293677             1
11         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554441
13         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554442
14         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554443
15         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554444
16         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554445
12         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554446
17         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554447
18         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554448
19         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554449
20         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554450
1         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554451
3         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554452
4         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554453
5         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554454
6         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554455
2         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554456
7         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554457
8         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554458
9         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554459
10         1089168700 364882 1766975 6838198 144600512 363307 121 293677             33554460

SNMP Trap Support in F5OS-A

You can enable SNMP traps for the F5OS-A layer. The F5OS-APPLIANCE-ALERT-NOTIF-MIB provides details about supported rSeries appliance SNMP traps. Below is the current full list of traps supported by F5OS-A:

SNMP Trap events that note a fault should also trigger an alert that can be viewed in the show alerts output in the CLI, WebUI, and API. Once the clear SNMP Trap is sent, it should clear the event from the show events output.

Alert OID
module-present .1.3.6.1.4.1.12276.1.1.1.66304
psu-fault .1.3.6.1.4.1.12276.1.1.1.66305
lcd-fault .1.3.6.1.4.1.12276.1.1.1.66306
module-communication-error .1.3.6.1.4.1.12276.1.1.1.66307
hardware-device-fault .1.3.6.1.4.1.12276.1.1.1.65536
firmware-fault .1.3.6.1.4.1.12276.1.1.1.65537
unknown-alarm .1.3.6.1.4.1.12276.1.1.1.65538
memory-fault .1.3.6.1.4.1.12276.1.1.1.65539
drive-fault .1.3.6.1.4.1.12276.1.1.1.65540
cpu-fault .1.3.6.1.4.1.12276.1.1.1.65541
pcie-fault .1.3.6.1.4.1.12276.1.1.1.65542
aom-fault .1.3.6.1.4.1.12276.1.1.1.65543
drive-capacity-fault .1.3.6.1.4.1.12276.1.1.1.65544
power-fault .1.3.6.1.4.1.12276.1.1.1.65545
thermal-fault .1.3.6.1.4.1.12276.1.1.1.65546
drive-thermal-throttle .1.3.6.1.4.1.12276.1.1.1.65547
blade-thermal-fault .1.3.6.1.4.1.12276.1.1.1.65548
blade-hardware-fault .1.3.6.1.4.1.12276.1.1.1.65549
firmware-update-status .1.3.6.1.4.1.12276.1.1.1.65550
drive-utilization .1.3.6.1.4.1.12276.1.1.1.65551
service-health .1.3.6.1.4.1.12276.1.1.1.65552
fipsError .1.3.6.1.4.1.12276.1.1.1.196608
core-dump .1.3.6.1.4.1.12276.1.1.1.327680
raid-event .1.3.6.1.4.1.12276.1.1.1.393216

Troubleshooting SNMP

There are SNMP logs within each appliance. SNMP information is captured in the snmp.log file located with the /log/system directory in the F5OS layer:

Note: The CLI and webUI abstract the full paths for logs so that they are easier to find. If using root access to the bash shell, then the full path to the system controller snmp logs is **/var/F5/system/log/snmp.log

To list the files in the log/system directory in the CLI use the file list path log/system command:

r5900-2# file list path log/system/
entries {
    name
audit.log
confd.log
devel.log
devel.log.1
lcd.log
lcd.log.1
lcd.log.2.gz
lcd.log.3.gz
lcd.log.4.gz
lcd.log.5.gz
logrotate.log
logrotate.log.1
logrotate.log.2.gz
platform.log
reprogram_chassis_network.log
rsyslogd_init.log
snmp.log
startup.log
startup.log.prev
trace/
vconsole_auth.log
vconsole_startup.log
velos.log
webui/
}
r5900-2#

SNMP information (requests/traps) is captured in the snmp.log file located with the log directory of each appliance. This is very useful for diagnosing issues with SNMP connectivity. The SNMP logs get rotated, aggregated, and zipped.

appliance-1# file tail -n 30 log/system/snmp.log
<INFO> 2-Apr-2022::17:10:52.656 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379603 10.255.0.144:6011 (TimeTicks sysUpTime=5013)(OBJECT IDENTIFIER snmpTrapOID=psu-fault)(OCTET STRING alertSource=psu-2)(INTEGER alertEffect=2)(INTEGER alertSeverity=8)(OCTET STRING alertTimeStamp=2022-04-02 17:10:52.654777039 UTC)(OCTET STRING alertDescription=Deasserted: PSU 2 output OK)
<INFO> 2-Apr-2022::17:10:54.057 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379604 10.255.0.144:6011 (TimeTicks sysUpTime=5153)(OBJECT IDENTIFIER snmpTrapOID=psu-fault)(OCTET STRING alertSource=psu-2)(INTEGER alertEffect=2)(INTEGER alertSeverity=8)(OCTET STRING alertTimeStamp=2022-04-02 17:10:54.056039741 UTC)(OCTET STRING alertDescription=Deasserted: PSU 2 input OK)
<INFO> 2-Apr-2022::17:10:58.057 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379605 10.255.0.144:6011 (TimeTicks sysUpTime=5553)(OBJECT IDENTIFIER snmpTrapOID=firmware-update-status)(OCTET STRING alertSource=appliance)(INTEGER alertEffect=2)(INTEGER alertSeverity=8)(OCTET STRING alertTimeStamp=2022-04-02 17:10:58.054795136 UTC)(OCTET STRING alertDescription=Firmware update completed for nso 0)
<INFO> 2-Apr-2022::17:10:58.106 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379606 10.255.0.144:6011 (TimeTicks sysUpTime=5558)(OBJECT IDENTIFIER snmpTrapOID=firmware-update-status)(OCTET STRING alertSource=appliance)(INTEGER alertEffect=2)(INTEGER alertSeverity=8)(OCTET STRING alertTimeStamp=2022-04-02 17:10:58.061700377 UTC)(OCTET STRING alertDescription=Firmware update is running for asw 0)
<INFO> 2-Apr-2022::17:11:12.639 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379607 10.255.0.144:6011 (TimeTicks sysUpTime=7012)(OBJECT IDENTIFIER snmpTrapOID=firmware-update-status)(OCTET STRING alertSource=appliance)(INTEGER alertEffect=2)(INTEGER alertSeverity=8)(OCTET STRING alertTimeStamp=2022-04-02 17:11:12.637515513 UTC)(OCTET STRING alertDescription=Firmware update completed for asw 0)
<INFO> 2-Apr-2022::17:11:18.931 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379608 10.255.0.144:6011 (TimeTicks sysUpTime=7641)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554442)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
<INFO> 2-Apr-2022::17:11:18.940 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379609 10.255.0.144:6011 (TimeTicks sysUpTime=7642)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554443)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
<INFO> 2-Apr-2022::17:11:18.949 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379610 10.255.0.144:6011 (TimeTicks sysUpTime=7643)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554444)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
<INFO> 2-Apr-2022::17:11:18.952 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379611 10.255.0.144:6011 (TimeTicks sysUpTime=7643)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554445)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
<INFO> 2-Apr-2022::17:11:26.107 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379612 10.255.0.144:6011 (TimeTicks sysUpTime=8358)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=1)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:12:11.111 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379613 10.255.0.144:6011 (TimeTicks sysUpTime=12859)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554442)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
<INFO> 2-Apr-2022::17:12:11.114 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379614 10.255.0.144:6011 (TimeTicks sysUpTime=12859)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554443)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
<INFO> 2-Apr-2022::17:12:11.116 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379615 10.255.0.144:6011 (TimeTicks sysUpTime=12859)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554444)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
<INFO> 2-Apr-2022::17:12:11.117 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379616 10.255.0.144:6011 (TimeTicks sysUpTime=12859)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554445)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
<INFO> 2-Apr-2022::17:12:32.813 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379617 10.255.0.144:6011 (TimeTicks sysUpTime=15029)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554442)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:12:44.644 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379618 10.255.0.144:6011 (TimeTicks sysUpTime=16212)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554442)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:13:08.822 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379619 10.255.0.144:6011 (TimeTicks sysUpTime=18630)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554443)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:13:10.676 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379620 10.255.0.144:6011 (TimeTicks sysUpTime=18815)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554443)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:13:20.832 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379621 10.255.0.144:6011 (TimeTicks sysUpTime=19831)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554444)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:13:36.847 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379622 10.255.0.144:6011 (TimeTicks sysUpTime=21432)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554451)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:13:39.694 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379623 10.255.0.144:6011 (TimeTicks sysUpTime=21717)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554451)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:13:44.867 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379624 10.255.0.144:6011 (TimeTicks sysUpTime=22234)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554445)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:13:57.724 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379625 10.255.0.144:6011 (TimeTicks sysUpTime=23520)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554444)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:13:58.891 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379626 10.255.0.144:6011 (TimeTicks sysUpTime=23637)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554456)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 2-Apr-2022::17:14:07.747 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379627 10.255.0.144:6011 (TimeTicks sysUpTime=24522)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554445)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 3-Apr-2022::03:36:20.153 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379628 10.255.0.144:6011 (TimeTicks sysUpTime=3757763)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554456)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
<INFO> 11-Apr-2022::09:22:48.457 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379629 10.255.0.144:6011 (TimeTicks sysUpTime=74956593)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554456)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 12-Apr-2022::14:55:59.513 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379630 10.255.0.144:6011 (TimeTicks sysUpTime=85595699)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554456)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
<INFO> 12-Apr-2022::16:18:01.054 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379631 10.255.0.144:6011 (TimeTicks sysUpTime=86087853)(OBJECT IDENTIFIER snmpTrapOID=linkUp)(INTEGER ifIndex.0.=33554456)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=1)
<INFO> 12-Apr-2022::16:18:02.471 appliance-1 confd[104]: snmp snmpv2-trap reqid=1799379632 10.255.0.144:6011 (TimeTicks sysUpTime=86087995)(OBJECT IDENTIFIER snmpTrapOID=linkDown)(INTEGER ifIndex.0.=33554456)(INTEGER ifAdminStatus.0.=1)(INTEGER ifOperStatus.0.=2)
appliance-1#