net-snmp的安装配置和移植应用(1)
一、SNMP
简单网络管理协议,作为一种短期的网络管理解决方案,用于管理网络设备。所有支持SNMP协议的设备都提供一个SNMP统一的界面
所以作为网络设备,支持SNMP协议是必要的。
二、SNMP模型
一套完整的的SNMP系统包含三个部分
- 管理信息库(MIB)
- SNMP设备(Agent)
- 网管系统(NMS)
三、SNMP的实现
根据SNMP的模型,我用主机Ubuntu系统和开发板实现一套SNMP系统
主机Ubuntu系统作为NMS、开发板作为Agent设备,开发板上维护自己的MIB
这样就有了两个主要的任务: Ubuntu上安装snmp服务、开发板移植snmp服务
四、主机Ubuntu安装SNMP服务
在Ubuntu上安装SNMP服务有两种方式
- 用apt-get install snmp snmpd 命令安装
- 下载源码http://www.net-snmp.org/download.html、对源码进行配置安装
在安装的打印信息还能看出来一些东西、比如安装的SNMP版本号是5.4.2.1
而现在官网最先版为5.7.3版本
当然版本问题并不是那么重要
安装成功后、snmpget --version查看SNMP
(2)SNMP的配置文件
http://www.net-snmp.org/docs/man/snmpd.conf.html(此为官方配置文档,怀疑这为什么是“简单”网络管理协议,其实并不简单)
不过还好的是源码中会给一个EXAMPLE.conf,就是一个conf的样板。我们可以根据这个样板改改就可以了。
[email protected]:~/workspace/net-snmp/net-snmp-5.4.4$ sudo cp EXAMPLE.conf /etc/snmp/snmpd.conf
[email protected]:~$ sudo vim /etc/snmp/snmpd.conf
对SNMP的配置文件进行编辑。
1>
把监控IP更为本机IP
2>
添加 access MyROSystem "" any noauth exact all none none
更改rocommunity public default -V systemonly为:rocommunity public default
3>
去掉#trap2sink localhost public
#informsink localhost public 的#号
(3)验证snmp服务
重新启动snmpd
sudo /etc/init.d/snmpd restart
snmpwalk -v 2c -c public 192.168.1.148获取主机上维护的MIB数据
由于数据太大,terminel竟然无法完全显示
snmpwalk -v 2c -c public 192.168.1.148 > snmpMIB.txt 重定向到文件中查看
这样等于是主机Ubuntu自己既做agent又做NMS、通过自己查询自己SNMP服务维护的MIB信息
五、开发板移植SNMP服务
见下篇博客