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
Don’t forget to start SNMPd by clicking on the start icon

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:

http://www.exceliance.fr/download/aloha/mibs/

Required third party MIBs are a also available from this URL

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.

this ID must be unique for frontend, backend and listen Server IDs must be unique in a backend or in a 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
These are only a sample of available information.

Statuses

DescriptionTypeStringNumeric
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

DescriptionTypeStringNumeric
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