快下班了,我故意掐着表,没想到诡异现象再次出现。

倒计时60秒,刹那间办公室里所有人忽然疯狂地工作起来,明明一秒钟之前还有说有笑、有打有闹。

倒计时30秒,老板出现了……


“你……来一下!”

我正诧异着这时间咋就拿捏得这么准,冷不丁这背后传来的喊声差点让我当场跪了。

一回头,只见老板的背影正渐渐远去。

我左看看、右瞧瞧,在场所有人好像都在忙着自己的重要工作。

我指了指自己的鼻子,脑袋嗡嗡作响,赶紧扔下背包,直奔老板办公室……


“老板,您找我有……有什么吩咐?”我一路小跑到门口,差点没刹住。

老板背对着我正欣赏着墙上书有硕大标语的锦旗,上面八个大金字“加班加点,勇于奉献”,让屋子里充满了光。

“你来几年了?”

“回您的话,我也不知道来这儿几年了。呃,只记得在食堂饱饱吃了七次鸡腿饭。”

“嗯……七年了,你也该拿出点真本事了!”老板一边用手巾摩擦着聪明绝顶,一边意味深长的感叹道。


老板转过身来,瞅我有点蒙逼,连忙打开电脑:“最近网络设备总有些不稳定,客户对此也有过抱怨。现在我希望能实时监测这些设备的运行情况。”

“啊,最起码我想要知道,每个无线AP上实时连接有多少客户端,以及整个公司无线连接客户端的总数量。”

“这样,你想个办法,先简单点吧,把这些数量变化转换成实时动态图表,这样看着也直观方便。”

“还有,最近已经花了不少的钱了,也没什么预算,最好不要花什么钱!”

老板每说一句,都是对我小心脏的一次猛击。


看我张着个大嘴眼神迷离,老板一皱眉,厉声说道:“去……帮我找支笔来!”

“啊?什……什么笔?”

“毛笔!马良牌的!”

“啊?这……这神笔马良让我上哪儿找去啊,您说笑了,再说您要那玩意干吗?”

“给我找来,我好给你画饼啊!我可听说了,你小子背地里是不是天天吵吵着要加工资?”

老板一瞪那对小圆眼,嘿,我可算看清楚了,里面还有眼珠子呢!

我只得皮笑肉不笑的咧了咧嘴,没敢接话茬。


“行了!甭废话,这次给你小子这个任务,做好了甭说加工资,给你升职都可以考虑!”

好么,我心说话,这不就是在给我画饼嘛,当我三岁大学刚毕业啊!

话都说到这儿了,我只能假装应承,被迫接下这一大坑任务。


公司使用的是 WLC9800 无线控制器,而设备监控软件使用的是常见的 Zabbix ,版本 6.x

这样的话,无非就是将这两者结合起来,实现老板所说的效果呗!

当我真地去完成这个任务时才发现,这哪是什么大坑,这特么就是个不见底的深渊啊!


话说这个 WLC9800 据说是新款,有着各种先进功能,并且管理设置也与以往的网络控制器有很大的区别。

比如将各种配置变成了各种 Tag ,并与之相配的还有各种策略。

总之原来挺简单的配置给搞得复杂了,有点旧瓶装新酒的嫌疑,反正好一通折腾之后才勉强上线。


可是等上线一切OK后才发现,这丫居然没有支持客户端数量和加入的AP数量的 OID

解释一下哈,这个 OID 就是 SNMP 监控用的参数标识符,比如我想监测设备是否在线、开机多久等等,它们都有一个特定的数字串,类似于这样 1.3.6.1

怎么会不支持呢?

官方堂而皇之地贴出声明,说是目前有 BUG ,就是不支持。

https://www.cisco.com/c/zh_cn/support/docs/wireless/catalyst-9800-series-wireless-controllers/217460-monitor-catalyst-9800-wlc-via-snmp-with.html#anc17


嘿,什么特么破玩意,以前都支持,现在新的反而不支持了,这很难吗?

网上一搜,好么,还真有不少人有这个需求,可愣是没有好的解决办法。

发牢骚是没有用的,得,找找还有没有其他办法吧!

后来摸了半天,寻思着这个控制器本身应该是有这方面的数据的。


于是我看到了这个,当前 AP5G 信号上连接了 16 个客户端。


有门哈,那其他的 AP 我怎么看呢,难道要一个一个点开吗?

很明显,这样做不行,不过至少控制器是肯定有相应统计数据的。

于是乎我就去查了一下获取相关数据的命令,费尽千辛万苦结果还真让我找着了。


通过 SSH (当然 Telnet 也行)登录获取数据信息的命令。

WLC9800> show ap wlan summary
 

多啰嗦一句,这条命令可能和其他旧款控制器有所出入,有的命令是写成 show client 这样的。

接着我就看到了命令输出如下面这样一堆数据。


好家伙,够乱的,不过好像有点规律,似乎是排版问题,有点费眼神哈!

好了,多少能看出点名堂了吧?

比如左边圈出来的是 2.4G/5G 信号,右边圈出来的就是当前分别连接的客户端数量了。

看懂了就好办了,接下来就是对这些信息如何加工提取的问题了。


这么乱的数据,怎么加工提取呢?

哎,我们把它放一放,先来添加监控项,后面会具体说。

什么监控项呢?

比如某个时刻一共有几个 AP 在线,一共有多少客户端连在上面,等等。

我们先来整个简单的,就是某个 AP 上连有多少个客户端。


登录到监控软件 Zabbix ,在左侧菜单中找到 数据采集 > 主机 ,然后在右侧找到控制器,点击相应的监控项。


点击界面右上角的 创建监控项


在所需填写的栏目内写上相应的参数信息。

  • 名称:起个好听又好看的名字
  • 类型:SSH 客户端
  • 键值:ssh.run[<unique short description>,<ip>,<port>,<encoding>,<ssh options>]
  • 主机接口:无
  • 认证方法:密码
  • 用户名称:登录 SSH 用户名
  • 密码:登录 SSH 密码
  • 已执行的脚本:show ap wlan summary


其中这个键值怎么写呢?

语法格式如下:

ssh.run[<unique short description>,<ip>,<port>,<encoding>,<ssh options>]
 


可以简单地写成这样:

ssh.run[AP Client Count,192.168.123.123,22]
 


其中描述 <unique short description> 是一段文字,可以随便写,但不能与其他已有监控项的描述相同。

比如我给写的是:AP Client Count

然后就是 IP 地址,外加端口号,默认 22 其实可以不写。


好,这是监控项参数的填写方法,很简单。

接下来主要重点是从输出命令结果中提取对我们有用的数据,因此我们需要添加预定步骤。

这个所谓的预定步骤,就是用来进一步加工获取信息的。

比如本例中的 show ap wlan summary 命令,出来一大堆内容,可我只想要某个 AP 当前连接的客户端数,很显然我是要去筛选这些数据的。

因此我们就回到了前面说的那个问题,怎么筛选数据?


我们先在监控项设定界面中点击 预处理 ,然后添加一项。


Zabbix 默认提供了不少预定步骤方法,不过对于这么一堆杂乱无章的内容,简单预设的步骤恐难胜任,因此还是需要用到编程手段。

Zabbix 可以用 JavaScript 作为筛选数据的编程工具。


在选定预定步骤的名称为 JavaScript 后,我们需要在后面的 参数 部分中写上代码。


代码就直接不展示了(写得比较丑),文末有下载,我说说实现的主要原理。

首先,将 show ap wlan summary 命令输出的内容分为标题和数据两大部分,我们只取数据部分。

其次,定位根据 AP 名称、SSID 以及物理信号分类( 2.4G/5G )等过滤筛选出指定 AP 所连接的客户端数量。

这里多说一句,如果你想计算所有的 AP 一共连了多少客户端,那就是将前面筛选后所有数字相加即可得出总和。


最后写好了代码肯定是要测试一下的,要不怎么知道它转不转得起来呢?

好,点击右侧的 测试


在打开的界面中,先要勾选 从主机获取值 ,要是不这么做,那么就没有测试用的数据,结果自然就会失败。

接着直接点击 获取值并进行测试 等待测试结果就行了。


我这边得到的测试结果是数字 2 ,表示当前指定的 AP 上连接有两个客户端。


如果出错了,那么就根据提示好好看看代码哪里写错了吧!


最终效果,显示当前连接的 AP 数量,以及 2.4G5G 各自连接的客户端总数量。


还有每个 AP 当前连接的客户端数量。


Zabbix监控WLC9800脚本示例代码

  • ClientCountAllAP-2.4G.txt - 连接到所有 AP2.4G 的客户端数量
  • ClientCountAllAP-5G.txt - 连接到所有 AP5G 的客户端数量
  • ClientCountPerAP01-2.4G.txt - 连接到 AP012.4G 的客户端数量
  • ClientCountPerAP01-5G.txt - 连接到 AP015G 的客户端数量

下载链接:https://pan.baidu.com/s/1S71DPi8FBisfC5mp0tXR7g

提取码:

输入阅读密码,解锁隐藏内容...



★扫码关注公众号, 发送【001038】获取阅读密码


至于其他效果,只要能有效筛选出你想要的数据,那么理论上想要什么效果就都能实现。

不过我想提醒一下小伙伴们,不可过度使用这类方法,因为可能会由于频繁访问设备而导致设备卡顿甚至死机,请务必调节好访问超时等参数。


最后我费了九牛二虎之力,总算把公司里所有的 AP 数据都给筛选了一遍,又都做了实时动态图表效果。

我满心欢喜,心想着这任务完成得嘎嘎漂亮,老板一高兴指定给我不是升职就是加薪!

正当我向老板汇报,说得吐沫横飞的时候,人力资源部的赖经理敲门进来,手里还拿着一份文件。

赖经理瞟了我一眼,动作变得有些犹豫。

老板示意他过会儿开会,将文件先放在一旁桌案上,微笑着让我继续。

趁着老板喝茶的功夫,我凑近用余光仔细这么一瞥,那文件封面标题写着:《关于公司裁员计划方案书》……


将技术融入生活,打造有趣之故事

网管小贾 / sysadm.cc

暂无评论

登录并提交评论

© 2020-present 网管小贾 | 微信公众号 @网管小贾
许可协议:CC-BY-NC 4.0 | 转载文章请注明作者出处及相关链接