安裝cacti構建流量與性能監測系統php
實驗環境:rhel5-4平臺(本實驗被監測端與監測端都在一個服務器上)html
實驗目的:使用Cacti套件構建服務器性能監測系統mysql
相關軟件包:linux
Cacti-0.8.7b-cn-utf8.tar.gz(漢化版)sql
1、配置被監測端(snmpd)數據庫
在被監測的linux服務器主機中,安裝好net-snmp軟件包,並配置啓動snmpd服務,以便容許Cacti系統採集數據。vim
一、 安裝net-snmp軟件包安全
net-snmp軟件須要用到lm_sensors提供的硬件監視模塊,安裝時直接使用RHEL5系統光盤中的rpm包文件。依次安裝lm_sensors、net-snmp兩個軟件包便可。服務器
[root@localhost ~]# mount /dev/cdrom /mediacookie [root@localhost ~]# cd /media/cdrom/Server [root@localhost Server]# rpm –ivh lm_sensors-2.10.0-3.1.i386.rpm [root@localhost Server]# rpm -ivh net-snmp-5.3.1-14.el5.i386.rpm 或用yum安裝 [root@localhost ~]# yum –y install *net-snmp* |
二、 配置及啓動snmpd服務
1) 修改/etc/snmp/snmpd.conf文件
依次查找修改41、62、85行,以設置SNMP訪問權限。原文件中對應行的內如以下
41 com2sec notConfigUser default public 62 access notConfigGroup 「」 any noauth exact systemview none none 85 #view all included .1 80 |
修改後變爲以下:
41 com2sec notConfigUser 192.168.1.112 publicvr 62 access notConfigGroup 「」 any noauth exact all none none 85 view all included .1 80 |
以上過程當中,依次修改以下:
Ø 第41行,將「default」修改成Cacti監測服務器的IP地址(192.168.4.4),將「public」修改成共享SNMP信息的組識別子串(如「publicsvr」,做用相似於密碼)。
Ø 第62行,將「SystemView」修改成「all」或者「read」,提供訪問權限。
Ø 第85行,去掉開頭的註釋符號。
2)啓動snmpd服務並設置爲開機啓動
[root@localhost ~]# /etc/init.d/snmpd restart [root@localhost ~]# chkconfig --level 35 snmpd on |
3)調整防火牆策略,容許從監測系統(如192.168.4.4)中訪問本機的snmpd服務(若是無防火牆則跳過此步)。
[root@localhost ~]# iptables –I INPUT –s 192.168.1.112 –p udp –dport 161 –j ACCEPT [root@localhost ~]# iptables –I OUTPUT –d 192.168.1.112 –p udp –dport 161 –j ACCEPT |
2、配置監測服務端(Cacti)
Cacti監測服務端須要有Apache、MySQL、PHP網站平臺的支持,且須要預先安裝有gd、zlib等軟件包,若是沒有安裝,請使用RHEL5系統光盤中的rpm包安裝便可。
1、安裝支持軟件
1)安裝數據庫及Web平臺。
這裏採用RHEL5系統自帶的rpm包安裝httpd、mysql、php 等相關軟件,以節省時間。所需安裝的主要軟件包以下(存在依賴關機的軟件包需一併安裝)。
[root@localhost Server]# rpm –ivh httpd-2.2.3-6.el5 mysql-5.0.22-2.1 mysql-server-5.0.22-2.1 mysql-connector-odbc-3.51.12-2.2 php-5.1.6-5.el5 php-mysql-5.1.6-5.el5 php-common-5.1.6-5.el5 php-pdo-5.1.6-5.el5
|
或者使用yum安裝
[root@localhost ~]# yum –y insatll http* [root@localhost ~]# yum –y install mysql* [root@localhost ~]# yum –y install php* |
啓動已安裝好的httpd、mysqld、服務,並設置爲每次開機隨系統自動運行。
[root@localhost ~]# /etc/init.d/httpd restart [root@localhost ~]# /etc/init.d/mysqld restart [root@localhost ~]# chkconfig httpd on [root@localhost ~]# chkconfig mysqld on |
2)安裝net-snmp-utils軟件包
Net-snmp-utils軟件包用於提供snmpget、snmpwalk等SNMP數據採集命令,因爲軟件包之間存在依賴關係,須要依次安裝lm_sensors、net-snmp、net-snmp-utils三個軟件包。
3) 安裝rrdtool軟件包
這裏使用1.3.8版本的rrdtool源碼包。
[root@localhost data]# tar zxf rrdtool-1.3.8.tar.gz -C /usr/src/ [root@localhost data]# cd /usr/src/rrdtool-1.3.8/ [root@localhost rrdtool-1.3.8]# ./configure --prefix=/usr/local/ [root@localhost rrdtool-1.3.8]# make [root@localhost rrdtool-1.3.8]# make install |
如出現如下錯誤,解決錯誤後從新編譯
編譯rrdtool報錯:
checking for intltool >= 0.35.0... 0.31.2 found configure: error: Your intltool is too old. You need intltool 0.35.0 or later.
|
解決辦法以下:
[root@localhost rrdtool-1.3.8]# cd /data [root@localhost data]# wget http://ftp.gnome.org/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz [root@localhost data]# tar zxvf intltool-0.40.6.tar.gz [root@localhost intltool-0.40.6]# make install |
編譯intltool報錯:
checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool |
解決辦法以下:
[root@localhost intltool-0.40.6]# yum –y install perl-XML-Parser |
從新編譯
[root@localhost intltool-0.40.6]# ./configure --prefix [root@localhost intltool-0.40.6]# make [root@localhost intltool-0.40.6]# makeinstall [root@localhost intltool-0.40.6]# cd /usr/src/ intltool-0.40.6 [root@localhost rrdtool-1.2.6]#./configure –prefix=/usr/local/ [root@localhost rrdtool-1.2.6]# make [root@localhost rrdtool-1.2.6]# make install |
編譯rrdtool報錯:
configure: error: Please fix the library issues listed above and try again. |
解決辦法以下:
確保安裝了這些庫zlib libpng freetype libart_lgpl
驗證以下
[root@localhost rrdtool-1.2.6]# rpm -qa |grep zlib zlib-1.2.3-3 zlib-devel-1.2.3-3 [root@localhost rrdtool-1.2.6]# rpm -qa |grep libpng libpng-devel-1.2.10-7 libpng-1.2.10-7 [root@localhost rrdtool-1.2.6]# rpm -qa |grep freetype freetype-2.2.1-16.el5 freetype-devel-2.2.1-16.el5 [root@localhost rrdtool-1.2.6]# rpm -qa |grep libart_lgpl libart_lgpl-2.3.17-4 libart_lgpl-devel-2.3.17-4 [root@localhost rrdtool-1.3.8]# rpm -qa | grep pango pango-1.14.9-6.el5 pango-devel-1.14.9-6.el5 |
安裝rrdtool時必須要安裝cgilib這個庫,如下是安裝方法
[root@localhost rrdtool-1.2.6]# cd /data [root@localhost data]#wget http://www.scriptroute.org/source/cgilib-0.5.tar.gz [root@localhost data]# tar –zxf cgilib-0.5.tar.gz [root@localhost data]# cd cgilib-0.5 [root@ localhost cgilib-0.5]# make cc -I. -Wall -O2 -g -c -o cgi.o cgi.c cc -I. -Wall -O2 -g -c -o cookies.o cookies.c ar rc libcgi.a cgi.o cookies.o [root@ localhost cgilib-0.5]# cp cgi.h /usr/local/lib |
而後是根據錯誤提示查找了那些函數庫:
CPPFLAGS= -I/usr/include/cairo -I/usr/include/libpng12 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/libxml2 |
發現沒有/usr/include/libxml2這個目錄,因而下載了libxml2-2.6.32.tar.gz來安裝,以上函數庫均可以在這裏下載:http://oss.oetiker.ch/rrdtool/pub/libs/。
安裝步驟就是:
[root@ localhost cgilib-0.5]# cd /data [root@ localhost data]# wget http://oss.oetiker.ch/rrdtool/pub/libs/libxml2-2.6.32.tar.gz [root@ localhost data]# tar -zxf libxml2-2.6.32.tar.gz [root@ localhost data]# cd libxml2-2.6.32 [root@ localhost libxml2-2.6.32]# ./configure [root@ localhost libxml2-2.6.32]#make [root@ localhost libxml2-2.6.32]#make install |
因爲是源代碼安裝,並無安裝到/usr/include/libxml2.因此須要連接過去。
[root@ localhost libxml2-2.6.32]# ln -s /usr/local/include/libxml2/ /usr/include/libxml2 |
而後再在從新編譯rrdtool便可。
[root@localhost libxml2-2.6.32]# cd /usr/src/rrdtool-1.3.8/ [root@localhost rrdtool-1.3.8]# ./configure --prefix=/usr/local/ [root@localhost rrdtool-1.3.8]# make [root@localhost rrdtool-1.3.8]# make install |
2、安裝配置Cacti服務器套件
1) 安裝Cacti軟件包
將下載的Cacti文件包(保存在/data目錄)解壓至Web服務器的網頁目錄,並添加
用於讀寫監測數據的用戶。
[root@localhost rrdtool-1.3.8]# cd /var/www/html/ [root@localhost html]# tar -zxf /data/cacti-0.8.7b-cn-utf8.tar.gz [root@localhost html]# mv cacti-0.8.7b-cn-utf8 cacti [root@localhost html]# useradd cactiuser [root@localhost html]# chown -R cactiuser:cactiuser cacti/rra cacti/log |
2) 設置監測數據庫
創建保存監測數據的數據庫、表,設置好受權訪問數據庫的用戶和密碼。
[root@localhost html]# mysql -u root –p mysql> CREATE DATABASE cactidb DEFAULT CHARACTER SET utf8;建立數據庫並設置默認字符集 mysql> GRANT all ON cactidb.* TO cactiuser@localhost IDENTIFIED BY 'pwd@123'; [root@localhost html]# mysql -u cactiuser -p cactidb < cacti/cacti.sql //導入數據表 |
基於安全考慮,建議爲MySQL數據庫的root用戶設置一個相對複雜的密碼,而不要使用默認的空密碼。如下mysql語句可將數據庫用戶root的密碼修改成」pwd@secret」。
[root@localhost html]# mysqladmin -u root -p password 'pwd@secret' Enter password: 提示輸入密碼,由於root如今爲空密碼,因此回車就行 |
3) 調整Cacti配置文件
修改include/config.php配置文件,設置正確的數據庫鏈接參數。
[root@localhost html]# cd cacti/ [root@localhost cacti]# vim include/config.php <?php $database_type = "mysql"; 數據庫類型 $database_default = "cactidb"; 要訪問的數據庫名 $database_hostname = "localhost"; 數據庫服務器的地址(主機名或ip) $database_username = "cactiuser"; 受權訪問數據的用戶 $database_password = "pwd@123"; 受權密碼 $database_port = "3306"; 數據庫服務的端口 $config['url_path'] = "/"; 手動添加 ?> |
最後的「$config['url_path'] = "/";」行用於指定Cacti目錄相對於網站根目錄的位置,若是Cacti目錄就是網站的根目錄,則該行內容也能夠省略;不然須要正確指定實際位置,如$config['url_path'] = "/cacti";
三、 調整httpd設置並從新啓動服務
修改httpd.conf文件,以便支持自動查找索引頁index.php,並將utf-8做爲默認的中文頁面字符集。注意要開放Web用戶對Cacti目錄的訪問權限。
[root@localhost cacti]# vim /etc/httpd/conf/httpd.conf NameVirtualHost *:80 去掉#號 <VirtualHost *:80> DocumentRoot /var/www/html/cacti ServerName www.cacti.com </VirtualHost> DirectoryIndex index.php index.html AddDefaultCharset UTF-8 |