ALOHA monitoring through SNMP
Current app note describes how to configure the ALOHA Load-Balancer for SNMP monitoring
Objective
Current app note describes how to configure the ALOHA Load-Balancer for SNMP monitoring.
Complexity
2
Versions
v4.2 and later
ALOHA load balancer
ALOHA monitoring through SNMP
Synopsis
A load-balancer is one of the key point in an architecture. It can be used to gather information about health of the whole platform.
The ALOHA Load-Balancer can provide many information about server health, farm capacity, sessions and errors, etc…
Configuration
Enabling SNMPd in the ALOHA
During the wizard
When running the wizard, you configure the SNMP daemon at the step #7, also called Management.
In order to enable the SNMP daemon, just:
- Check the box Enable SNMP
- Choose the Address and port to listen on for SNMP requests
- Specify which network is allowed to request ALOHA’s SNMP daemon
- Type a Community
On a running ALOHA
If your ALOHA Load-Balancer is already setup and running with production traffic, you don’t want to run the wizard again. To configure SNMP daemon in that case, follow the instruction below:
- In the ALOHA GUI, go in the Services tab
- Click on the Edit icon from the snmpd line:
- Comment the line no autostart to allow SNMPd to start with
- Configure snmpd as described in the next chapter
SNMPd configuration
You can configure the following parameters:
- network <network> : authorized network ( default: 0.0.0.0/0 )
- community <text> : used community ( default: public )
- listen <ip address> : listening ip address ( default: 0.0.0.0 )
- port <integer> : listening port ( default: 161 )
ALOHA MIB
Getting the MIBs
ALOHA’s MIB is available on Exceliance website, at the URL:
https://www.haproxy.com/download/aloha/mibs/
MIB installation (Linux)
Download all the required MIBs, unzip them and copy them in a directory on your Linux server.
In this example, we use /usr/src/mibs.
Edit the file /etc/snmp/snmp.conf, and add the path to the mibdirs directive:
mibdirs /usr/src/mibs:/usr/src/mibs/STD-MIBs printNumericOids no mibs ALL
MIB browsing
OS information
To get information related to the Operating System, just run snmpwalk with the community and the IP address of your ALOHA:
$ snmpwalk -v2c -c public 192.168.10.3 [...] SNMPv2-MIB::sysDescr.0 = STRING: Linux ALOHA2 2.6.27smp-alb50.1-albva #2 SMP Tue Feb 14 11:35:00 CET 2012 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-TC::linux DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (124591) 0:20:45.91 SNMPv2-MIB::sysContact.0 = STRING: emeric@exosec.local SNMPv2-MIB::sysName.0 = STRING: ALOHA2 SNMPv2-MIB::sysLocation.0 = STRING: Unknown SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORID.1 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.2 = OID: TCP-MIB::tcpMIB SNMPv2-MIB::sysORID.3 = OID: IP-MIB::ip
Load-Balancing information
To get information related to Load-Balancing in the ALOHA, just run snmpwalk with the community and the IP address of your ALOHA, and ask for Exceliance’s OID branch: .1.3.6.1.4.1.23263
$ snmpwalk -v2c -c public 192.168.10.3 .1.3.6.1.4.1.23263 | head EXCELIANCE-MIB::alProductName = STRING: "aloha " EXCELIANCE-MIB::alProductModel = STRING: "albva" EXCELIANCE-MIB::alProductVersion = STRING: "5.0" EXCELIANCE-MIB::alProductSubVersion = STRING: "5.0.3" EXCELIANCE-MIB::alProductBuildVersion = STRING: "5007" EXCELIANCE-MIB::alProductBuildDate = STRING: "2012-06-11 18:01:10" EXCELIANCE-MIB::alProductURL = STRING: "http://www.exceliance.fr/download/aloha/5.0" EXCELIANCE-MIB::alServiceID.1 = INTEGER: 1 EXCELIANCE-MIB::alServiceID.2 = INTEGER: 2 EXCELIANCE-MIB::alServiceID.3 = INTEGER: 3
HAProxy configuration update
In the ALOHA Load-Balancer, each HAProxy’s frontend, backend, listen or server is an object. It owns an ID in HAProxy which is use by SNMPd has the OID. By Default, HAProxy affects IDs in the order the each object is read in the configuration, which means the ID, hence the OID, could change at any moment.
Fortunately, the ALOHA allows you to fix the IDs in HAProxy, so the OID in SNMPd will never change, making third party monitoring tools job easier.
To fix an ID in HAProxy, just add the directive id to each server, frontend, backend and listen.
HAProxy Configuration example:
frontend ft_redis id 1 bind 192.168.10.2:6379 mode tcp default_backend bk_redis backend bk_redis id 101 mode tcp option tcplog server redis1 192.168.10.11:6379 id 1 check maxconn 125 server redis2 192.168.10.12:6379 id 2 check maxconn 125 backup frontend ft_web id 2 bind 192.168.10.2:80 mode http default_backend bk_web backend bk_web id 102 mode http server web1 192.168.10.11:80 id 1 check maxconn 125 server web2 192.168.10.12:80 id 2 check maxconn 125
From the example above, the ALOHA will provide the following OIDs:
- redis related OIDs
- Frontend name: .1.3.6.1.4.1.23263.4.2.1.3.2.1.3.1.1
- Frontend status: .1.3.6.1.4.1.23263.4.2.1.3.2.1.13.1.1
- Backend name: .1.3.6.1.4.1.23263.4.2.1.3.3.1.3.1.101
- Backend status: .1.3.6.1.4.1.23263.4.2.1.3.3.1.20.1.101
- Server redis1 name: .1.3.6.1.4.1.23263.4.2.1.3.4.1.4.1.101.1
- Server redis2 name: .1.3.6.1.4.1.23263.4.2.1.3.4.1.4.1.101.2
- web related OIDs
- Frontend name: .1.3.6.1.4.1.23263.4.2.1.3.2.1.3.1.2
- Frontend status: .1.3.6.1.4.1.23263.4.2.1.3.2.1.13.1.2
- Backend name: .1.3.6.1.4.1.23263.4.2.1.3.3.1.3.1.102
- Backend status: .1.3.6.1.4.1.23263.4.2.1.3.3.1.20.1.102
- Server web1 name: .1.3.6.1.4.1.23263.4.2.1.3.4.1.4.1.102.1
- Server web2 name: .1.3.6.1.4.1.23263.4.2.1.3.4.1.4.1.102.2
Important OIDs to monitor
In the string and numeric OIDs below, replace:
- F by the Frontend ID in HAProxy configuration
- B by the Backend ID in HAProxy configuration
- S by the server ID in HAProxy configuration
Statuses
Description | Type | String | Numeric |
---|---|---|---|
Frontend status | String | EXCELIANCE-MIB::alFrontendStatus.1.F | .1.3.6.1.4.1.23263.4.2.1.3.2.1.13.1.F |
Backend status | String | EXCELIANCE-MIB::alBackendStatus.1.B | .1.3.6.1.4.1.23263.4.2.1.3.3.1.20.1.B |
Server status | String | EXCELIANCE-MIB::alServerStatus.1.B.S | 1.3.6.1.4.1.23263.4.2.1.3.4.1.19.1.B.S |
Performance
Description | Type | String | Numeric |
---|---|---|---|
Frontend total sessions | Counter | EXCELIANCE-MIB::alFrontendSessionTotal.1.F | .1.3.6.1.4.1.23263.4.2.1.3.2.1.7.1.F |
Backend total sessions | Counter | EXCELIANCE-MIB::alBackendSessionTotal.1.B | .1.3.6.1.4.1.23263.4.2.1.3.3.1.10.1.B |
Backend current queued sessions | Gauge | EXCELIANCE-MIB::alBackendQueueCur.1.B | 1.3.6.1.4.1.23263.4.2.1.3.3.1.4.1.B |
Server total sessions | Counter | EXCELIANCE-MIB::alServerSessionTotal.1.B.S | .1.3.6.1.4.1.23263.4.2.1.3.4.1.11.1.B.S |
Server current queued sessions | Gauge | EXCELIANCE-MIB::alServerQueueCur.1.B.S | .1.3.6.1.4.1.23263.4.2.1.3.4.1.5.1.B.S |
Server response errors | Counter | EXCELIANCE-MIB::alServerErrorResponse.1.B.S | .1.3.6.1.4.1.23263.4.2.1.3.4.1.16.1.B.S |