天天看點

Cacti監控軟體詳細配置 ——及功能介紹

<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&amp;can=2&amp;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" &gt;&gt; /etc/ld.so.conf

# ldconfig

# echo "export PATH=$PATH:/usr/local/mysql/bin" &gt;&gt; /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 &amp;&amp; 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

&lt;BODY&gt;

&lt;? phpinfo();

?&gt;

<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 &gt; /dev/null 2&gt;&amp;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

&gt; create database cacti;

&gt; use cacti;

&gt; source /usr/local/apache/htdocs/cacti/cacti.sql[U2]  

&gt; grant all privileges on cacti.* to cacti@localhost identified by 'mysql';

&gt; grant all privileges on cacti.* to [email protected] identified by 'mysql';

&gt; 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&gt; grant process,super on *.* to 'cacti'@'%' identified by 'mysql';

mysql&gt; 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&gt;use cacti;

mysql&gt; 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>

&lt;?php

date_default_timezone_set("PRC");

?&gt;就可以了。

<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來幫助就可以了。

大家想要清晰的文檔,請下載下傳文檔。有待更新。