使用版本net-snmp 5.5+,cacti0.8.7g
安装就不解释了,主要分析错误和配置难点
1、snmpwalk的时候显示timeout
可能缘由是snmpd没有启动,或测试IP端口不正确
默认启动后应该是监听127.0.0.1的udp4 161端口
snmpwalk -c public -v 2c 127.0.0.1 if若是显示timeout,先检查ps -aux进程是否有snmpd,再检查netstat -na,是否有udp4 127.0.0.1:161
检查/usr/local/share/snmp/snmpd.conf是否存在,不存在就把example文件cp过去。killall 掉全部snmpd进程,而后/usr/local/etc/rc.d/snmpd start。不要直接snmpd启动,那样不是脚本文件启动,不会带配置,确定报错。
2、snmpwalk不加if有内容,加了if报错。
检查/usr/local/share/snmp/snmpd.conf,rcommunity的配置,须要修改该配置内容,我diff一下个人snmp配置能够做为对比。分割线上为应用配置,分割线下为原版范例配置,数字为行号对比。
#diff snmpd.conf snmpd.conf.example
15c15
< agentAddress udp:192.168.10.1:161
---
> agentAddress udp:127.0.0.1:161
49c49
< rocommunity public
---
> #rocommunity public localhost
51c51
< # rocommunity public default -V systemonly
---
> rocommunity public default -V systemonly
60c60
< # rouser authOnlyUser
---
> rouser authOnlyUser
if无内容主要须要把rocommunity public default -V systemonly改为rocommunity public
3、cacti没法获取数据
linux下,须要用/usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2 >&1
bsd默认shell为tcsh,没有双重定向输出,会报shell错误。因此,要把2 > &1去掉,直接/usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null便可。
4、poller正常,cacti无图像,这分两种状况,一种是图片是红叉,一种是有网格,无数据。
1.红叉问题系rrdtool没有在rra文件夹下建立文件,先检查权限。保证rra文件夹和log文件夹权限是cacti:cacti。如不是,请修改。并,crontab时,注意用户,须要crontab -e -u cacti。而后在Data Sources里面作正确的设置,生成rrd文件。还有就是rrd的字体问题,在path设置里要设置正确的TTF字体路径,通常英文用DejaVu,中文须要下载ukai.ttf,cacti的中文patch和字体能够去google一下。
2.有网格图,但无内容,主要是数据获取不到,这就得检查cacti的配置了,先看Devices里面是否正常,如Status为down,确定没数据。若是为up,则进入看SNMP配置。选择version2,端口等都是否正确配置。
再进Data Sources里,看须要监控的数据来源是否正确。这一般发生在流量监控等须要标识的地方。若是流量超过100M,就须要选择64bitCounters。固然,你须要安装64位操做系统,不然计数可能不正常。
Index Value一般有人不知道填什么,并且不填还不让你Save。这里填你须要监控的设备名称,好比Linux下,就是eth0,BSD下是bce0等等。这里能够Turn On Debug Mode,会显示rrdtool建立的命令,若是文件没有建立,能够贴到CRT里手工建立。而后更改权限为cacti:cacti。
能够去rra文件夹下,用#rrdtool fetch xxxxxxx.rrd AVERAGE查看,若是内容所有为nan,则表示没有数据。
---------
另外在BSD系统里要注意一点,snmp在ports安装完后,会提示要在rc.conf里加入启动配置。记得不要在rc.conf里面写snmpd_conffile="/usr/local/share/snmp/snmpd.conf",把这整行注释掉或者干脆不写,不然启动会报错。
而后,Enjoy it。