Monitor Wireless Links with nagios part 1

How-To monitor wireless links with nagios.

Along with standard ping checks and CPU-usage , Signal-Strength, Noise Floor, and Connection Quality CCQ ? are good `health` indicators for wireless links. However, the warning and alarm limits for each link vary and should be set for each link by the ones who set and know the specifics of the link eg. there are 1km links that report -48/-48 dBm signal strength transmitting with ~0 dBm Power and 9km links in which we cannot do any better than -61/-61 dBm before we start using ridiculous amounts of Tx Power or above 1m dishes.

Let' s start with RouterOS based routers. I will try to use SNMP since Mikrotik added the CCQ and noise-floor to SNMP recently --the signal-strength has been in the RouterOS SNMP tree for a while.

note: I have been unable to pull noise floor and CCQ with SNMP for all working interfaces on routerbords.

To get the OIDs try:
interface wireless print oid
The Object Identifiers are named: strength, noise floor , and overall-ccq.

Signal Strength:

I will use the check_snmp nagios plugin and define a command for each interface I want to monitor. Here is a command definition for a link in which I `define` -40dBm - -59dBm signal strength as OK.
###check signal strength on interface 0
define command{
command_name check_signal_strength_on_if0
command_line /usr/lib/nagios/plugins/check_snmp -P 1 -C public -H $HOSTADDRESS$ -o .1.3.6.1.4.1.14988.1.1.1.2.1.3.0.12.66.97.197.219.2 -r .*[4-5]{1}.*
 }


and this is how I use the above command in a monitored service definition
define service{
        use                     generic-service
        host_name               router.014.ipduh.awmn
        service_description     SIGNAL-STRENGTH-geioa #SIGNAL-STRENGTH-WiNode_Name
        check_command           check_signal_strength_on_if0
}


Here is another command definition in which I `define` -40 dBm =< signal strength >= -69 dBm.
###check signal strength on interface 1
define command{
command_name check_signal_strength_on_if1
command_line /usr/lib/nagios/plugins/check_snmp -P 1 -C public -H $HOSTADDRESS$ -o .1.3.6.1.4.1.14988.1.1.1.2.1.3.0.11.107.54.85.223.6 -r .*[4-6]{1}.*
 }


Noise Floor:

I use the check_snmp plugin again and here is an example of a command definition by which noise floor above -100dBm is not OK.
###check noise floor on interface 2
define command{
        command_name check_noise_floor_on_if2
        command_line /usr/lib/nagios/plugins/check_snmp -P 1 -C public -H $HOSTADDRESS$ -o .1.3.6.1.4.1.14988.1.1.1.3.1.9.1 -r .*\-1{1}[0-9]{2}.*
}


I have been unable to get the noise floor with SNMP from all the devices and all the radio cards so maybe I will have to go back to using scripts that pull it off telnet or SSH sessions.

end of part 1



Monitor Wireless Links with Nagios - Part 1