FreeBSD+SNMPD+CACTI配置难点解析

使用版本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。
相关文章
相关标签/搜索