最近在写毕业论文,需要监测路由器的网络状态,路由器是TP-Link TL1043ND v2,操作系统版本是OpenWRT 15.05,本来打算在路由器和监测机上使用Socket通信来交互信息的,写着写着发现太麻烦了,因为路由器有许多个,就需要在监测机上要实现多线程之类的东西,后来发现OpenWRT上已经有编译好的SNMP包了,于是就直接用它了,然后通过配置snmpd.config文件来扩展,调用iw命令就可以很方便地进行网络监测了。
路由器安装snmp:
opkg update
opkg install snmpd
安装完后不需要配置就可以直接使用了,可以在在监测机上使用snmpwalk来测试一下是否安装成功:
snmpwalk -c public -v 1 192.168.1.111 #你的IP地址
正常的话会输出以下信息:
想要对路由器的其它信息进行监测也是非常方便的,可以通过配置/etc/config/snmpd
实现,例如我需要监测AP中wlan0下连接和终端信息,首先写个命令脚本:
#!/bin/sh
iw dev wlan0 station dump
保存脚本,记住路径,一会在snmpd配置的时候需要用到,我保存在/yaphone文件夹下。
然后配置snmpd文件vi /etc/config/snmpd
:
config exec
option name iw #脚本名
option prog /yaphone/iw.sh #脚本路径
option miboid 1.2.3.6 #MIBOID,具体参考SNMP协议
配置完成后保存。
重启snmpd服务/etc/init.d/snmpd restart
.
然后在监测机上使用命令:snmpwalk -c public -v 1 192.168.1.111 1.2.3.6 #这里使用你自己的IP和刚才设置的MIBOID
就可以看到路由器wlan0的状态信息了:
如果有没说清楚的地方或者有什么问题,欢迎留言。