cacti

安裝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_sensorsnet-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文件

依次查找修改416285行,以設置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監測服務端須要有ApacheMySQLPHP網站平臺的支持,且須要預先安裝有gdzlib等軟件包,若是沒有安裝,請使用RHEL5系統光盤中的rpm包安裝便可。

 

1、安裝支持軟件

    1)安裝數據庫及Web平臺。

    這裏採用RHEL5系統自帶的rpm包安裝httpdmysqlphp 等相關軟件,以節省時間。所需安裝的主要軟件包以下(存在依賴關機的軟件包需一併安裝)。

[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*

    啓動已安裝好的httpdmysqld、服務,並設置爲每次開機隨系統自動運行。

[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軟件包用於提供snmpgetsnmpwalkSNMP數據採集命令,因爲軟件包之間存在依賴關係,須要依次安裝lm_sensorsnet-snmpnet-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 data]# cd intltool-0.40.6
[root@localhost intltool-0.40.6]#./configure
[root@localhost intltool-0.40.6]# make

[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

相關文章
相關標籤/搜索