被监控端配置
大部分情况下,我们监控的是服务器,以RedHat Linux为例,看看如何打开SNMP服务。
只有开启了SNMP服务,监控端才可以收集数据。
打开默认的/etc/snmp/snmp.conf文件,更改如下配置:
1、查找以下字段:
代码:
#    sec.name source     community
com2sec notConfigUser default    public
将"comunity"字段改为你要设置的密码.比如"bizcnpublic".
将“default”改为你想哪台机器可以看到你的snmp信息,如10.10.10.10。授权服务器IP
2、查找以下字段:代码:
####
# Finally, grant the group read-only access to the systemview view.
#    group     context sec.model sec.level prefix read  write notif
access notConfigGroup ""   any    noauth  exact systemview none none
将"read"字段改为all.
代码:
#access notConfigGroup ""   any    noauth  exact all none none
3、查找以下字段:代码:
##      incl/excl subtree             mask
#view all  included .1                80
将该行前面的"#"去掉.
4、查找以下字段:代码#
#name           incl/excl     subtree         mask(optional)
添加一行view    all           included   .1
变成
#name           incl/excl     subtree         mask(optional)
view    all           included   .1

4、查找一下字段:代码
#view mib2   included .iso.org.dod.internet.mgmt.mib-2 fc
将该行前面的"#"去掉.
保存关闭.
4、运行/etc/init.d/snmpd start命令运行snmpd.
5、如果有防火墙,打开UDP 161端口。
最后运行netstat -ln查看161端口是否打开了.
使用ntsysv,让snmp服务,每次开机自动运行。
如果没有安装snmp服务,请在RH的安装光盘上找到net-snmp.rpm,再安装。
五、测试
打开本机的SNMP服务,
打开http://IP/cacti
默认Cacti有LocalHost的四项参数,直接可以查看了。
六、排错
1. 首先检查一下rra/下面,有没有数据,如果没有检查rra/ log/的拥有者是不是cactiuser
2. snmpwalk -v 2c -c public ServerIP if 用来测试被控对象(serverIP)是否开启了SNMP服务
3. snmpwalk -v 2c ServerIP -c public .1.3.6.1.4.1.2021.10.1.3 查看被控端是否有CPU负载的数据返回
4. /usr/local/bin/php /home/wwwroot/cacti/poller.php 用来测试PHP是否可以采集到数据。如果上面的都正确,但这步出错,很有可能是PHP配置的问题,或开启了SuLinux。
5. 如果按第2步snmpwalk能采集到数据,但第3步无法采集,可能是PHP设置的问题,修改PHP.ini,很有可能是PHP权限问题。如果第4步正常而无法显示图,则可能是rra/ log/ 的Owner不对



Cacti + rrdtool 非常灵活,可以使用到非常广的范围,但是很多需要自己写插件和模板,现在对cacti和rrdtool的研究还处中初级阶段!要想好好利用这个工具,也得费一番心思!