CentOS/RHEL上经过Cacti监控mysql

 1、准备工做php

环境:Centos 5.4 x86_64html

所需软件:mysql

    http
    Php
    Php-mysql
    Php-snmp
    Mysql
    Perl-DBD-MySQL
    Php-pdo
    rrdtool
    Net-snmp
    Net-snmp-libs
    Net-snmp-utils

下载相关软件linux

 

 

cd /usr/local/src/
wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz


2、环境介绍nginx

主监控机是Centos 5.4 x86_64

主监控机IP=10.0.0.52web

3、安装配置sql

(1)在主监控机上安装apache+php+gd的web环境,推荐编译安装,再也不赘述,本处方便起见用yum装了数据库

yum install php php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL

(2)在主监控机上安装rrdtool,rrdtool依赖的包过多,因此选择增长源,而后用yum安装apache

增长源centos

vi /etc/yum.repos.d/CentOS-Base.repo

在文件末尾增长如下部分

[dag]

name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1
yum install rrdtool

(3)配置snmp

vi /etc/snmp/snmp.conf

将下边这行中的default

com2secnotConfigUser default public

改成127.0.0.1

com2secnotConfigUser 127.0.0.1 public

将下边这行中的systemview

access notConfigGroup "" any noauth exact systemview none none

改成all

access notConfigGroup "" any noauth exact all none none

将下边这行的注释“#”号去掉

#view all included .1 80

重启snmpd服务

service snmpd restart

(4)安装cacti

把解压后的包移动到你的相应的web目录

tar xvf cacti-0.8.7e.tar.gz
mv cacti-0.8.7e /var/www/html/cacti

(5)在数据库中建库、受权、导入数据库结构

注意导入cacti.sql时该文件的路径

mysql -p
mysql> create database cacti;
mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option;
mysql> grant all privileges on cacti.* to cacti@127.0.0.1 identified by 'cacti' with grant option;
mysql> use cacti;
mysql> source /var/www/html/cacti/cacti.sql;

配置cacti以链接数据库

vi /var/www/html/cacti/include/config.php

(6)浏览器下配置

用浏览器打开 http://10.0.0.52/cacti ,会显示 cacti的安装指南,设置好就不会再出现了。

点击 “Next”

选择“New Install”,点击“Next”

指定 rrdtool、 php、 snmp 工具的 Binary 文件路径,确保全部的路径都是显示“ FOUND”,没有 “NOT FOUND”的,点击 Finish 完成安装。

Cacti 默认的用户名与密码是 admin,输入用户名与密码,点击 login

为了安全的缘由,第一次登陆成功后,cacti 会强制要求你更改一个新的 password ,输入新密码并确认密码,点击 save ,进入 cacti 控制台界面:

点击 graphs ,查看cacti 监控本机的图表:

(7)增长入一个计划任务,使得 cacti 每五分钟生成一个监控图表。

crontab -e

加入以下内容。注意poller.php的路径

*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1

确保 /var/www/html/cacti/rra/目录存在

若是暂时未看到图表,能够手工执行,生成图表

php /var/www/html/cacti/poller.php > /dev/null 2>&1

(8)使用 Cacti 监控 Linux 主机

在被监控的linux主机上安装net-snmp

yum install net-snmp
vi /etc/snmp/snmpd.conf

更改如下部分

将下边这行中的default

com2secnotConfigUser default public

改成10.0.0.52(cacti)服务器的地址)

com2secnotConfigUser 10.0.0.52 public

将下边这行中的systemview

access notConfigGroup "" any noauth exact systemview none none

改成all

access notConfigGroup "" any noauth exact all none none

将下边这行的注释“#”号去掉

#view all included .1 80
service snmpd restart

  
4、配置cacti监控mysql

(一)安装并配置mysql-cacti模板

wget http://mysql-cacti-templates.googlecode.com/files/mysql-cacti-templates-1.1.2.tar.gz
tar -xzvf mysql-cacti-templates-1.1.2.tar.gz
cd mysql-cacti-templates-1.1.2
cp ss_get_mysql_stats.php /xok.la/cacti/scripts

能够看到里面有多个监控项目,报告监控apache和nginx.我这只测试mysql,mysql相关的就2个文件:

模板文件:cacti_host_template_x_db_server_ht_0.8.6i.xml

插件:ss_get_mysql_stats.php

修改ss_get_mysql_stats.php 文件 第30行

$mysql_user = 'cacti';
$mysql_pass = 'cacti';
$cache_dir  = "var/www/html/cacti/cache/";

设置准备监控的数据库的帐户相关信息

mkdir  /var/www/html/cacti/cache/
chmod 777 -R /var/www/html/cacti/cache/

默认在获取的数据/tmp/下,会有cacti不能读取的状况。因此放在cacti目录来。


(二)建立监控Mysql须要的帐户以及权限

配置MySQL服务器,让cacti所在机器可以访问MySQL服务器的状态信息,必须拥有”process”权限。若是要监控InnoDB状态,还必须有”SUPER”权限。

 

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

(三)模板导入

在cacti管理界面(Import Templates)导入cacti_host_template_x_db_server_ht_0.8.6i.xml。


(四)添加设备

建立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页。

cacti 监控 mysql

5、常见故障排除

安装完毕在浏览器上没法看到数据的png图片。看apache的log

    若是出现:

    ========================

    [Thu Feb 09 15:12:24 2006] [error] [client 127.0.0.1] File does not exist: /var/www/html/favicon.ico

    ERROR: opening ‘/var/www/html/cacti/rra/localhost_mem_buffers_3.rrd’: Permission denied

    PS:解决办法:关闭selinux,便可解决问题。

PS:以上没法获取数据图大多和poller.php,cmd.php权限有关。

当cacti 有图没有数据时,并且状态为nan的错误

PS:这个极可能是snmp的问题,执行如下命令,没有获得如图的结果。就说明snmp不支持64位MIB库。从新编译安装snmp

snmpwalk -c public -v 2c 127.0.0.1 IF-MIB::ifHCInOctets

IF-MIB::ifHCInOctets.1 = Counter64: 7437357

IF-MIB::ifHCInOctets.2 = Counter64: 353773IF-MIB::ifHCInOctets.3 = Counter64: 0

PS:被监控主机没法得到snmp信息,还有多是对方主机snmp版本和当前主机的snmp版本不一致致使的。

PS:rrdtools版本要一致,特别是在升级cacti时候。版本不一致,可能rra数据格式不一样。就没法处理。

排错思路

1,查看log下的日志文件。通常那里会有提示

2,测试SNMP是否是工做正常 snmpwalk -v 2c -c public hostIP   if正常的话会出现一些数据。不正常会出现一些错误,也会有对应的错误提示。

3,自动运行poller.php没有。有没有加入cacti的的用户。。有没有给cacti用户写入rra/ log/的权限。。

4,crontab –u cactiuser –e 为cactiuser加上自动运行poller.php的任务:*/5     *       *       *       *       root    /usr/local/bin/php /usr/local/share/cacti/poller.php /dev/null 2>&1

5分钟刷新一次数据。你也能够根据须要还设置。

5。把cacti目录里的cmd.php和poller.php文件加下运行的权限。

转自:http://www.unixwind.com/09/05/620.html

相关文章
相关标签/搜索