搭建Cacti監控(2)

cacti 是用 php 語言實現的一個軟件,它的主要功能是用 snmp 服務獲取數據, snmp 須要的變量數據是經過讀取 mysql 數據庫獲得,而後用 rrdtool 儲存和更新數據,當用戶須要查看數據的時候用 rrdtool 生成圖表呈現給用戶。php

1. Snmp 用來收集數據;html

2. Rrdtool 用來存儲數據和生成圖表;mysql

3. Mysql 用來配合 PHP 程序存儲一些變量數據並對變量數據進行調用。linux


Cacti自己只是一個web界面的管理套件,經過調用Net-SNMP工具來採集檢測數據,客戶端必須支持SNMP協議。並結合RRDtool(Round Robin Database tool,輪詢數據庫工具)記錄數據並繪製圖片,最終,以Web頁面的形式展現給管理員用戶。c++


Cacti能夠從邏輯上分爲三個部分,web


第一部分:被檢測的對象,也就是客戶端。sql

第二部分:檢測平臺,也就是服務器端。shell

第三部分:管理平臺。數據庫

Cacti採用了兩種結構實現功能,apache


一種是C/S結構,主要是實現服務器到客戶端監控;

wKioL1imn-SBD2A_AABbfWxA42o106.png

另一種就是B/S,主要完成對Cacti平臺的管理。

wKiom1imn-OQY3hyAAEiG7Q9xXk412.png

一. 安裝apache

  1. 準備工做


(1)yum方式安裝gcc、gcc-c++

# yum install gcc gcc-c++ -y

 

(2)安裝pcre

pcre下載地址:

http://jaist.dl.sourceforge.net/project/pcre/pcre/8.35/ 

#tar zxf pcre-8.35.tar.gz 

#cd pcre-8.35

#./configure prefix=/usr/local/pcre

#make && make install

  

(3)安裝apr和apr-util

apr和apr-unit下載地址:

http://archive.apache.org/dist/apr/    

1)解壓文件

#tar zxf apr-1.5.0.tar.gz 

#tar zxf apr-util-1.5.3.tar.gz 

#tar zxf httpd-2.4.9.tar.gz 

 

2)將apr和apr-util拷到http的srclib目錄下,並去掉版本號

#cp -r apr-1.5.0 httpd-2.4.9/srclib/apr

#cp -r apr-util-1.5.3 httpd-2.4.9/srclib/apr-util

 

3)編譯安裝

安裝apr

#cd httpd-2.4.9/srclib/apr

#./configure --prefix=/usr/local/apr

#make && make install

 

安裝apr-util

#cd /root/httpd-2.4.9/srclib/apr-util/

#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

#make && make install

  

2.正式安裝apache


Apache下載地址:

http://archive.apache.org/dist/httpd/ 

#cd httpd-2.4.9

#./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/

#make && make install


啓動apache服務

#service httpd start

安裝成功,啓動httpd服務並加入開機啓動

#chkconfig httpd on


二. 安裝mysql

1.準備工做

(1)yum方式安裝ncurses-devel

#yum install ncurses-devel –y

 

(2)安裝cmake

cmake下載地址:

http://wwwNaNake.org/files/v3.0/

#tar zxf cmake-3.0.0.tar.gz 

#cd cmake-3.0.0

#./configure

#make && make install

 

2.建立mysql的安裝目錄及數據庫存放目錄

#mkdir /usr/local/mysql/date -pv

 

/usr/local/mysql/          //mysql安裝目錄

/usr/local/mysql/data       //存在數據庫


3.建立mysql用戶和用戶組


#groupadd mysql

#useradd -r -g mysql mysql


useradd [option] username


[option]:


-d<登入目錄> 指定用戶登入時的目錄。

-g<羣組> 初始羣組。

-G<羣組> 非初始羣組。

-m 自動建立用戶的家目錄。

-M 不要建立用戶的家目錄。

-N 不要建立以用戶名稱爲名的羣組。


-s 指定用戶登入後所使用的shell。

-c comment 給新用戶添加備註 

-d home_dir 爲主目錄指定一個名字(若是不想用登陸名做爲主目錄名的話) 

-e expire_date 用YYYYY-MM-DD格式指定一個帳戶過時的日期 

-f inactive_days 指定這個賬戶密碼過時後多少天這個帳戶被禁用;

0表示密碼一過時就當即禁 用,-1表示禁用這個功能 


-k 必須和-m一塊兒使用,將/etc/skel目錄的內容複製到用戶的HOME目錄 

-n 建立一個同用戶登陸名同名的新組 

-r 建立系統帳戶 

-p passwd 爲用戶帳戶指定默認密碼 

-s shell 指定默認登陸shell 

-u uid 爲帳戶指定一個惟一的UID 

 


4.源碼方式安裝mysql

Mysql下載地址:

http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz

#tar zxf mysql-5.6.17.tar.gz 

#cd mysql-5.6.17

#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock -DWITH_DEBUG=0

#make && make install

 

參數說明:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  //安裝目錄

-DMYSQL_DATADIR=/usr/local/mysql/data   //數據庫存放目錄

-DMYSQL_TCP_PORT=3306    //端口號

-DENABLED_LOCAL_INFILE=1   //容許從本地導入數據

 

5.配置mysql

(1)設置目錄權限

#chown mysql:mysql /usr/local/mysql/ -R

 

(2)初始化mysql數據庫

#cd /usr/local/mysql/

#./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/

 

(3)複製mysql服務啓動腳本

#cp ./support-files/mysql.server /etc/init.d/mysqld

 

(4)配置環境變量

#vim /etc/profile

添加:

PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

 從新加載重啓生效

#source /etc/profile

(5)修改mysql主配置文件/etc/my.cnf

所有內容以下:

wKioL1h1qYSwblq3AAAdMvdkshU931.png-wh_50


6.啓動mysql

(1)開啓守護進程,生成pid

#./mysqld_safe &

 (2)啓動mysql

#service mysqld restart

 

 7.設置mysql管理員密碼

#./mysqladmin password "123456" -u root

  

三. 安裝PHP

  1. 準備工做

1)安裝zlib

zlib下載地址:

http://www.zlib.net/

#tar zxf zlib-1.2.8.tar.gz 

#cd zlib-1.2.8

#./configure --prefix=/usr/local/zlib

#make && make install

 

2)安裝libpng

libpng下載地址:

http://sourceforge.net/projects/libpng/postdownload?source=dlp

注意:這裏建議下載libpng-1.5.18版本,由於libpng與zlib存在版本兼容的問題,若是版本不合適,會make的時報錯

 

已知 zlib-1.2.8和libpng-1.6.10之間就存在這種問題, zlib-1.2.8和libpng-1.5.18能夠正常安裝,有篇文章對此問題進行了一些描述

#tar zxf libpng-1.5.18.tar.gz 

#cd libpng-1.5.18

#./configure --prefix=/usr/local/libpng 

#make && make install


編譯的時候後面加上--with-zlib-prefix=/usr/local/zlib/,仍是提示相同的錯誤

明明已經安裝了zlib,爲何提示zlib沒有安裝,原來是沒有安裝zlib-devel,下面咱們使用yum方式安裝zlib-devel

#yum install zlib-devel

 

下面編譯就成功了

#./configure --prefix=/usr/local/libpng --with-zlib-prefix=/usr/local/zlib/

再安裝

 

3)安裝freetype

freetype下載地址:

http://sourceforge.net/projects/freetype/files/freetype2/2.5.3/

#cd freetype-2.5.3

#./configure --prefix=/usr/local/freetype

#make && make install

 

4)安裝jpeg

jpeg下載地址:

http://www.ijg.org/files/ 

#tar zxf jpegsrc.v9.tar.gz 

#cd jpeg-9/

#./configure --prefix=/usr/local/libjpeg

#make && make install

 

5)yum方式安裝fontconfig、gd、libxml2*、libjpeg-devel


# yum install fontconfig gd –y

# yum install libxml2* libjpeg-devel –y

 

2.正式安裝PHP


PHP下載地址:wget http://cn2.php.net/distributions/php-5.5.14.tar.gz 

 

#tar zxf php-5.5.14.tar.gz 

#cd php-5.5.14

#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-gd --with-mysql=/usr/local/mysql/ --with-zlib-dir=/usr/local/zlib/ --with-png-dir=/usr/local/libpng/ --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --enable-mbstring --enable-sockets --enable-xml  --disable-fileinfo

#make && make install


最後創建一個軟鏈接

 ln -s /usr/local/php/bin/* /usr/local/bin/


四. 安裝rrdtool

1.準備工做

(1)yum方式安裝cairo-devel、pango、pango-devel、libpng-devel、libart_lgpl-devel、intltool、freetype-devel 


#yum install cairo-devel pango pango-devel libpng-devel libart_lgpl-devel intltool freetype-devel –y

 

(2)yum方式安裝perl-ExtUtils-CBuilder、perlExtUtils-MakeMaker

# yum install perl-ExtUtils-CBuilder perlExtUtils-MakeMaker –y

 

2.正式安裝rrdtool

rrdtool下載地址:

http://download.chinaunix.net/down.php?id=35595&ResourceID=9078&site=1 

#tar zxf rrdtool-1.4.5.tar.gz 

#cd rrdtool-1.4.5

#./configure --prefix=/usr/local/rrdtool --disable-tcl

#make && make install

 

 2.增長連接

 ln -s /usr/local/rrdtool/bin/* /usr/local/bin/


五. 安裝net-snmp

(1)yum方式安裝net-snmp

# yum install net-snmp* -y


(2)配置net-snmp(主配置文件/etc/snmp/snmpd.conf


1)找到:

 wKioL1h1t_bDWzNsAAANXrLq9Z4948.png

修改爲:

 wKioL1h1uAmzo3QnAAAKhba-c5Y869.png

其中的192.81.128.66就是你容許哪臺主機能夠訪問到你(即cacti服務器)

2)找到:

 wKiom1h1uBux_o9BAAAL_Dmioeg259.png

將註釋去掉,即:

 wKiom1h1uDDQkcC5AAAMd8oqtEE656.png

3)找到:

 wKioL1h1uESQMfmDAAAD-***QbE755.png

將註釋去掉

 wKioL1h1uFaRFoDiAAAGvoCrVC4152.png

3)啓動net-snmp

 service snmpd start

監控的端口是161,查看是否已打開

netstat -an |grep snmp 

(4)驗證是否有數據

1)localhost

# snmpwalk -v 2c -c public localhost

 

2)本機ip測試

# snmpwalk -v 2c -c public 192.81.128.66

192.81.128.66就是被監控機的IP(這裏測試的是本機,因此就是本機IP)

  

六. 安裝cacti

cacti下載地址:

http://www.cacti.net/downloads/

1. 解壓cacti後,把cacti的目錄移到httpd裏存放網頁的htdocs目錄,並去掉版本號

 #tar zxf cacti-0.8.7h.tar.gz

#mv cacti-0.8.7h  /usr/local/apache/htdocs/cacti


2.增長cacti用戶,並修改目錄權限

cd /usr/local/apache/htdocs

 useradd catic

 chown -R cacti.cacti ./


3.root身份登錄mysql,新建數據並受權

 mysql -uroot -p

> grant all on cacti.* to cacti@'localhost' identified by '123456';

> flush privileges;

 

4.導入數據庫

 cd /usr/local/apache/htdocs/cacti

 # /sur/local/mysql/bin/mysql -u cacti -p123456 cacti < cacti.sql


vim include /config.php

這裏有cacti鏈接使用的數據庫類型,用戶名,密碼信息,按照本身的須要進行配置

wKioL1h1vB-x6RInAAAnCA7fAZ4277.png

並增長:$url_path="/cacti/";


5.配置apache(配置文件/usr/local/apache/conf/httpd.conf

 找到:

wKiom1h1vEjhIQsaAAAJO6_IWEc294.png

修改爲:

wKioL1h1vFnxEDGsAAAVO_ZTBaY659.png

wKioL1h1vIyjPJLnAAAOYmKLews746.png

檢測一下httpd的配置文件語法重啓httpd服務

 /usr/local/apache/bin/apachectl configtest


 yum install php-mysql -y


6.關閉防火牆和selinux,訪問cacti安裝界面

 setenforce 0

service iptables stop


7.重啓apache服務

 service httpd restart


七. 登錄cacti,進行cacti安裝

1.在瀏覽器輸入http://192.81.128.66/cacti,進入web界面

 

點擊Next 

2.出現如1界面

 依然點擊Next

3.出現以下界面,沒有錯誤,perfect

wKiom1h1xfCRJXkIAAF8UJlKnis529.png

點擊Finish

從新訪問一下看看

這是就出現了cacti的登錄界面

 4.第一次登錄,用戶名,密碼都是admin

wKioL1h1xk-Czi8GAAFOrQHdyio663.png 

7.這是成功登錄cacti

wKiom1h1xrSC9tf3AAGMnWWxZGA201.png 

當出現上圖狀況時,cacti已安裝完畢,可正常使用。

cacti默認是使用cmc.php方式去畫圖的,但聽說使用spine方式比較節省系統資源消耗,

8. 生成圖形文件 

 在界面中點擊graphs,圖形不顯示,使用以下命令生成圖形文件 

/usr/local/php/bin/php  /usr/local/apache/htdocs/cacti/poller.php 

此時,圖片出現的可能都是亂碼,那個由於/usr/share/fonts/下沒有任何字符文件。

 這個問題解決辦法很簡單,隨便拷一個.ttf的文件到/usr/share/fonts/下就能夠了

wKioL1h1x83CNDqOAAAWAEXegxA172.png 就能夠出圖了 

9. 加入crontab服務

 */5 * * * * env LANG=C /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php

 

10.過一段時間後,就會有數據圖了


下載解壓後只取兩個文件

一、  PHP採集腳本:

cp percona-monitoring-plugins-1.1.6/cacti/scripts/ss_get_mysql_stats.php  /var/www/html/cacti/scripts/

chmod +x ss_get_mysql_stats.php

 

在被監控端mysql服務器上受權

mysql> grant process,super on *.* to'cacti'@'%' identified by 'cacti';

注意:MySQL 5.1.23和更舊版本中採集InnoDB圖形須要SUPER權限。

在MySQL 5.1.24及更高版本中,所需的權限是PROCESS而不是SUPER。(官方)





[root@server2    mnt]# tar zxf cacti-0.8.8h.tar.gz

[root@server2    mnt]# yum install rrdtool php-mysql mysql-serverhttpd -y

(安裝必要環境)

[root@server2    mnt]# mv cacti-0.8.8h /var/www/html/ 

(將cacti 移動到http目錄下)

[root@server2    mnt]# cd /var/www/html/

[root@server2    html]# ln -s cacti-0.8.8h/ cacti  

(創建軟連接,方便輸入查找)

[root@server2    html]# cd /mnt

   [root@server2 mnt]# yum  install  php-snmp-5.3.3-26.el6.x86_64.rpm

   [root@server2 mnt]#/etc/init.d/mysqld start

   [root@server2 mnt]#mysql_secure_installation 

(設置root 帳戶和密碼,其餘選項,一直輸入 y 繼續進行)

    [root@server2 cacti]# cd/var/www/html/cacti/

[root@server2 cacti]#mysqladmin -padol create cacti

(建立cacti這個庫)

[root@server2 cacti]# mysql -padol cacti < cacti.sql

(將cacti.sql導入cacti 庫)

[root@server2 cacti]# mysql -padol -e "grant all on cacti.*  totest@localhost identified by 'adol';"(建立用戶,給予cacti.*權限)

[root@server2 cacti]# cdinclude/

[root@server2 cacti]# vimconfig.php

相關文章
相關標籤/搜索