转自: http://blog.csdn.net/yeahugo/archive/2010/08/04/5787558.aspx
我们要对linux服务器进行监控,监控CPU占用率、内存使用情况、进程情况等。如果是window操作系统,没有安装snmp的话可以添加snmp组建就行,网上文章很多,不加详述。现在我用ubuntu9.04版本使用snmp服务,网上的文章也很多,不过亲自实验之后都没有完全可以用的。
首先我们下载安装snmp,apt-get install snmpd,然后开启snmp服务,service snmpd start。
(1)修改snmpd配置文件
我们进入snmpd的配置文件,例如gedit /etc/snmp/snmpd.conf 看到
# sec.name source community
com2sec paranoid default public
#com2sec readonly default public
#com2sec readwrite default private
这三行表明,现在通信的community有public和private,而public 拥有paranoid的安全权限,而private有readwrite的权限。
再看下面
# sec.model sec.name
group MyROSystem v1 paranoid
group MyROSystem v2c paranoid
group MyROSystem usm paranoid
group MyROGroup v1 readonly
group MyROGroup v2c readonly
group MyROGroup usm readonly
group MyRWGroup v1 readwrite
group MyRWGroup v2c readwrite
group MyRWGroup usm readwrite
# context sec.model sec.level match read write notif
access MyROSystem "" any noauth exact system none none
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none
属于paranoid的 都在MyROSystem组,这个组只有对系统信息有读的权限,就是mib-2项的system。
而readonly所在的MyRoGroup组对所有都有读权限。
所以我们只要把
com2sec paranoid default public
#com2sec readonly default public
改为
# com2sec paranoid default public
com2sec readonly default public
这样通信community public就有了对所有项的读权限。
重启snmpd,service snmpd restart
现在我们对本机进行测试
snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.2.2.1.2
就可以正常返回信息了。
(2)可是如果其他主机访问ubuntu的snmp服务还是不行。
我们找到/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监听在本地回环接口了
现在从别的机器再访问Ubuntu server 的snmp已经OK了!