How to monitor load balancers A10 TH3040s

This support forum board is for support questions relating to Nagios XI, our flagship commercial network monitoring solution.
echonoc
Posts: 29
Joined: Wed Dec 02, 2020 5:07 pm

Re: How to monitor load balancers A10 TH3040s

Post by echonoc »

Hi @pbroste ,

How can I do that? Sorry I am not an expert using nagiosxi. Could you please guide me step by step?

Thank you
User avatar
pbroste
Posts: 1288
Joined: Tue Jun 01, 2021 1:27 pm

Re: How to monitor load balancers A10 TH3040s

Post by pbroste »

Hello @echonoc

Thanks for following up on the A10 website states that there is a Thunder device GUI that provides System Administration for device setup for SNMP and Mib/Oid Configuration.

Please check into this and follow up with further questions,
Perry
echonoc
Posts: 29
Joined: Wed Dec 02, 2020 5:07 pm

Re: How to monitor load balancers A10 TH3040s

Post by echonoc »

Hi @pbroste

Thank you for all your help.

Do you have the link? I cannot find the MIB configuration in the gui.
User avatar
pbroste
Posts: 1288
Joined: Tue Jun 01, 2021 1:27 pm

Re: How to monitor load balancers A10 TH3040s

Post by pbroste »

Hello @echonoc

To follow up it appears that out of the box it supports some of the 'net-snmp-mibs'.

We can verify that by using 'snmpwalk' through it:

Code: Select all

snmpwalk -v1 -On -c <yourcommunitystring> <yourhostaddresshere>
You then provided the 'oid_list.txt'

Then to the following Mibs that we found:
  • snmptranslate -Tz -m A10-AX-MIB
  • snmptranslate -Tz -m A10-COMMON-MIB
  • snmptranslate -Tz -m A10-AX-NOTIFICATION-MIB
Example:

Code: Select all

[root@xid mibs]# snmptranslate -Tz -m A10-AX-MIB | grep -i "CPU\|MEM"
"axSysMemory"                   "1.3.6.1.4.1.22610.2.4.1.2"
"axSysMemoryTotal"                      "1.3.6.1.4.1.22610.2.4.1.2.1"
"axSysMemoryUsage"                      "1.3.6.1.4.1.22610.2.4.1.2.2"
"axSysCpu"                      "1.3.6.1.4.1.22610.2.4.1.3"
"axSysCpuNumber"                        "1.3.6.1.4.1.22610.2.4.1.3.1"
"axSysCpuTable"                 "1.3.6.1.4.1.22610.2.4.1.3.2"
"axSysCpuEntry"                 "1.3.6.1.4.1.22610.2.4.1.3.2.1"
"axSysCpuIndex"                 "1.3.6.1.4.1.22610.2.4.1.3.2.1.1"
"axSysCpuUsage"                 "1.3.6.1.4.1.22610.2.4.1.3.2.1.2"
"axSysCpuUsageValue"                    "1.3.6.1.4.1.22610.2.4.1.3.2.1.3"
"axSysAverageCpuUsage"                  "1.3.6.1.4.1.22610.2.4.1.3.3"
"axSysAverageControlCpuUsage"                   "1.3.6.1.4.1.22610.2.4.1.3.4"
"axSysAverageDataCpuUsage"                      "1.3.6.1.4.1.22610.2.4.1.3.5"
"axSysCpuUsageTable"                    "1.3.6.1.4.1.22610.2.4.1.3.6"
"axSysCpuUsageEntry"                    "1.3.6.1.4.1.22610.2.4.1.3.6.1"
"axSysCpuIndexInUsage"                  "1.3.6.1.4.1.22610.2.4.1.3.6.1.1"
"axSysCpuUsagePeriodIndex"                      "1.3.6.1.4.1.22610.2.4.1.3.6.1.2"
"axSysCpuUsageValueAtPeriod"                    "1.3.6.1.4.1.22610.2.4.1.3.6.1.3"
"axVlanCfgMemberTable"                  "1.3.6.1.4.1.22610.2.4.1.7.2.1.2"
"axVlanCfgMemberEntry"                  "1.3.6.1.4.1.22610.2.4.1.7.2.1.2.1"
"axVlanMemberVlanId"                    "1.3.6.1.4.1.22610.2.4.1.7.2.1.2.1.1"
"axVlanMemberIntfId"                    "1.3.6.1.4.1.22610.2.4.1.7.2.1.2.1.2"
"axVlanMemberTagged"                    "1.3.6.1.4.1.22610.2.4.1.7.2.1.2.1.3"
"axServiceGroupMember"                  "1.3.6.1.4.1.22610.2.4.3.3.3"
"axServiceGroupMemberTable"                     "1.3.6.1.4.1.22610.2.4.3.3.3.1"
"axServiceGroupMemberEntry"                     "1.3.6.1.4.1.22610.2.4.3.3.3.1.1"
"axServiceGroupNameInMember"                    "1.3.6.1.4.1.22610.2.4.3.3.3.1.1.1"
"axServiceGroupMemberAddrType"                  "1.3.6.1.4.1.22610.2.4.3.3.3.1.1.2"
"axServerNameInServiceGroupMember"                      "1.3.6.1.4.1.22610.2.4.3.3.3.1.1.3"
"axServerPortNumInServiceGroupMember"                   "1.3.6.1.4.1.22610.2.4.3.3.3.1.1.4"
"axServerPortPriorityInServiceGroupMember"                      "1.3.6.1.4.1.22610.2.4.3.3.3.1.1.5"
"axServerPortStatusInServiceGroupMember"                        "1.3.6.1.4.1.22610.2.4.3.3.3.1.1.6"
"axServiceGroupMemberStat"                      "1.3.6.1.4.1.22610.2.4.3.3.4"
"axServiceGroupMemberStatTable"                 "1.3.6.1.4.1.22610.2.4.3.3.4.1"
"axServiceGroupMemberStatEntry"                 "1.3.6.1.4.1.22610.2.4.3.3.4.1.1"
"axServiceGroupMemberStatName"                  "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.1"
"axServiceGroupMemberStatAddrType"                      "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.2"
"axServerNameInServiceGroupMemberStat"                  "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.3"
"axServerPortNumInServiceGroupMemberStat"                       "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.4"
"axServiceGroupMemberStatPktsIn"                        "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.5"
"axServiceGroupMemberStatBytesIn"                       "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.6"
"axServiceGroupMemberStatPktsOut"                       "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.7"
"axServiceGroupMemberStatBytesOut"                      "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.8"
"axServiceGroupMemberStatPersistConns"                  "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.9"
"axServiceGroupMemberStatTotConns"                      "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.10"
"axServiceGroupMemberStatCurConns"                      "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.11"
"axServerPortStatusInServiceGroupMemberStat"                    "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.12"
"axServiceGroupMemberStatTotalL7Reqs"                   "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.13"
"axServiceGroupMemberStatTotalCurrL7Reqs"                       "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.14"
"axServiceGroupMemberStatTotalSuccL7Reqs"                       "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.15"
"axServiceGroupMemberStatResponseTime"                  "1.3.6.1.4.1.22610.2.4.3.3.4.1.1.16"
"axConnReuseStatCpuIndex"                       "1.3.6.1.4.1.22610.2.4.3.5.7.1.1"
"axFastHttpProxyStatCpuIndex"                   "1.3.6.1.4.1.22610.2.4.3.6.18.1.1"
"axHttpProxyStatCpuIndex"                       "1.3.6.1.4.1.22610.2.4.3.7.18.1.1"
"axTcpProxyStatCpuIndex"                        "1.3.6.1.4.1.22610.2.4.3.8.10.1.1"
"axTcpProxyStatMemAlloc"                        "1.3.6.1.4.1.22610.2.4.3.8.10.1.14"
"axSslStatSSLMemUsage"                  "1.3.6.1.4.1.22610.2.4.3.9.5"
"axSslStatSSLNoHWContextMem"                    "1.3.6.1.4.1.22610.2.4.3.9.8"
"axNetStatCpuIndex"                     "1.3.6.1.4.1.22610.2.4.3.11.100.1.1"
"axMemoryUsageHigh"                     "1.3.6.1.4.1.22610.2.4.3.12.2.1.14"
"axSystemControlCpuHigh"                        "1.3.6.1.4.1.22610.2.4.3.12.2.1.18"
"axSystemDataCpuHigh"                   "1.3.6.1.4.1.22610.2.4.3.12.2.1.19"
"axSmtpProxyStatCpuIndex"                       "1.3.6.1.4.1.22610.2.4.3.13.19.1.1"
"axPersistentStatCpuIndex"                      "1.3.6.1.4.1.22610.2.4.3.15.11.1.1"
"axSwitchStatCpuIndex"                  "1.3.6.1.4.1.22610.2.4.3.16.31.1.1"
"axIpNatLsnTrafficTcpUserQuotasExceeded"                        "1.3.6.1.4.1.22610.2.4.3.18.4.1.4.12"
"axSessionGlobalStatNonTcpUdpIPSession"                 "1.3.6.1.4.1.22610.2.4.3.19.1.4"
Took your 'oid_list.txt' and ran it against the oids found in the Mibs provided
for d in `cat oid_list.txt | awk -F " = " '{print $1}' | sed 's/^.//'` ; do grep -E $d a10translatelist.txt; done
We see no oid's from your 'snmpwalk' that match up with the oid's in the 'snmptranslate'.

So a lot of snmp mib writers rely on the net-snmp that already do the heavy lifting, which we take advantage of and use the plugin listed below (to try it, I've seen it work against a wide-range of devices) or by using the Network Switch / Router Wizard. Or if those devices have specific OIDs for CPU memory they would have to use the SNMP Walk wizard with those OIDs.

Want to have you try run with this plugin:

Code: Select all

yum install perl-JSON
wget https://labs.consol.de/assets/downloads/nagios/check_nwc_health-10.0.0.1.tar.gz
tar zxf check_nwc_health-10.0.0.1.tar.gz
cd check_nwc_health-10.0.0.1
./configure
make all
make install
Then test it out against the device:
For SNMP v2c:

/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --community 'yourcommunity' --mode cpu-load
/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --community 'yourcommunity' --mode hardware-health
/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --community 'yourcommunity' --mode memory-usage
/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --community 'yourcommunity' --mode disk-usage
/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --community 'yourcommunity' --mode interface-usage
/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --community 'yourcommunity' --mode interface-errors

For SNMP v3:

/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --protocol 3 --username 'snmpv3user' --authprotocol sha --authpassword 'authPass' --privprotocol aes --privpassword 'privPass' --mode cpu-load
/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --protocol 3 --username 'snmpv3user' --authprotocol sha --authpassword 'authPass' --privprotocol aes --privpassword 'privPass' --mode hardware-health
/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --protocol 3 --username 'snmpv3user' --authprotocol sha --authpassword 'authPass' --privprotocol aes --privpassword 'privPass' --mode memory-usage
/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --protocol 3 --username 'snmpv3user' --authprotocol sha --authpassword 'authPass' --privprotocol aes --privpassword 'privPass' --mode disk-usage
/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --protocol 3 --username 'snmpv3user' --authprotocol sha --authpassword 'authPass' --privprotocol aes --privpassword 'privPass' --mode interface-usage
/usr/local/nagios/libexec/check_nwc_health --hostname X.X.X.X -t 60 --protocol 3 --username 'snmpv3user' --authprotocol sha --authpassword 'authPass' --privprotocol aes --privpassword 'privPass' --mode interface-errors
Let us know how that looks.

Thanks,
Perry
echonoc
Posts: 29
Joined: Wed Dec 02, 2020 5:07 pm

Re: How to monitor load balancers A10 TH3040s

Post by echonoc »

Hi @ pbroste
I could download the plugin but when I install perl_JSON I am getting this:
install perl-JSON.PNG
Not sure if thrre is another way to do this
You do not have the required permissions to view the files attached to this post.
User avatar
pbroste
Posts: 1288
Joined: Tue Jun 01, 2021 1:27 pm

Re: How to monitor load balancers A10 TH3040s

Post by pbroste »

Hello @echonoc

Appears that AppStream and Open Fusion repositories contain the perl-json package. You can add the Open Fusion repository if you wish.

Thanks,
Perry
echonoc
Posts: 29
Joined: Wed Dec 02, 2020 5:07 pm

Re: How to monitor load balancers A10 TH3040s

Post by echonoc »

Hi @pbroste

We could install the perl-JSON but when we run the command you provided me it goes to timeout:
check_nwc_health Danny.PNG
Do you know what can I do?

Thank you.
You do not have the required permissions to view the files attached to this post.
User avatar
pbroste
Posts: 1288
Joined: Tue Jun 01, 2021 1:27 pm

Re: How to monitor load balancers A10 TH3040s

Post by pbroste »

Hello @echonoc

Thanks for following up, appears that the 'check_nwc_health' check command is not able to connect to your host '192.168.200.24' or we are not receiving a reply.

What do you get when we add '--verbose' to the command:

Code: Select all

./check_nwc_health --hostname 192.168.200.24 -t 60 --community 'yourkeyhere' --mode memory-usage --verbose
or

Code: Select all

./check_nwc_health --hostname 192.168.200.24 -t 60 --community 'yourkeyhere' --mode memory-usage -vvv
Also a good suggestion to run a tcpdump to capture the pcap output results to see what is going on. Example:

Code: Select all

tcpdump -s 0 -w output.pcap

Thanks,
Perry
Locked