#apt-get install snmpd snmp
2、简单测试。
# snmpwalk -v 1 -c public localhost
如果有反应,表示你的snmpd已经可以正常工作。
3、配置/etc/snmp/snmpd.conf
安装snmp
确认snmp代理已安装
rpm -q net-snmp
如果未安装,安装snmp
yum install net-snmp
设置开机自动运行snmp
/sbin/chkconfig snmpd on
配置snmp
编辑/etc/snmp/snmpd.conf
更改团体名
查找如下行
# sec.name source community
com2sec notConfigUser default public
将团体名public改为其它任意字段,例:
cmonit
给予可读权限
查找如下行
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact systemview none none
将read权限systemview改为all,例:
access notConfigGroup "" any noauth exact all none none
查找如下行
## incl/excl subtree mask
#view all included .1 80
去掉#view all前面的#,例:
view all included .1 80
启动snmp
/etc/init.d/snmpd start
如果已启动则重启snmp服务
/etc/init.d/snmpd restart
测试snmp
查看端口是否打开
netstat -ln | grep 161
安装snmp测试工具
yum install net-snmp-utils
本机测试snmp数据(修改monit为配置的团体名)
snmpwalk -v 2c -c monit localhost system
远程测试snmp数据(修改ip为服务器ip,snmpwalk命令需要安装net-snmp)
snmpwalk -v 2c -c monit ip system
错误排除
防火墙禁止访问
如果本地测试snmp有数据,远程测试snmp无数据则由于服务器防火墙禁止了外部访问服务器udp 161端口,则:
修改 /etc/sysconfig/iptables (或者:/etc/sysconfig/iptables-config ) ,增加如下规则:
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 161 -j ACCEPT
重启iptables
/etc/init.d/iptables restart
ubuntu server 9.10安装完snmpd后,居然无法从远程机器访问到snmp信息,从本机没有问题。
先看看端口:root@loulancn:~# lsof -i:161
snmpd 91 snmp 6u IPv4 29940 0t0 localhost:snmp:snmp
发现端口是监听在 localhost上的
再看进程:
root@loulancn:~# ps ax|grep snmp
/usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1
没错,后面是多了个127.0.0.1,原来ubuntu server为了安全起见把snmp监听在本地回环接口了,改之。
通过/etc/init.d/snmpd启动文件发现,一些参数在 /etc/default/snmpd里定义,
找到/etc/default/snmpd 文件里的
SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1′
将之修改为:
SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid’
从别的机器再访问ubuntu server 的snmp已经OK了!