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./redhat/el$releasever/en/$basearch/dag gpgcheck=1 gpgkey=http://dag./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 回車(chē)后輸入密碼(空) 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./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./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./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 輪詢器:輪詢器類(lèi)型選擇Spine 到此為止,我們已經(jīng)成功安裝Spine輪詢器并使用。 六、 Cacti插件安裝之Cacti-plugin對(duì)于中文版,我們需要下載中文版的更新文件:http://blogimg./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./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:///downloads/monitor.tar.gz Monitor安裝過(guò)程如下(一步復(fù)制文件,一步導(dǎo)入sql文件): #cd /opt/soft #wget http:///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 其他插件的安裝基本類(lèi)似,可參考Monitor來(lái)安裝。
我會(huì)在稍后的幾篇文章內(nèi)講述Cacti的高級(jí)應(yīng)用及Cacti與Nagios的整合。 |
|