以CentOS为例,在linux下开通snmp
1.如果有yum环境,yum安装snmp组件
yum install net-snmp*
2.如果没有,直接下载安装http://www.net-snmp.org/download.html
比如下载net-snmp-5.3.4.tar.gz
#tar xzvf net-snmp-5.3.4.tar.gz
#cd net-snmp-5.2
#./configure --with-perl-modules --prefix=/etc/snmp/ --enable-mfd-rewrites --with-default-snmp-version="2" --with-sys-contact="linguang,linguang661990@126.com" --with-sys-location="China" --with-logfile="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp"
参数其中含义如下:
with-perl-modules:这个是mib2c依赖的关键模块。
prefix:net-snmp将要安装的路径
enable-mfd-rewrites:允许用新的 MFD重写可用的 mid模块
with-default-snmp-version:默认的 SNMP版本
with-sys-contact:可以配置该设备的联系人
with-sys-location:该设备的位置
with-logfile:日志文件路径
with-persistent-directory:不变数据存储目录 )
#make
#make install
3.添加community
vi /etc/snmp/snmpd.conf
添加
#这一句可以指定监控服务器的IP地址
rocommunity public 192.168.12.1 (这里填你自己的IP地址)
#这一句表示可接受任何ip的访问
rwcommunity public
查看snmpd.conf文件内容,去掉注释掉的内容
cat snmpd.conf|grep -v ^#|grep -v ^$
4.启动snmpd
/usr/sbin/snmpd -C -c /etc/snmp/snmpd.conf
5.检测,查看161端口,有如下输出,则开通成功
[root@localhost snmp]# netstat -ln | grep 161
udp 0 0 0.0.0.0:161 0.0.0.0:*
6.检测
# 使用SNMP v1版本协议验证SNMP服务运行是否正常。
shell>snmpstatus -v 1 -c public 192.168.12.1
# 使用SNMP v2版本协议验证SNMP服务运行是否正常。
shell>snmpstatus -v 2c -c public 192.168.12.1
#使用SNMP v3版本协议验证SNMP服务运行是否正常。
shell>snmpstatus -v 3 -u mytestsnmpuser -a MD5 -A "mytestsnmpuser" -l authNoPriv 192.168.12.1
snmpwalk -v3 -c public -u mytestsnmpuser -a MD5 mytestsnmpuser 192.168.12.1 sysDescr
7.如果要开通snmp v3,则需要利用一个名叫net-snmp-config的命令工具,生成一个snmp v3的用户,命令格式如下:
/usr/bin/net-snmp-config --create-snmpv3-user -ro -A mytestsnmpuser -a MD5 mytestsnmpuser
上面这条命令中的-ro选项表示所创建的用户只具有只读权限,如果不带-ro选项,则所创建的用户具有读写权限;-A 选项后面的mytestsnmpuser表示用户密码; -a 选项表示加密方法,可以选择MD5或SHA。
这条命令执行之后会往/etc/snmp/snmpd.conf插入一条记录
rouser mytestsnmpuser
保存重启snmpd进程后,检测snmp v3
snmpget -v 3 -u mytestsnmpuser -l authNoPriv -a MD5 -A mytestsnmpuser 192.168.12.1 sysDescr
snmpwalk -v 3 -l authNoPriv -a MD5 -u 'mytestsnmpuser' -A 'mytestsnmpuser' '192.168.12.1:161' 'sysDescr'
有可能出现一个报错
错误:snmpwalk: Unknown user name (Sub-id not found: (top) -> sysDescr)
这时只需
vi /etc/snmp/snmpd.conf
rocommunity public 192.168.12.1
rouser mytestsnmpuser
createUser 'mytestsnmpuser' MD5 'mytestsnmpuser' #加入这行
保存重启snmpd进程即可
/usr/sbin/snmpd -C -c /etc/snmp/snmpd.conf