天天看点

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来帮助就可以了。

大家想要清晰的文档,请下载文档。有待更新。