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。
相關文章
相關標籤/搜索