<b>Cacti</b><b>監控軟體詳細配置</b>
<b>——及功能介紹</b>
<b> </b>
<b>目錄</b>
一、環境需求... 2
1.1 作業系統:... 2
1.2 需要的資料包... 2
一、編譯安裝... 3
2.1 mysql-5.0.46.tar.gz. 3
2.2 編譯安裝apache. 4
三、環境登入測試... 15
3.1 首次安裝cacti. 15
3.2 登陸界面... 15
3.3 進入系統... 15
3.4 系統詳細功能介紹... 16
3.4.1 Console 控制台... 16
3.4.2 graphs 圖型直覺圖... 16
3.4.3要建立裝置在圖上所示... 17
3.4.4 管理工具... 17
3.4.5收集方法... 17
3.4.6模闆庫... 18
3.4.7 導入額外的莫闆塊,實作插件監控和别的功能... 19
3.4.8 系統配置... 20
3.4.9 公用配置... 21
四、額外增加插件監控... 22
4.1 腳本下載下傳,編譯... 22
4.2 模闆導入... 22
4.3 建立監控Mysql需要的賬戶以及權限... 22
4.4 添加裝置... 23
4.5 腳本下載下傳及設定... 24
4.6 建立監控Mysql需要的賬戶以及權限... 25
4.7 模闆導入... 25
4.8 添加裝置... 25
五、故障排查... 27
5.1 第一次配置,引發錯誤... 27
5.2 新手的,第二種報錯... 27
<b>一、環境需求</b>
<b>1.1 作業系統:</b>
作業系統(Redhat Enterprise Linux 5.3),i386單核CPU,兩個硬碟
<b>1.2 需要的資料包</b>
<b>需要的源碼包</b>
資料庫
mysql-5.0.46.tar.gz
PHP
php-5.3.4.tar.gz
apache
httpd-2.2.17
phpMyAdmin
phpMyAdmin-3.3.8-all-languages.tar.gz
apr
apr-1.4.2.tar.gz
Apr-util
apr-util-1.3.10.tar.gz
cacti
cacti-0.8.7g.tar.gz 注:取用官方最新的包
cacti-cactid
cacti-cactid-0.8.6i.tar.gz 注:取用官方最新的包
cacti-spine
cacti-spine-0.8.7g.tar.gz
fontconfig
fontconfig-2[1].4.2.tar.gz 可以yum安裝
freetype
freetype-1.3.1.tar.gz 可以yum安裝
gd
gd-2.0.32.tar.gz 注:這個要源碼安裝
Jpeg源碼包
jpegsrc.v6b.tar.gz 注:這個要源碼安裝
libmcrypt
libmcrypt-2[1].5.7.tar.gz 源碼安裝好點
libxml2-
libxml2-2.6.28.tar.gz 源碼安裝好點
Rrdtool合成包
rrdtool-1.4.4-1.el5.wrl.i386.rpm
rrdtool-1.4.4-1.wrl.src.rpm
rrdtool-devel-1.4.4-1.el5.wrl.i386.rpm
gcc gcc+
gcc yum安裝好,沒那麼多麻煩
openssl
openssl openssl-level yum安裝好,沒那麼多麻煩
net-snmp-*
net-snmp-devel net-snmp net-snmp-utils net-snmp-libs
yum安裝好,沒那麼多麻煩
glbc
glbc* yum安裝好,沒那麼多麻煩
openldap
openldap* yum安裝好,沒那麼多麻煩
autoconf
autoconf yum安裝好,沒那麼多麻煩
cacti-memcached-1.0.tar.gz
mysql的監控插件
mysql-cacti-templates-1.1.3.tar.gz
http://code.google.com/p/mysql-cacti-templates/downloads/detail?name=mysql-cacti-templates-1.1.3.tar.gz&can=2&q=
cgilib-0.5.tar.tar
Nginx 監控插件
cacti-nginx.tar.gz
teMySQLcacti-20060810.tar.gz
http://faemalia.com/Technology/
<b>注:以上還缺什麼基礎包,先安裝了,再裝apache mysql php cacti,然後相關的插件</b>
<b>一、 編譯安裝</b>
<b>2.1 mysql-5.0.46.tar.gz</b>
# tar zxvf mysql-5.0.46.tar.gz
# cd mysql-5.1.46
# groupadd -g 5050 mysql
# useradd -g mysql -u 5050 -s /sbin/nologin -M mysql
# ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --with-charset=gbk --localstatedir=/data --with-extra-charsets=all --enable-thread-safe-client
# make
# make install
#cd /usr/local/mysql/
# chown -R mysql:mysql .
# chown -R mysql:mysql /data
# /usr/local/mysql/bin/mysql_install_db --user=mysql
# cp share/mysql/my-large.cnf /etc/my.cnf # 在源碼包解壓之後那裡複制
# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
# ldconfig
# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
# source /etc/profile
# cp share/mysql/mysql.server /etc/init.d/mysqld # 到自身系統裡面去,以便自動啟動
# chmod 755 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld off
# chkconfig --level 35 mysqld on
<b>2.2 編譯安裝apache</b>
<b>編譯安裝支援庫</b>
<b>a</b><b>、 編譯安裝jpegsrc.v6b.tar.gz</b>
# tar zxvf jpegsrc.v6b.tar.gz
# mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1}
# cd jpeg-6b/
# ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
# make
# make install
<b>b</b><b>、</b><b> </b><b>編譯安裝libpng-1.4.4.tar.gz</b>
# tar zxvf libpng-1.4.4.tar.gz
# cd libpng-1.4.4
# ./configure --prefix=/usr/local/libpng
<b>c</b><b>、</b><b> </b><b>編譯安裝freetype-2.4.3.tar.gz</b>
# tar zxvf freetype-2.4.3.tar.gz
# cd freetype-2.4.3
# mkdir -pv /usr/local/freetype
# ./configure --prefix=/usr/local/freetype
# make && make install
<b>注:可以yum,友善快捷點。</b>
d、 編譯安裝zlib-1.2.5.tar.gz
# tar zxvf zlib-1.2.5.tar.gz
# cd zlib-1.2.5
# mkdir /usr/local/zlib
# ./configure --prefix=/usr/local/zlib
<b>e</b><b>、</b><b> </b><b>編譯安裝curl-7.21.2.tar.gz</b>
# tar zxvf curl-7.21.2.tar.gz
# mkdir -pv /usr/local/curl
# cd curl-7.21.2
# ./configure --prefix=/usr/local/curl
# make install
<b>注:可以不需要</b>
<b>f</b><b>、編譯安裝libxml2-sources-2.7.8.tar.gz</b>
# tar zxvf libxml2-sources-2.7.8.tar.gz
# cd libxml2-2.7.8/
# mkdir -pv /usr/local/libxml2
# ./configure --prefix=/usr/local/libxml2
# make install
<b>注:最好源碼安裝,也可以yum安裝</b>
<b>G</b><b>、編譯安裝libxslt-1.1.9.tar.gz</b><b> </b>
# tar zxvf libxslt-1.1.9.tar.gz
# mkdir -pv /usr/local/libxslt
# cd libxslt-1.1.9
# ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
<b>注:可以安裝,也可以不安裝</b>
<b>H</b><b>、編譯安裝fontconfig-2.8.0.tar.gz</b>
<b>下載下傳位址http://fontconfig.org/release/</b>
# tar zxvf fontconfig-2.8.0.tar.gz
# cd fontconfig-2.8.0
# mkdir -pv /usr/local/fontconfig
# ./configure --prefix=/usr/local/fontconfig --disable-docs --with-freetype-config=/usr/local/freetype/bin/freetype-config
I、編譯安裝 gettext-0.18.tar.gz
下載下傳位址http://mirror.bjtu.edu.cn/gnu/gettext/
可以使用 yum install gettext安裝
# tar zxvf gettext-0.18.tar.gz
# cd gettext-0.18
# mkdir /usr/local/gettext
# ./configure --prefix=/usr/local/gettext
<b>J</b><b>、編譯安裝libart_lgpl-2.3.17.tar.tar</b>
# tar zxvf libart_lgpl-2.3.17.tar.tar
# cd libart_lgpl-2.3.17
# mkdir -pv /usr/local/libart
# ./configure --prefix=/usr/local/libart #也有加上參數--disable-shared 意義暫時不明白
<b>K</b><b>、編譯安裝gd-2.0.32.tar.gz </b>
# tar zxvf gd-2.0.35.tar.gz
# cd gd-2.0.35
# mkdir -pv /usr/local/gd2
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg
# tar zxvf httpd-2.2.15.tar.gz
<b>注:這個源碼包特殊,最好安裝gd-2.0.32.tar.gz以上的包,不然會報錯,這個包一路裝下去也沒報錯。</b>
<b>L</b><b>、 </b>httpd-2.2.17.tar.gz
# cd httpd-2.2.17
# ./configure --prefix=/usr/local/apache2 --enable-so --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-rewrite --enable-deflate --enable-expires --disable-cgi --disable-cgid --disable-access --disable-env --disable-autoindex --disable-asis --disable-action --disable-negotiation --disable-include --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
# make install
# /usr/local/apache2/bin/apachectl -l #檢視編譯的子產品
# /usr/local/apache2/bin/apachectl –k start #啟動http服務,
輸入http://IP出現頁面表示apache安裝成功
<b>M</b><b>、安裝php</b>
1、 編譯安裝 zxvf php-5.3.3.tar.gz
# tar zxvf php-5.3.3.tar.gz
# mkdir -pv /usr/local/php5
# cd php-5.3.3
# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache/bin/apxs --with-gd --with-jpeg-dir=/usr/local/jpeg --with-zlib-dir=/usr/local/zlib --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype --with-mysql=/usr/local/mysql
--enable-mbstring=all--enable-mbregex --enable-ftp --enable-soap --with-xsl=/usr/local/libxslt --with-config-file-path=/usr/local/php5/etc --enable-zip --with-libXML-dir=/usr/local/libxml2 --enable[U1] -sockets <b>(這個enable-sockets重要一定要有) </b>
<b>N</b><b>整合apache和php</b>
修改httpd.conf檔案使支援php
# vi /usr/local/apache/conf/httpd.conf
檢視是否有這一行,如果沒有,需要增加上,理論上apache2.2.17與php5.3.4編譯安裝完成後,會自動生成這一行
LoadModule php5_module modules/libphp5.so
在第310行下面增加下面的内容,309與310行的内容是
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在這兩行下面加入下面的内容,就能支援php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
注:關于沒有php.ini的解決,從源碼目錄複制
cp php.ini-development /usr/local/php5/etc/php.ini #注php5.33以上都沒有php,ini檔案應該不叫php.ini-dist,這個檔案是php5.2.14的
<b>增加一個php測試頁面</b><b>(</b>現在的家目錄在$apache_home/htdocs下面)另外,測試完後不要忘記删掉這個頁面
# vi /usr/local/apache/htdocs/index.php
<BODY>
<? phpinfo();
?>
<b> </b><b>O</b><b>、安裝cacti</b>
注:請在編譯安裝cacti前安裝好apache+mysql+php 配置web目錄的具體方式在此不介紹,會在以後補充完整
1、mysql+apache+php
mysql /usr/local/mysql
apache /usr/local/apache
web目錄 /usr/local/apache/htdocs/cacti
php /usr/local/php5
<b>P</b><b>、安裝rrdtool</b>
<b>解決依賴關系</b>
<b>第一步:先安裝這個包</b>
# rpm –ivh rrdtool-devel-1.4.4-1.el5.wrl.i386.rpm
<b>第二步:要這樣安裝這樣的包 (這兩個包要同時安裝)</b>
# rpm –ivh rrdtool-1.4.4-1.el5.wrl.i386.rpm rrdtool-1.4.4-1.wrl.src.rpm
<b>Q</b><b>、安裝cacti</b>
# tar zxvf cacti-0.8.7g.tar.gz
# mv cacti-0.8.7g /usr/local/apache/htdocs/cacti
# vi /usr/local/apache/htdocs/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "127.0.0.1";
$database_username = "cacti"; #使用者名自己弄一個
$database_password = "mysql"; #密碼自己弄一個
$database_port = "3306";
# useradd cacti
# chown -R cacti:cacti /usr/local/apache/htdocs/cacti 這一步相當的重要,涉及到權限問題
# crontab -e -u cacti
*/5 * * * * /usr/local/php5/bin/php /var/www/cacti/poller.php > /dev/null 2>&1
注:可以先在cacti使用者中運作一次
su - cacti
/usr/local/php5/bin/php /usr/local/apache/htdocs/cacti/poller.php
<b>R</b><b>、啟動mysql建立cacti資料庫和使用者,導入資料庫模闆</b>
Mysql –u root –p mysql
> create database cacti;
> use cacti;
> source /usr/local/apache/htdocs/cacti/cacti.sql[U2]
> grant all privileges on cacti.* to cacti@localhost identified by 'mysql';
> grant all privileges on cacti.* to [email protected] identified by 'mysql';
> flush privileges;
<b>注解:grant all privileges on *.* to 使用者名@登入主機 identified by "密碼";給予全局權限</b>
<b>S</b><b>、安裝cactid</b>
# tar zxvf cacti-cactid-0.8.6k.tar.gz
# cd cacti-cactid-0.8.6k
# ./configure --with-mysql=/usr/local/mysql
# make install
# cp cactid cactid.conf /usr/local/cactid/
# vi /usr/local/cactid/cactid.conf
DB_Host 127.0.0.1
DB_Database cacti
DB_User cacti
DB_Pass mysql
DB_Port 3306
<b>T</b><b>、安裝snmp</b>
# yum install net-snmp-*
# <b>vi /etc/snmp/snmpd.conf</b>
com2sec notConfigUser default public
改為127.0.0.1 這一個是cacti監控伺服器的IP位址
com2sec notConfigUser 127.0.0.1[U3] public
access notConfigGroup "" any noauth exact systemview none none
改為
access notConfigGroup "" any noauth exact all[U4] none none
#view all included .1 80
去掉注釋#
view all included .1 80
<b>三、環境登入測試</b>
<b>3.1 首次安裝cacti </b>
用http://localhost/cacti首次登陸需要安裝,後面的安裝一直下去,知道完成。,
然後登陸的時候,初始的使用者名:admin 密碼:admin,是以,你需要作修改,把密碼修改為其它密碼,為了安全性,必修改。
<b>3.2 登陸界面[U5] </b>
<b>3.3 進入系統</b>
<b>3.4 系統詳細功能介紹</b>
<b> 3.4.1 Console 控制台</b>
<b> 3.4.2 graphs 圖型直覺圖</b>
<b>3.4.3要建立裝置在圖上所示</b>
點選create devices,要建立監控圖點選create graphs.view浏覽整個圖表
<b>3.4.4 管理工具</b>
Graph management 圖形管理;graph trees 樹形;data sources 資料來源 devices 裝置
解說devices的具體情況,如下圖
<b>3.4.5收集方法</b>
Collection methods 收集方法;Data Queries收據查詢; Data Input Methods資料輸入方法
具體界面圖如下:
<b>3.4.6模闆庫</b>
這裡面系統已經含有三個模闆庫,可以自行應用
<b>3.4.7 導入額外的莫闆塊,實作插件監控和别的功能</b>
Import templates 倒進去模闆,或者插件,監控别的功能
Import templates 導出圖表或者别的功能
導出隻能是xml格式的檔案。
<b>3.4.8 系統配置</b>
Setting,設定
<b>3.4.9 公用配置</b>
Utilities 公用配置
System Utilities該cacti系統資訊
User management 在這裡可以添加管理使用者和密碼
<b>以上就是功能清單介紹,具體的介紹,不說了,以後大家用了,就會明白了。</b>
<b>四、額外增加插件監控</b>
<b>mysql</b><b>資料庫監控</b>
<b>4.1 腳本下載下傳,編譯</b>
在http://faemalia.com/Technology/teMySQLcacti-20060810.tar.gz找到該資料包
tar -xzvf teMySQLcacti-20060810.tar.gz
cd teMySQLcacti
cp mysql_stats.php /usr/local/apache2/htdocs/cacti/scripts
cp dumpMemcachedStats.php /usr/local/apache2/htdocs/cacti/scripts
4.2 模闆導入
在cacti管理界面(Import Templates)導入cacti_host_template_temysql_host-step300-heartbeat600.xml
與cacti_host_template_memcached_host-step300-heartbeat600.xml模闆檔案。
4.3 建立監控Mysql需要的賬戶以及權限
配置MySQL伺服器,讓cacti所在機器能夠通路MySQL伺服器的狀态資訊,必須擁有”process”權限。如果要監控InnoDB狀态,還必須有”SUPER”權限。
mysql> grant process,super on *.* to 'cacti'@'%' identified by 'mysql';
mysql> grant all privileges on cacti.* to cacti@"%" identified by "mysql";
4.4 添加裝置
建立Graph。在Console頁籤下的左側菜單欄中選擇Devices,為要監控的主機建立一個Devices或選擇已有Devices。在Associated Graph Templates中添加想要監控MySQL狀态的Graph Templates(如teMySQL – Index Usage模闆,此套模闆是以teMySQL開頭的一系列模闆)。并點選最上面的Create Graphs for this Host連結,在Graph Templates的選擇框中選擇teMySQL - Locking and Slow,然後點選Create按鈕,出現以下WEB頁。
監控的對象有:
teMySQL - CPU Usage
teMySQL - Index Usage
teMySQL - InnoDB Buffers Pages/Mem
teMySQL - InnoDB File I/O
teMySQL - InnoDB InsBuffer
teMySQL - InnoDB Locks
teMySQL - InnoDB Row
teMySQL - Load Average
teMySQL - Locking and Slow
teMySQL - Network Usage
teMySQL - Old Command Stats
teMySQL - Old Handler Stats
teMySQL - Query Cache
teMySQL - Replication
teMySQL - Select Handler
teMySQL - Select Queries
teMySQL - Sorts
teMySQL - Temporary Objects
teMySQL - Threads/Abends
teMySQL - Volatile Handler
teMySQL - Volatile Queries
<b>4.5 腳本下載下傳及設定</b>
wget http://mysql-cacti-templates.googlecode.com/files/mysql-cacti-templates-1.1.3.tar.gz
tar -xzvf mysql-cacti-templates-1.1.3.tar.gz
cd mysql-cacti-templates-1.1.3
cp ss_get_mysql_stats.php /usr/local/apache/htdocs/cacti/scripts
修改ss_get_mysql_stats.php 檔案 第30行
$mysql_user = 'cacti';
$mysql_pass = 'mysql';
$cache_dir = "/usr/local/apache/htdocs/cacti/cacti/cache/";
設定準備監控的資料庫的賬戶相關資訊
mkdir /usr/local/apache/htdocs/cacti/cacti/cache/
chown -R cacti.cacti /xok.la/cacti/cache/
chmod 777 -R /usr/local/apache/htdocs/cacti/cacti/cache/
<b>注意:預設在擷取的資料/tmp/下,會有cacti不能讀取的情況。是以放在cacti目錄來。</b>
<b>4.6 建立監控Mysql需要的賬戶以及權限</b>
配置MySQL伺服器,讓cacti所在機器能夠通路MySQL伺服器的狀态資訊,必須擁有”process”權限。如果要監控InnoDB狀态,還必須有”SUPER”權限。
Mysql>use cacti;
mysql> grant all privileges on cacti.* to cacti@"%" identified by "mysql";
<b>4.7 模闆導入</b>
在cacti管理界面(Import Templates)導入cacti_host_template_x_db_server_ht_0.8.6i.xml。
<b>4.8 添加裝置</b>
建立Graph。在Console頁籤下的左側菜單欄中選擇Devices,為要監控的主機建立一個Devices或選擇已有Devices。在Associated Graph Templates中添加想要監控MySQL狀态的Graph Templates(如X MySQL Connections GT模闆)。并點選最上面的Create Graphs for this Host連結,在Graph Templates的選擇框中選擇X MySQL Connections GT,然後點選Create按鈕,出現以下WEB頁。
X InnoDB Buffer Pool Activity GT
X InnoDB Buffer Pool GT
X InnoDB I/O GT
X InnoDB I/O Pending GT
X InnoDB Insert Buffer GT
X InnoDB Log GT
X InnoDB Row Operations GT
X InnoDB Semaphores GT
X InnoDB Transactions GT
X MyISAM Indexes GT
X MySQL Binary/Relay Logs GT
X MySQL Command Counters GT
X MySQL Connections GT
X MySQL Files and Tables GT
X MySQL Handlers GT
X MySQL Network Traffic GT
X MySQL Processlist GT
X MySQL Query Cache GT
X MySQL Query Cache Memory GT
X MySQL Replication GT
X MySQL Select Types GT
X MySQL Sorts GT
X MySQL Table Locks GT
X MySQL Temporary Objects GT
X MySQL Threads GT
X MySQL Transaction Handler GT
<b>五、故障排查</b>
<b>5.1 第一次配置,引發錯誤</b>
前期工作都準備好了,都配置完成,然後進行輸入IP位址測試。會發現,有以下的報錯
date() [function.date]: It is not safe to rely on the system's timezone settings…………..後面緊跟着還有一大串的報錯,說明這個定義時間,有問題,如是,可以按照以下方法設定。
<b>1.</b><b>在頁頭使用date_default_timezone_set()設定我的預設時區為中原標準時間,路勁為:</b>
vi /usr/local/apache/htdocs/cacti/include/ global_constants.php
<b>即</b>
<?php
date_default_timezone_set("PRC");
?>就可以了。
<b></b>
2<b>。在php.ini中設定date.timezone的值為PRC,設定好以後的為:date.timezone=PRC,同時取消這一行代碼的注釋,即去掉前面的分号就可以了。</b>
我試了用第二種方法試了,不行,後來用了第一種方法,可以了,如是,報下面的錯。
<b>5.2 新手的,第二種報錯</b>
這個報錯的解決方法是,在安裝php配置擴張項的時候,如加載:--enable-sockets就可以了,參考PHP的加載指令
'./configure' \
'--prefix=/usr/local/php' \
'--with-apxs2=/usr/local/apache/bin/apxs' \
'--with-config-file-path=/usr/local/php/etc' \
'--with-mysql=/usr/local/mysql' \
'--with-libxml-dir=/usr/local/libxml2' \
'--with-gd' \
'--with-jpeg-dir' \
'--with-png-dir' \
'--with-bz2' \
'--with-iconv-dir' \
'--with-zlib-dir' \
'--with-openssl=/usr/local/openssl' \
'--with-mcrypt=/usr/local/libmcrypt' \
'--enable-soap' \
'--enable-gd-native-ttf' \
'--enable-memory-limit' \
'--enable-ftp' \
'--enable-mbstring' \
'--enable-exif' \
'--disable-ipv6' \
'--disable-cgi' \
'--enable-sockets' \
這個是參考指令,具體的指令,大家按照help來幫助就可以了。
大家想要清晰的文檔,請下載下傳文檔。有待更新。