Cacti是一套基于PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。
Cacti是通過 snmpget來擷取資料,使用 RRDtool繪畫圖形,它提供了非常強大的資料和使用者管理功能,可以指定每一個使用者能檢視樹狀結構、host以及任何一張圖,還可以與LDAP結合進行使用者驗證,同時也能自己增加模闆,功能非常強大完善。界面友好,Cacti 也可外挂 Scripts 及加上 Templates 來作出各式各樣的監控圖。
一. 安裝apache
1.準備工作
(1)yum方式安裝gcc、gcc-c++
# yum install gcc gcc-c++ -y
(2)安裝pcre
pcre下載下傳位址:
#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下載下傳位址:
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
安裝apr-util
#cd /root/httpd-2.4.9/srclib/apr-util/
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
2.正式安裝apache
Apache下載下傳位址:
#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/
啟動apache服務
#service httpd start
安裝成功,啟動httpd服務并加入開機啟動
#chkconfig httpd on
二. 安裝mysql
(1)yum方式安裝ncurses-devel
#yum install ncurses-devel –y
(2)安裝cmake
cmake下載下傳位址:
<a href="http://wwwnanake.org/files/v3.0/" target="_blank">http://wwwNaNake.org/files/v3.0/</a>
#tar zxf cmake-3.0.0.tar.gz
#cd cmake-3.0.0
#./configure
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
4.源碼方式安裝mysql
Mysql下載下傳位址:
<a href="http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz" target="_blank">http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz</a>
#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
參數說明:
-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
全部内容如下:
<a href="https://s4.51cto.com/wyfs02/M00/8C/B5/wKioL1h1qYSwblq3AAAdMvdkshU931.png-wh_500x0-wm_3-wmp_4-s_375726356.png" target="_blank"></a>
6.啟動mysql
(1)開啟守護程序,生成pid
#./mysqld_safe &
(2)啟動mysql
#service mysqld restart
7.設定mysql管理者密碼
#./mysqladmin password "123456" -u root
三. 安裝PHP
1)安裝zlib
zlib下載下傳位址:
<a href="http://www.zlib.net/" target="_blank">http://www.zlib.net/</a>
#tar zxf zlib-1.2.8.tar.gz
#cd zlib-1.2.8
#./configure --prefix=/usr/local/zlib
2)安裝libpng
libpng下載下傳位址:
<a href="http://sourceforge.net/projects/libpng/postdownload?source=dlp" target="_blank">http://sourceforge.net/projects/libpng/postdownload?source=dlp</a>
注意:這裡建議下載下傳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
編譯的時候後面加上--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下載下傳位址:
<a href="http://sourceforge.net/projects/freetype/files/freetype2/2.5.3/" target="_blank">http://sourceforge.net/projects/freetype/files/freetype2/2.5.3/</a>
#cd freetype-2.5.3
#./configure --prefix=/usr/local/freetype
4)安裝jpeg
jpeg下載下傳位址:
#tar zxf jpegsrc.v9.tar.gz
#cd jpeg-9/
#./configure --prefix=/usr/local/libjpeg
5)yum方式安裝fontconfig、gd、libxml2*、libjpeg-devel
# yum install fontconfig gd –y
# yum install libxml2* libjpeg-devel –y
2.正式安裝PHP
#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
最後建立一個軟連接配接
ln -s /usr/local/php/bin/* /usr/local/bin/
四. 安裝rrdtool
(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下載下傳位址:
#tar zxf rrdtool-1.4.5.tar.gz
#cd rrdtool-1.4.5
#./configure --prefix=/usr/local/rrdtool --disable-tcl
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)找到:
修改成:
其中的192.81.128.66就是你允許哪台主機可以通路到你(即cacti伺服器)
2)找到:
将注釋去掉,即:
3)找到:
将注釋去掉
(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下載下傳位址:
<a href="http://www.cacti.net/downloads/" target="_blank">http://www.cacti.net/downloads/</a>
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
> 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連接配接使用的資料庫類型,使用者名,密碼資訊,按照自己的需要進行配置
并增加:$url_path="/cacti/";
5.配置apache(配置檔案/usr/local/apache/conf/httpd.conf)
找到:
<a href="https://s3.51cto.com/wyfs02/M02/8C/B9/wKiom1h1vEjhIQsaAAAJO6_IWEc294.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M02/8C/B6/wKioL1h1vFnxEDGsAAAVO_ZTBaY659.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M00/8C/B6/wKioL1h1vIyjPJLnAAAOYmKLews746.png" target="_blank"></a>
檢測一下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安裝
點選Next
2.出現如1界面
3.出現如下界面,沒有錯誤,perfect
點選Finish
重新通路一下看看
這是就出現了cacti的登陸界面
4.第一次登陸,使用者名,密碼都是admin
7.這是成功登陸cacti
當出現上圖情況時,cacti已安裝完畢,可正常使用。
但cacti預設是使用cmc.php方式去畫圖的,但據說使用spine方式比較節省系統資源消耗,
8. 生成圖形檔案
/usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php
此時,圖檔出現的可能都是亂碼,那個因為/usr/share/fonts/下沒有任何字元檔案。
這個問題解決辦法很簡單,随便拷一個.ttf的檔案到/usr/share/fonts/下就可以了
9. 加入crontab服務
*/5 * * * * env LANG=C /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php
10.過一段時間後,就會有資料圖了
本文轉自super李導51CTO部落格,原文連結:http://blog.51cto.com/superleedo/1891052 ,如需轉載請自行聯系原作者