Cacti是一款優(yōu)秀的開(kāi)源監(jiān)控軟件,使用php實(shí)現(xiàn),它的主要特點(diǎn)是使用snmp服務(wù)獲取數(shù)據(jù),然后用rrdtool存儲(chǔ)和更新數(shù)據(jù),當(dāng)用戶查看數(shù)據(jù)的時(shí)候,rrdtool生成圖表呈現(xiàn)給用戶。mysql數(shù)據(jù)庫(kù)用于存儲(chǔ)變量并進(jìn)行調(diào)用。mysql數(shù)據(jù)庫(kù)并不存儲(chǔ)snmp捕獲到的數(shù)據(jù),snmp捕獲到的數(shù)據(jù),存在于rrdtool生成的rrd文件中,這些文件位于cacti目錄下的rra目錄中。
本文主要介紹cacti中文版的安裝,配置,cacti插件的安裝,配置。英文版的安裝跟中文版大同小異,但是中文版會(huì)麻煩點(diǎn),所以就以中文版為例。
系統(tǒng):Centos5.6 x386
軟件:cacti-0.8.7e
本文檔提供pdf版本下載,祥見(jiàn)文章尾部。
一、 準(zhǔn)備軟件的安裝
由于cacti使用php來(lái)實(shí)現(xiàn),通過(guò)WEB來(lái)管理,使用snmp來(lái)捕獲數(shù)據(jù),使用rrdtool來(lái)生成圖表,使用mysql來(lái)存儲(chǔ)變量,因此需要先安裝這些軟件,直接使用yum進(jìn)行安裝即可,共需安裝以下rpm包:
httpd/mysql-server/php/php-mysql/rrdtool/gd/net-snmp/php-snmp/net-snmp-utils/net-snmp-devel/mysql-devel/openssl-devel
各個(gè)rpm包的作用為:
httpd WEB服務(wù)器apache
mysql-server 數(shù)據(jù)庫(kù)mysql
php cacti使用php來(lái)實(shí)現(xiàn)
php-mysql php支持mysql
rrdtool 用來(lái)生成cacti圖像
gd rrdtool繪制圖像需要的圖形庫(kù)
php-snmp php支持snmp
net-snmp-utils 一些snmp的擴(kuò)展命令,如:snmpwalk、snmpget等,cacti需要
net-snmp-devel/mysql-devel/openssl-devel cactid/spine需要
安裝rpm包:
#yum httpd mysql-server php php-mysql gd net-snmp php-snmp net-snmp-utils net-snmp-devel mysql-devel openssl-devel
由于centos的標(biāo)準(zhǔn)組件中是不帶rrdtool的,因此我們需要添加一個(gè)dag的yum源,以安裝rrdtool。
修改/etc/yum.repos.d/CentOS-Base.repo,
#vi /etc/yum.repos.d/CentOS-Base.repo
在其末尾追加
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1
更新yum
#yum clean all
#yum list
現(xiàn)在就可以安裝rrdtool
#yum install rrdtool
設(shè)置開(kāi)機(jī)自啟動(dòng)
#chkconfig httpd on
#chkconfig mysqld on
#chkconfig snmpd on
二、 MySQL數(shù)據(jù)設(shè)置由于cacti依靠mysql來(lái)存儲(chǔ)必要的變量,我們有必要對(duì)MySQL做些設(shè)置。
啟動(dòng)并初始化mysql數(shù)據(jù)庫(kù)
#service mysqld start
為root用戶設(shè)置密碼(以linuxpad為例),并更改登錄權(quán)限,默認(rèn)密碼為空
#mysql –u root –p 回車后輸入密碼(空)
mysql>use mysql;
mysql>update user set password=password(‘linuxpad’) where user=’root’;
mysql>grant all privileges on *.* to root@localhost identified by ‘linuxpad’ with grant option;
mysql>flush privileges;
添加cacti庫(kù)和cacti用戶,并為其設(shè)置權(quán)限
mysql>create database cacti default character set utf8; //數(shù)據(jù)庫(kù)字符集設(shè)置utf8,否則亂碼
mysql>grant all privileges on cacti.* to cacti@localhost identified by ‘linuxpad’ with grant option;
mysql>flush privileges;
三、 安裝Cacti下載cacti-0.8.7e-cn-utf8.tar.gz,地址為http://blogimg.chinaunix.net/blog/upfile2/090815172648.gz (這個(gè)鏈接是tar.gz格式的,請(qǐng)下載后更改文件格式),假設(shè)下載目錄為/opt/soft,下面相同
#cd /opt/soft
#tar zxvf 090815172648.tar.gz
#mv cacti-0.8.7e-cn-utf8 /var/www/cacti
修改配置文件
#vi /var/www/cacti/include/config.php
修改內(nèi)容如下
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "linuxpad";
關(guān)于cacti添加用戶,網(wǎng)上常見(jiàn)的做法是添加一個(gè)cacti的用戶,并更改rra和log目錄屬主。經(jīng)過(guò)本人測(cè)試這里并不需要添加cacti用戶并更改rra和log的屬主,直接使用root即可。原因是因?yàn)楣俜降陌惭b文檔上使用的是FreeBSD,在計(jì)劃任務(wù)那步使用的是:
*/5 * * * * cacti php /var/www/cacti/poller.php &>/dev/null,使用用戶cacti來(lái)執(zhí)行任務(wù)。
但是centos并不是識(shí)別這個(gè)cacti參數(shù),因此也就無(wú)需使用cacti來(lái)執(zhí)行任務(wù),我們直接使用root來(lái)執(zhí)行任務(wù)就OK了,于是不用更改目錄權(quán)限,crontab內(nèi)容為
*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1
還有另外一種的解決方案,就是添加一個(gè)cacti用戶,更改rra和log目錄屬主為cacti,然后在cacti用戶環(huán)境下設(shè)置crontab,內(nèi)容為
*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1
這樣就能實(shí)現(xiàn)crontab計(jì)劃是由cacti用戶來(lái)執(zhí)行的了。
創(chuàng)建并編輯apache的cacti配置文件
#vi /etc/httpd/conf.d/cacti.conf
內(nèi)容如下:
Alias /cacti /var/www/cacti
<Directory /var/www/cacti>
DirectoryIndex index.php
AllowOverride all
order deny,allow
allow from all
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
導(dǎo)入數(shù)據(jù)庫(kù)
#mysql –u root –p cacti < /var/www/cacti/cacti.sql
啟動(dòng)服務(wù),然后訪問(wèn)http://ip/cacti開(kāi)始安裝cacti
#service mysqld start
#service httpd start
#service snmpd start
直接下一步,選擇”全新安裝”,來(lái)到下面的一個(gè)界面,如圖1
請(qǐng)確認(rèn)所有路徑都已找到,并選擇SNMP應(yīng)用程序版本為5.x,RRDTool版本為1.3.x。
完成之后來(lái)到登錄頁(yè)面,默認(rèn)用戶名admin,密碼admin,登錄之后會(huì)提示你強(qiáng)制更改密碼。
設(shè)置計(jì)劃任務(wù)
#crontab –e
追加以下內(nèi)容
*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1
添加中文字體支持,否則Cacti圖像內(nèi)會(huì)沒(méi)有任何內(nèi)容。CentOS下直接yum安裝中文支持
#yum install fonts-chinese
打開(kāi)Cacti,控制面板->配置->設(shè)置->路徑:
將RRDTool默認(rèn)字體路徑設(shè)為/usr/share/fonts/chinese/TrueType/ukai.ttf
配置無(wú)誤,會(huì)顯示文件已找到。
四、 配置本機(jī)snmp編輯snmp配置文件/etc/snmp/snmp.conf
修改:
com2sec notConfigUser default public
改為:
com2sec notConfigUser 127.0.0.1 public
修改:
access notConfigGroup "" any noauth exact systemview none none
改為:
access notConfigGroup "" any noauth exact all none none
去掉這句的注釋
#view all included .1 80
重啟snmp服務(wù)并測(cè)試
#service snmpd restart
# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 2
IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 3
顯示以上信息,則snmp配置成功,xxx.xxx.xxx.xxx會(huì)根據(jù)你本機(jī)的IP信息配置而不同。
圖1
如果配置正確,隔幾分鐘,我們的cacti就會(huì)有數(shù)據(jù)了,如圖2,你也可以手動(dòng)執(zhí)行以下命令手動(dòng)生成rrd圖像
#/usr/bin/php /var/www/cacti/poller.php &>/dev/null
圖2
五、 安裝Spine由于默認(rèn)cmd.php來(lái)輪詢數(shù)據(jù),速度會(huì)很慢,特別是在監(jiān)控節(jié)點(diǎn)比較多的情況下,cmd.php就更顯不足了,因此我們采用Spine來(lái)輪詢數(shù)據(jù)。cacti-spine是一個(gè)由C語(yǔ)言開(kāi)發(fā)的,用于替代cmd.php的快速獲取速度的引擎。
下載地址:http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
安裝spine之前請(qǐng)確保它所依賴的包net-snmp-devel、mysql-devel、openssl-devel都已安裝完畢。
以下是安裝步驟
#cd /opt/soft
#wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
#tar zxvf cacti-spine-0.8.7e.tar.gz
#cd cacti-spine-0.8.7e
#./configure
#make && make install
編輯spine配置文件
#vi /usr/local/spine/etc/spine.conf
修改內(nèi)容如下:
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass linuxpad
DB_Port 3306
將spine啟動(dòng)并設(shè)置開(kāi)機(jī)自啟動(dòng)
#/usr/local/spine/bin/spine
#echo /usr/local/spine/bin/spine >>/etc/rc.d/rc.local
Cacti設(shè)置:
Cacti控制面板->配置->設(shè)置
路徑:將Spine輪詢器路徑設(shè)置為/usr/local/spine/bin/spine
輪詢器:輪詢器類型選擇Spine
到此為止,我們已經(jīng)成功安裝Spine輪詢器并使用。
六、 Cacti插件安裝之Cacti-plugin對(duì)于中文版,我們需要下載中文版的更新文件:http://blogimg.chinaunix.net/blog/upfile2/090818213852.gz,下載后需更名為cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz,更新前請(qǐng)備份cacti目錄及mysql庫(kù),以便更新失敗后的還原。
Cacti-Plugin安裝過(guò)程如下:
#cd /opt/soft
#wget http://blogimg.chinaunix.net/blog/upfile2/090818213852.gz
#mv 090818213852.gz cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz
# gunzip cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz
# mv cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff /var/www/cacti/
# patch -p1 -N <cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff
#mysql –u cacti –p cacti < pa.sql
如果你的cacti訪問(wèn)時(shí)候是使用http://ip/cacti,你需要修改/var/www/cacti/include/global.php
修改如下:
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "linuxpad";
$database_port = "3306";
$config['url_path'] = '/cacti/';
配置Cacti
Cacti控制面板->工具->用戶管理->admin->區(qū)域權(quán)限,選擇”插件管理”
然后我們就能夠在控制面板的”配置”下面看到多出一個(gè)”插件管理”的選項(xiàng)
七、 Cacti插件安裝之Monitor
Cacti下面的插件非常多,我們拿Monitor為例,來(lái)講述Cacti插件的安裝。
Monitor是Cacti下面一個(gè)監(jiān)控節(jié)點(diǎn)存活性的插件,可以監(jiān)控各種網(wǎng)絡(luò)設(shè)備,主機(jī)的存活性。
Monitor下載地址:http://cactiusers.org/downloads/monitor.tar.gz
Monitor安裝過(guò)程如下(一步復(fù)制文件,一步導(dǎo)入sql文件):
#cd /opt/soft
#wget http://cactiusers.org/downloads/monitor.tar.gz
#tar zxvf monitor.tar.gz
# mv monitor /var/www/cacti/plugins #復(fù)制插件到plugins
# cd /var/www/cacti/plugins/monitor/
# mysql -u cacti -p cacti < monitor.sql #導(dǎo)入monitor.sql數(shù)據(jù)
配置global.php
#vi /var/www/cacti/include/global.php
在$plugins = array();后添加:
$plugins[] = 'monitor';
刷新Cacti控制面板,我們會(huì)在設(shè)置下面找到一個(gè)新的選項(xiàng)卡”Misc”,同時(shí)左上方會(huì)多出一個(gè)新的選項(xiàng)卡”Monitor”,如圖3。Monitor監(jiān)控節(jié)點(diǎn)圖像如圖4。
圖3
圖4
其他插件的安裝基本類似,可參考Monitor來(lái)安裝。
我會(huì)在稍后的幾篇文章內(nèi)講述Cacti的高級(jí)應(yīng)用及Cacti與Nagios的整合。
聯(lián)系客服