这周一直在忙公司的无线网络,和其他的技术人员一起安装WLC,AP,ISE,配置CA,交换机,HA等等。这个过程中出现了一些问题,比如之前的WLC没有配置agressive load balance,结果导致某些AP超负荷运转,一个AP连接了40个用户导致速度奇慢无比。为了预防再次出现类似问题,老板让我把监控AP连接的功能加入Nagios系统中。
简单的介绍一下公司的无线网络环境,我们使用的都是思科的设备。2台Wireless Controller(WLC)互相HA,WLC连接了约50个AP接入点,不同的SSID通过Cisco ISE进行证书和AD验证和授权。
经过测试,AP已经连在了WLC,因此不允许我直接对AP设备进行SNMP的查询。所有的SNMP查询都需要从WLC上获取。WLC的MIB可以从这里下载或者在思科官网查询。
http://www.oidview.com/mibs/14179/AIRESPACE-SWITCHING-MIB.html
http://www.oidview.com/mibs/14179/AIRESPACE-WIRELESS-MIB.html
对于我的要求而已,最重要的信息有2个,获取AP的OID以及他对应的客户端连接数目的OID
客户端的连接数目对应的OID如下所示
1.3.6.1.4.1.14179.2.2.13.1.4
例如,我在nagios服务器(CentOS 7)上执行snmpwalk,结果如下
snmpwalk -v 2c -O x -c public 10.2.1.17 1.3.6.1.4.1.14179.2.2.13.1.4 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.24.139.157.244.252.208.0 = INTEGER: 3 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.24.139.157.244.252.208.1 = INTEGER: 19 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.24.156.93.48.115.96.0 = INTEGER: 2 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.24.156.93.48.115.96.1 = INTEGER: 4 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.24.156.93.48.139.48.0 = INTEGER: 2 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.24.156.93.48.139.48.1 = INTEGER: 15 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.24.156.93.108.13.0.0 = INTEGER: 1 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.24.156.93.108.13.0.1 = INTEGER: 3 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.84.162.116.28.209.240.0 = INTEGER: 1 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.84.162.116.28.209.240.1 = INTEGER: 3 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.10.32.13.204.224.0 = INTEGER: 0 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.10.32.13.204.224.1 = INTEGER: 4 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.151.189.7.198.240.0 = INTEGER: 1 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.151.189.7.198.240.1 = INTEGER: 6 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.151.189.12.130.192.0 = INTEGER: 5 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.151.189.12.130.192.1 = INTEGER: 5 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.151.189.12.183.144.0 = INTEGER: 0 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.151.189.12.183.144.1 = INTEGER: 6 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.151.189.12.197.80.0 = INTEGER: 1 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.151.189.12.197.80.1 = INTEGER: 11 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.151.189.12.197.240.0 = INTEGER: 1 SNMPv2-SMI::enterprises.14179.2.2.13.1.4.88.151.189.12.197.240.1 = INTEGER: 7
中间那一大串从14179.2.2.13.1.4后面开始的就是代表AP的地址,注意有的AP出现了两个地址,分别是0和1结尾,这是因为AP可以在两个Radio下工作 802.11a/n/ac 和 802.11/b/g/n, 如果我们把一个AP的两个值相加,得到的就是总共连接的数目,这个数目和WLC图像界面下看见的是一样的。
知道基本原理了,okay,可以开始配置了。豆子的配置主要参考了这个脚本。可以下载之后,根据自己实际情况修改。脚本本身很简单,这里不赘述了。
https://exchange.icinga.org/inventory/Check-Plugins/Network/Cisco-AP-Client-number
测试是否工作,查询代号15的AP,显示AP名称和连接数目
[[email protected] libexec]# ./check_AP.pl 10.2.1.17 public 2c 15 10 15 OK: "SYDLMAP2-P1" - number of clients: 7 | Clients: 7;10;15;0;25
Nagios上添加一个command
define command{ command_name check_ap_clients command_line /usr/local/nagios/libexec/check_AP.pl 10.2.1.17 public 2c $ARG1$ 15 20 }
定义一个主机
define host{ use generic-ap ; Inherit default values from a template host_name SYDL3AP8 ; The name we‘re giving to this switch alias SYDL3AP8 ; A longer name associated with the switch address 10.2.1.166 ; IP address of the switch hostgroups ap ; Host groups this switch is associated with parents DDBSYD6509 }
定义一个服务
define service { use generic-service host SYDL3AP8 servicegroups network-services service_description ap client Information check_interval 5 check_command check_ap_clients! }
重启nagios服务,看看结果如何
成功!
参考资料:
http://awesomeadmin.blogspot.com.au/2009/11/monitoring-cisco-wireless-controller.html