为了账号安全,请及时绑定邮箱和手机立即绑定

手把手实现用Cacti监控资源+完美监控MySQL等服务

标签:
MySQL

简介

Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。   

CACTI 软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。

 

cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

 

Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。

 

snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。

Cacti的官方网站:http://www.cacti.net 

本文示例:

文中所有在终端输入的命令都以灰色底色覆盖,如:

        vi /etc/snmp/snmp.conf

文中所有在打开的文件中加入/修改的内容都用青色底色覆盖,如:

        view systemview included .1.3.6.1.2.1

 

接下来就来实现CACTI的完整安装配置,以及图形化界面的介绍和MySQL的监控。

一、准备工作

环境:RedHat 5.4

所需软件:(都使用yum的方式直接装好)

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

下载相关软件

cd /usr/local/src/

wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz

二、环境介绍

主监控机是Redhat 5.4

主监控机IP=192.168.0.33

三、安装配置

(1)在主监控机上安装apache+php+gd的web环境,推荐编译安装,在此直接用yum安装。

yum install -y 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安装

yum install -y rrdtool rrdtool-devel rrdtool-php

如果yum源无法提供可以到http://pkgs.repoforge.org/rrdtool/下载下来然后使用以下命令

yum localinstall --nogpgcheck

(3)配置snmp

vi /etc/snmp/snmp.conf

service snmpd start

service mysqld start

(4)安装cacti

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

tar xvf cacti-0.8.7g.tar.gz

mv cacti-0.8.7g /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

#主要修改连接数据库所对应的用户和密码

#启动httpd开启web服务

service httpd start

 

(6)浏览器下配置

#用浏览器打开 http://192.168.0.33/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

# 更改以下部分

# 开启snmpd服务

service snmpd restart

 

四、cacti常用插件安装

要安装别的插件前,先要安装cacti的一个patch--Plugin Architecture,才能支持插件

下载地址:http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7g-PA-v2.8.tar.gz

tar xvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

cp -R cacti-plugin-arch/* /var/www/html/cacti/

cd /var/www/html/cacti/

mysql -ucacti -pcacti cacti < pa.sql

patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff

vi include/config.php

修改为$url_path = “/cacti/”;

登陆,启用PA。启用方法见后图

 

监控插件Monitor的安装(其他插件安装方式相同)

tar zxvf monitor-latest.tgz

mv monitor/ /var/www/html/cacti/plugins/monitor

登陆安装启用对应的插件即可。

启用PA以及监控插件的方法:

   

  

 

五:使用脚本监控相关软件——使用脚本监控MySQL

(1)脚本下载以及设置

wget http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz

tar zxvf better-cacti-templates-1.1.8.tar.gz

cd better-cacti-templates-1.1.8

cp scripts/ss_get_mysql_stats.php /var/www/html/cacti/scripts/

我们这只测试mysql,mysql相关的有2个文件:

模板文件:./templates/cacti_host_template_x_mysql_server_ht_0.8.6i-sver1.1.8.xml

插件:./scriptsss_get_mysql_stats.php

修改ss_get_mysql_stats.php 文件

vm /var/www/html/cacti/scripts/scriptsss_get_mysql_stats.php 

(2)创建监控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";

(3)模板导入

我们将模板从Linux中载下来,进入浏览器,手动导入文件

在cacti管理界面(Import Templates)导入cacti_host_template_x_mysql_server_ht_0.8.6i-sver1.1.8.xml。

(4)添加设备

创建Graph。在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。

在Associated Graph Templates中添加想要监控MySQL状态的Graph Templates(如X MySQL Processlist GT模板)。

    

 

六、常见故障排除

1.安装完毕在浏览器上无法看到数据的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

  关闭selinux,即可解决问题。

注意:无法获取数据图大多和poller.php,cmd.php权限有关。

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

这个很可能是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版本不一致导致的。都用version 1是一种解决方法

如果都用version 1,需要把所有监控机和被监控机的snmpd.conf改一下

vi /etc/snmp/snmpd.conf

将下边这行

view systemview included .1.3.6.1.2.1.1

改为

view systemview included .1.3.6.1.2.1

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

七、排错方法以及思路

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

2,测试SNMP是不是工作正常 snmpwalk -v 2c -c public hostIP   

如果正常的话会出现一些数据。不正常会出现一些错误,也会有对应的错误提示。

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。把cacti目录里的cmd.php和poller.php文件加下运行的权限。

 

 

©著作权归作者所有:来自51CTO博客作者魏延是反贼的原创作品,如需转载,请与作者联系,否则将追究法律责任

mysqlCacti监控网络Linux_软件/架构


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消