OpenWRT使用SNMP监测网络状态

最近在写毕业论文,需要监测路由器的网络状态,路由器是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地址

正常的话会输出以下信息:

OpenWRT使用SNMP监测网络状态_第1张图片

想要对路由器的其它信息进行监测也是非常方便的,可以通过配置/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的状态信息了:

OpenWRT使用SNMP监测网络状态_第2张图片

如果有没说清楚的地方或者有什么问题,欢迎留言。

你可能感兴趣的:(OpenWRT使用SNMP监测网络状态)