Linux 下 net-snmp 安装流程
亿通 EOC_SNMP 研发组 制作
1.下载
建议下载地址 http://www.net-snmp.com/download.html , 这是此开源软件的官方网址。其中
有 net-snmp 的各种版本提供下载,最新的至 net-snmp-5.5-tar-gz 。出于资料丰富的原因这里我们选择
5.3.2 版本。(注:5.5 与 5.3 版本在 snmpd.conf 文件的配置有所不同)
2.安装
1.解压缩
在终端下键入 sudo su 进入 root 模式,所有操作必须在此模式下。
cd 到安装包的位置,然后 tar -xvf net-snmp-5.3.2.tar.gz。
2.配置 configure 文件
在终端下 cd net-snmp-5.3.2 ,即进入解压缩包中的源文件。
然后./configure --prefix=/usr/local/net-snmp --enable-mfd-rewrites --with-
default-snmp-version=“2” --with-logfile=”var/log/snmpd.log” --with-persistent-
directory=”var/net-snmp”。
各配置的意义:
prefix net-snmp 的预安装路径
enable-mfd-rewrites 允许用新的 MFD 重写 mib 文件
with-default-snmp-version 设置默认的版本号,现为 2
with-logfile 日志文件的存放路径
with-persistent-directory 数据存储目录
3.运行上述命令回反馈如下信息:
4.编译安装
在终端下键入 make && make install ,将完成最后的最后的安装。
3.文件的配置
我们发现仅仅完成上述的安装,仍然无法正常使用 net-snmp,这里需要修改各种配置文件,以使系统可以
识别此软件,寻到路径。
在 net-snmp 中有三个比较重要的配置文件,分别是:
snmpd.conf 配置代理和管理端通信时的参数
snmptraps.conf 配置陷阱文件,此功能稍后实现
snmp.conf 配置与 mib 库相关的文件
目前我们主要修改 snmpd.conf 与 snmp.conf。
1.COPY
将源文件中的 EXAMPLE.conf (即当前目录) copy 到/usr/local/net-snmp/share/snmp 下,
并命名为 snmpd.conf。
终端的操作如下: cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
2.配置 snmpd.conf
在终端键入 gedit /usr/local/net-snmp/share/snmp/snmpd.conf
原内容为(#为注释符):
修改为:
其中 sec.name 为 安全体名称 即为看是否为同一组
source 为定义发出请求的来源,这是 net-snmp 自定义的 IP 控制方法,实际上就是准许 IP 为
哪些的终端连接本机。Localhost 默认为本机,192.168.1.0/24 与 192.168.10.0/24 指这两个网段
的所有主机均能连接本机,同时也能修改为任意 IP 地址。
commutiy 即为共同体的意思,也指通信的密码,这里统一为 public。
4.系统设置
1.net-snmp 自启动设置
这里设置的目的是 LINUX 启动时自动启用 snmpd 服务
在终端下键入 gedit /etc/rc.local , 然后在文件的末尾加上如下所示的代码:
/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf
2.环境变量设置
这里设置的目的是 能让系统能自动寻找 net-snmp 的路径
在终端下键入 gedit /etc/profile ,然后在文件的开头加上如下所示的代码:
PATH=/usr/lcoal/net-snmp/bin:/usr/local/net-snmp/sbin:$PATH
5.本机测试
1.localhost 测试
在终端下键入 snmpwalk -v 2c -c public localhost system.
若如下图所示.
那么恭喜你第一步测试通过!
2.Ip 地址测试
这里测试系统是否能识别 IP 地址
在终端下键入 snmpwalk -v 2c -c public 192.168.1.187 system
这里的 IP 地址可是是上述添加的网段中的 任意 IP,即是检测此网段的主机是否能访问本地机。如显示结果
如上图所示
则第二步测试通过!Net-snmp 基本安装完毕。
6.net-snmp v3 版本测试
V3 版本加入了安全机制,为了后续工作的完善,这里先行调试 。
首先命令行键入 Pkill snmp,即为关闭已有进程。
然后键入 net-snmp-config --create-snmpv3-user -a PASSWORD MYUSERNAME
注意上面一句,-a 后面跟的是是密码,而用户名跟在最后面。
然后开启进程 键入 snmpd 即可。
下面可以展开测试 用 snmpwalk 语句,这里注意下属语句的描述:
-a 表示加密方式,-A 是密码,跟创建 user 时正好相反 ,很多文档都搞错了,所以当时花费了很长时间
snmpwalk -v3 -u myname -l auth -a MD5 -A mypass 127.0.0.1 if
EXAMPLE:
就目前调试情况看,返回时有两种结果:
1.若如下所示
“ Timeout usually means UDP 161 is blocked or they can’t ping each other ”
这里提示 UDP161 端口被阻塞,具体原因不明,但可以证明测试不通过。
2.若如下所示
那么,恭喜你测试通过!!!
3.这里列举几个常见的错误测试语句
1)错误输入:
snmpget –v 3 –u chenwei –l authNoPriv –a MD5 –A “19870106” localhost sysUpTime.0
错误输出:
No community name specified.
2)错误输入:
snmpwalk -v 3 -a md5 -A 19870106 -x des -X 19870106 -u weiwei 192.168.1.204
错误输出:
snmpwalk: Unknown user name
3)错误输入:
root@yt-desktop:~# snmpwalk -u weiwei -l authPriv - a MD5 - A 19870106 - x DES - X
19870106 192.168.1.204 sysUpTime.0
错误输出:
No community name specified.
安装过程不胜繁琐,调试之处错误多多,
实际操作中会出现各种不同情况,
欢迎大家批评指正!
————SNMP 小组