FreeBSD+SNMPD+CACTI配置难点解析

使用版本net-snmp 5.5+,cacti0.8.7g

安装就不解释了,主要分析错误和配置难点

一、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启动,那样不是脚本文件启动,不会带配置,肯定报错。

二、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

三、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即可。

四、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。

你可能感兴趣的:(分析,cacti,错误,snmp,休闲)