FreeBSD下安裝Cacti教程
Cacti是一套開源的網(wǎng)絡(luò)監(jiān)控工具,基于Rrdtool的良好繪圖功能,可以完美的監(jiān)控主機(jī)的狀態(tài)和負(fù)載情況,添加相應(yīng)的模板后,可以用來監(jiān)控Apache服務(wù)器和Mysql服務(wù)器的運(yùn)行狀態(tài)。本文講述的是FreeBSD下安裝Cacti教程。
FreeBSD下安裝cacti教程
以下配置環(huán)境為:FreeBSD8.1 Nginx0.8.54 PHP5.2.15 Mysql5.1.54-log
一.首先配置php網(wǎng)站環(huán)境
一般采用的lamp(linux,apache,php,mysql),我們這里用的是FreeBSD的系統(tǒng),web用的是Nginx,平臺(tái)搭建教程請(qǐng)參考:http://blog.haohtml.com/index.php/archives/1133
二.安裝sockets擴(kuò)展
注意要選擇sockets的擴(kuò)展版本與您所使用的php版本一致,這里我使用的為php5.2.15版本,所以選擇了php52-sockets.
- #cd /usr/ports/net/php52-sockets
- #make install clean
上面的命令會(huì)產(chǎn)生一個(gè)sockets.so的擴(kuò)展,系統(tǒng)會(huì)自動(dòng)將一行
- extension=sockets.so
信息添加到/usr/local/etc/php/extensions.ini 文件末尾.
如果您確認(rèn)已經(jīng)安裝過pdo_mysql這個(gè)擴(kuò)展的話,這步可以跳過.
- #cd /usr/ports/databases/php5-pdo_mysql
- #make install clean
#p#
三、安裝rrdtool12
- #cd /usr/ports/databases/rrdtool12
- #make install clean
- #cd /usr/ports/databases/php5-rrdtool
- #make install clean
執(zhí)行上面php5-rrdtool后,會(huì)產(chǎn)生一個(gè)rrdtool.so擴(kuò)展,自動(dòng)添加一行
- extension=rrdtool.so
到 /usr/local/etc/php/extensions.ini 文件末尾.
四、安裝net-snmp
- #cd /usr/ports/net-mgmt/net-snmp/
- #make install clean
配置
- #cd /usr/local/share/snmp
- #cp snmpd.conf.example snmpd.conf
編輯snmpd.conf,在文本最后添加 rocommunity public 一行
或者手動(dòng)通過命令加入也可以
- # echo 'rocommunity public' >> /usr/local/share/snmp/snmpd.conf
啟動(dòng)snmpd服務(wù):
- #echo 'snmpd_enable="YES"' >> /etc/rc.conf
- # /usr/local/etc/rc.d/snmpd start
通過端號(hào)查看服務(wù)是否已經(jīng)安裝
- # netstat -na | grep "LISTEN"
- # sockstat
- //199 161 port
可以用動(dòng)輸入以下命令用來查看snmpd服務(wù)是否正常
- # snmpwalk -v 1 -c public 127.0.0.1 system
#p#
五、編輯開機(jī)啟動(dòng)項(xiàng)
- vi /etc/rc.conf
在內(nèi)容尾添加以下幾行
- snmpd_flags="-a"
- snmpd_pidfile="/var/run/snmpd.pid"
- snmptrapd_enable="YES"
- snmptrapd_flags="-a -p /var/run/snmptrapd.pid"
上面snmpd和snmptrapd兩點(diǎn)好像一種是標(biāo)準(zhǔn)寫法,一種是縮寫方法的。
六、安裝cacti
- # cd /data/cacti.mytest.com
- # fetch http://www.cacti.net/downloads/cacti-0.8.7c.tar.gz
- # tar -zxvf cacti-0.8.7c.tar.gz
- # cd cacti-0.8.7c
配置cacti
- vi ./include/config.php
- $database_hostname = "localhost";
- $database_username = "cacti"; */mysql中cacti的用戶名/*
- $database_password = "cacti"; */mysql中cacti用戶的密碼/*
- $database_port = "3389"; */mysql監(jiān)控端口/*
- vi ./include/global.php
- $database_hostname = "localhost";
- $database_username = "cacti"; */mysql中cacti的用戶名/*
- $database_password = "cacti"; */mysql中cacti用戶的密碼/*
- $database_port = "3389";
在mysql中配置cacti數(shù)據(jù)庫(kù)及cacti用戶信息
- #mysql -u root -p
- mysql>create database cacti default character set utf8;
- mysql> use cacti;
- mysql> source /data/cacti.mytest.com/cacti-0.8.7c/cacti.sql;
- mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'cacti';
- mysql> flush privileges
;
現(xiàn)在我們?cè)趎ginx里創(chuàng)建一個(gè)虛擬主機(jī)來訪問cacti,我們?cè)趎ginx.conf 配置文件里添加以下配置塊:
- server {
- listen 80;
- server_name cacti.mytest.com;
- root /data/cacti.mytest.com/cacti-0.8.7c;
- location / {
- index index.html index.htm index.php;
- }
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root /usr/local/www/nginx-dist;
- }
- # proxy the PHP scripts to Apache listening on 127.0.0.1:80
- #
- #location ~ \.php$ {
- # proxy_pass http://127.0.0.1;
- #}
- # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
- #
- location ~ \.php$ {
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME /data/cacti.mytest.com/cacti-0.8.7c$fastcgi_script_name;
- include fastcgi_params;
- }
- # deny access to .htaccess files, if Apache's document root
- # concurs with nginx's one
- #
- #location ~ /\.ht {
- # deny all;
- #}
- }
重啟nginx
- #/usr/local/etc/rc.d/nginx reload
現(xiàn)在cacti已經(jīng)完成.在瀏覽器里輸入cacti訪問地址就可以看到cacti的安裝界面了,這里我們用的域名為 http://cacti.mytest.com.
#p#
七、創(chuàng)建cacti計(jì)劃任務(wù)
為了讓系統(tǒng)自動(dòng)采集一些數(shù)據(jù),我們還需要執(zhí)行下面的一些步驟.
- vi /etc/crontab
- */5 * * * * cacti /usr/local/bin/php /data/cacti.mytest.com/cacti-0.8.7c/poller.php > /dev/null 2>&1
注意,在FreeBSD系統(tǒng)中,cacti采集數(shù)據(jù)的時(shí)候可能會(huì)提示
- cat: /proc/meminfo: No such file or directory
類似的錯(cuò)誤的,暫時(shí)不知道如何解決的
由于剛安裝完,沒有任何數(shù)據(jù)信息的,可以通過手動(dòng)在終端里執(zhí)行下面的命令即可.
- #/usr/local/bin/php /data/cacti.mytest.com/cacti-0.8.7c/poller.php
如果用的webserver為apache,并且啟用了open_basedir限制目錄功能,open_basedir內(nèi)容要設(shè)置如下:
- php_admin_value open_basedir "/data/haohtml.com/cacti/:/var/tmp/:/usr/local/bin/php/:/usr/local/bin/snmpwalk/:/usr/local/bin/snmpbulkwalk/:/usr/local/bin/snmpgetnext/:/usr/local/bin/snmpget/:/usr/local/bin/rrdtool/:/usr/bin/perl/:/usr/local/share/rrdtool/fonts/"
在設(shè)置中字體路徑為:
- /usr/local/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf
相關(guān)文章:FreeBSD下用cacti抓取內(nèi)存信息的方法
高級(jí):安裝cacti
注意:0.8.6f以下的版本有SQL注入漏洞
- #cd /usr/ports/net/cacti
- #make install FORCE_PKG_REGISTER=yes clean ;
因?yàn)閙ysql-client已經(jīng)裝過了,所以需要加上FORCE_PKG_REGISTER=yes
- #cd /usr/ports/net/cactid
- #make install clean;
- #ee /usr/local/etc/cactid.conf
- DB_Host localhost
- DB_Database cactidb
- DB_User cacti
- DB_Pass 123456
- DB_Port 3306
【編輯推薦】