使用Cacti监控MySQL 端口不是3306
来源:互联网 发布:qq群淘宝客没有订单 编辑:程序博客网 时间:2024/05/16 01:51
本文将概述一些自己在使用中的问题(并不会给出step by step的使用介绍),以供参考,详细信息请留言或。
既然别人的轮子已经很好用了,我自己就不发明了。使用Cacti可以较为快速搭建一个MySQL性能监控平台:
Cacti是一个用于监控网络流量、主机负载的工具,并可以将这些采集到的数值信息转换为图形展示。Cacti使用RRDtool实现数据存储和绘图,可以方便、美观的实现数据图形化。通过给Cacti增加MySQL的监控模板,就能够实现对MySQL相关参数的监控和图形展示。
关于Cacti配合MySQL模板的安装和使用可以参考文章:
- Cacti Manual 0.8.7
- mysql-cacti-templates
- CentOs下Cacti和Rrdtool安装配置
- 给Cacti安装mysql服务监控插件
- Cacti FAQ
- 非官方的FAQ
一、安装中的问题
Cacti的安装是一个复杂的工程,需要安装PHP(需要某些模块)、httpd、RRDtool等。
1.php缺少某些模块
如果你用的是默认安装php,你可能甚至连mysql模块都没有,这时候,你需要给你php安装上一些需要的模块。例如:mysql,curl等。
2.RRDtool版本
Cacti使用RRDtool存储数据、绘制图形。这里需要注意的是,在安装好RRDtool后,必需要到Cacti的后台,填写RRDtool的相关配置,例如安装路径、版本等。
二、使用中的问题
1.数据接近0的时候,显示奇怪的数据
如下图,在数据接近于0的时候我们会看到数据显示的是100m:
事实上,这里的单位 m 表示微,即需要除以1000。100m表示0.1。
Cacti中使用如下单位:M(兆)、K(千)、m(微)。
2.日志中的奇怪错误
在Cacti运行一段时间后,我在Cacti的log中看到如下错误:CMDPHP: Poller[0] Host[16] DS[25] WARNING: Result from CMD not valid. Partial Result: U…… 貌似这是一个bug。将Poller Type改为spine可以避免这个问题。
3.采集到异常数据
Cacti有时会采集到一些异常的数据,例如,采集到一些非常大(比正常数据大100倍)。这时候,绘制图形的时候,会看到纵坐标的比例会被这些数据拉大到K甚至M,以至于正常数据已经无法观察了。
导致这种异常数据的原因有很多,这里给出两个剔除这些异常的办法
- 先用rrdtool dump出RRA文件中的数据,删除异常数据,然后使用rrdtool restore数据
- 修改Cacti模板中的Data Source模板,设置一个合理的最大值(Maximum Value)
4.采集使用的MySQL用户需要什么权限
因为需要执行SHOW /*!50002 GLOBAL */ STATUS、SHOW SLAVE STATUS、SHOW /*!50000 ENGINE*/ INNODB STATUS等权限,所以一般需要如下权限设置:
GRANT PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'cacti'@'%'
需要注意的是,不需要ALL PRIVILEGES。
三、一些改进
1.修改采集、展示数据的步长(interval)
默认下,Cacti是每隔五分钟采集一次数据,并存放到rra文件中,现在希望修改为每隔一份采集、展示相关数据。我们需要做如下修改:
- 选择console=>Settings=>Poller,把其中的Poller Interval和Cron Interval改为Every Minute。
- 修改crontab中的采集脚本为*/1 * * * * php /www/cacti/poller.php > /dev/null 2>&1
- 最后,你还需要修改Data Template中的step值,将其修改为60
2.批量增加Device
如果待监控的主机数量很多的时候,一台台添加Device是很痛苦的,可以通过编写一些脚本来实现批量增加Device。
这里提供一个编写批量脚本的思路:通过编写一个页面接收添加Device时,需要Post的表单的数据,然后使用curl模拟表单提交。实践证明这种方式是可行的,事实上,我就使用这样的脚本来批量添加Device的。
3.我的主机端口不是3306
使用mysql-cacti-templates模板的时候,如果你的端口不是3306的话,mysql-cacti-templates中的脚本是无法正确的连接目标主机的MySQL的。这时候,只需对模板中的采集脚本做一个小小的修改就可以了。大约在脚本的226行下面增加如下内容
$conn = @mysql_connect($options['host'], $user, $pass); //Modified by orczhou //Now we'll try some other Ports.if ( !$conn ) { $conn = @mysql_connect($options['host'].":3307", $user, $pass);}
这就是我在使用过程中遇到的一些问题与解决,你有什么好的经验呢?分享一下吧
- 使用Cacti监控MySQL 端口不是3306
- CACTI监控mysql
- cacti监控mysql
- 【cacti】监控mysql
- cacti监控mysql
- 使用cacti监控服务器
- cacti监控使用
- 使用cacti监控机器
- Cacti监控MySQL多实例
- cacti监控mysql 主从复制
- 使用cacti监控windows主机
- 使用cacti监控虚接口
- 给Cacti安装mysql服务监控插件
- cacti监控mysql数据库的方法
- CentOS/RHEL上通过Cacti监控mysql
- Cacti监控配置指南---Mysql(1)
- Cacti监控配置指南---Mysql(2)
- 配置 CACTI 监控 MySQL 数据库状态
- linux下的播放器
- OTcl与C++,NS2是如何识别并调用执行协议(转)
- Sql Server2005 查询死锁进程和抛弃进程
- jQuery插件datepicker的使用详解
- button按钮不错的样式
- 使用Cacti监控MySQL 端口不是3306
- 在PowerDesigner12 逆向工程DataBase SQl时出现:unable to list the tables 信息
- IT管理人才必备的十大能力
- 存储过程自动消失
- ADO连接SQL数据库的几种方式
- 使用批处理脚本将log分类
- Ext Js 4实现的一个搜索框,调用的是谷歌的api,使用谷歌来搜索
- Linux的五个查找命令:find,locate,whereis,which,type
- agile manifesto - session1