首先安装LNMP环境,要求PHP-5.3以上版本.参考:http://isadba.com/?p=82 或者参考 http://isadba.com/?p=572

然后下载Anemometergit clone https://github.com/box/Anemometer.git anemometer

配置LNMP将下载下来的anemometer部署到LAMP上面,可以通过web打开页面,会提示你没有配置网站.mysql -uroot -p < mysql56-install.sql #导入需要的表结构mysql -uroot -p < install.sql #这个表结构一定要自己导进去,不然会缺少两个字段,导致不能区分主机和db.

安装percona的toolkit工具yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpmyum install percona-toolkit -y

修改配置文件cd /var/www/anemometer/conf/cp sample.config.inc.php config.inc.php修改35-40行的数据库配置,连接到anemometer的数据库,当然,你数据库也需要授权.

#使用pt-query-digest工具,将一些慢查询数据导入数据库pt-query-digest -user=anemometer -password=anemometerpass -review h=192.168.11.28,D=slow_query_log,t=global_query_review \-history h=192.168.11.28,D=slow_query_log,t=global_query_review_history \-no-report -limit=0% -filter=” \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\”$HOSTNAME\”" \/usr/local/mariamysql/data/localhost-slow.log

执行命令以后,h=192.168.11.28,D=slow_query_log,t=global_query_review_history和global_query_review表已经已经有一些数据了,你可以尝试手工查询.

现在可以再通过web访问anemometer,就能看到相关信息了.

到这一步,anemometer算是跑通了,下一步就是真正的部署使用.

现在的环境是,有多台MySQL服务器的slow log需要监控.我们有三种方案.1、手工导入的install.sql里面的global_query_review_history表包含了hostname_max和db_max,通过hostname_max区分把多个数据源存放到一个表里.2、每台mysql把处理后的binlog数据放到当前服务器,然后anemometer连接对应的服务器获取数据.3、所有的mysql把处理后的binlog数据统一存放到anemometer所在的数据库上,然后通过表名或者数据库名字区分.

如果选择第二种或者第三种方案,需要定义多个数据源,并且anemometer_collect.sh.里面对应的history_db_name要对应.在conf/config.inc.php总修改数据源的配置,注意可以不同的数据源指向的是不同的db,一般可以按照项目区分.在conf/config.inc.php总修改数据源的配置,注意不同的数据源指向的是不同的db.

$conf['datasources']['192.168.11.28'] = array(

'host' => '192.168.11.28',

'port' => 3306,

'db' => 'slow_query_log',

'user' => 'anemometer',

'password' => 'anemometerpass',

'tables' => array(

'global_query_review' => 'fact',

'global_query_review_history' => 'dimension'

),

'source_type' => 'slow_query_log'

);

$conf['datasources']['192.168.11.17'] = array(

'host' => '192.168.11.28',

'port' => 3306,

'db' => 'slow_query_log_192_168_11_17',

'user' => 'anemometer',

'password' => 'anemometerpass',

'tables' => array(

'global_query_review' => 'fact',

'global_query_review_history' => 'dimension'

),

'source_type' => 'slow_query_log'

);

在所有MySQL上部署scripts/anemometer_collect.sh收集慢查询日志.anemometer_collect.sh脚本有几个注意点1、PATH里面是否有mysql的bin路径2、如果history_db_name需要根据不同机器做修改,和config.inc.php定义的对应3、注意原始慢查询日志路径是否正确4、通过设置long_query_time设置慢查询的时长5、所有MySQL服务器上需要安装percona-toolkit的工具箱.

并且在anemometer_collect.sh当前目录下增加下面两个配置文件.连接到本地MySQL服务器的账号,需要有super权限.

[root@localhost scripts]# cat anemometer-localhost.cnf

[client]

user=root

password=

host=localhost

socket=/tmp/mysql.sock

连接到anemometer服务器数据库的账号,需要对anemometer_collect.sh脚本中history_db_name对应的数据库有all privileges权限.

[root@localhost scripts]# cat anemometer-server.cnf

[client]

user=anemometer

password=anemometerpass

使用下面命令调试脚本.

sh -x ./anemometer_collect.sh --interval 30 --history-db-host 192.168.11.17 --defaults-file ./anemometer-localhost.cnf --history-defaults-file ./anemometer-server.cnf

调试通过以后,在crontab添加如下命令,实现定期采集慢查询日志到数据库存储.间隔可以根据自己的需求设置,我的设置基本上是采集所有的慢查询日志.*/1 * * * */opt/anemometer_collect.sh -interval 59 -history-db-host 192.168.11.28 -defaults-file /opt/anemometer-localhost.cnf -history-defaults-file /opt/anemometer-server.cnf

由于anemometer不能跟踪SQL是哪个账号,哪个主机的请求,所以我们有必要保存原始日志,来做例外分析.下面是我修改后的anemometer_collect.sh,增加了可定制的慢查询问题,mysql path,慢查询时长变量设置,保存历史的慢查询日志.

[root@localhost scripts]# cat anemometer_collect.sh

#/usr/bin/env bash

# anemometer collection script to gather and digest slow query logs

# this is a quick draft script so please give feedback!

#

# basic usage would be to add this to cron like this:

# */5 * * * * anemometer_collect.sh --interval 15 --history-db-host anemometer-db.example.com

#

# This will have to run as a user which has write privileges to the mysql slow log

#

# Additionally there are two sets of permissions to worry about: The local mysql instance, and the remote digest storage instance

# These are handled through defaults files, just create a file in the: my.cnf format such as:

# [client]

# user=

# password=

#

# use --defaults-file for permissions to the local mysql instance

# and use --history-defaults-file for permissions to the remote digest storage instance

#

#

PATH=/usr/local/mysql-6/bin/:$PATH

socket= defaults_file= rate_limit= mysqlopts=

interval=30

digest='/usr/bin/pt-query-digest'

#set log prefix

LOG_PREFIX='/usr/local/mariamysql/data/'

#set slow log history file

LOG_HISTORY_FILE='/var/log/slow_query_log_history_3306'

long_query_time=0.1

#SET IP

HOSTNAME=`/sbin/ifconfig | grep 'inet addr' | egrep '172.|192.' | awk '{print $2}' | awk -F ":" '{print $2}'`

PORT=3306

HOSTNAME="$HOSTNAME\:$PORT"

history_db_host=

history_db_port=3306

history_db_name='slow_query_log'

history_defaults_file=

help () {

cat {arg}) and \$event->{hostname}=\" $hostname\"="" tmp_slow_log"="" #store="" history="" slow_log="" cat="" >>="" $log_history_file

觉得文章有用?立即:

和朋友一起 共学习 共进步!

猜您喜欢

mysql 安时间查询格式_安装MySQL慢查询日志工具Anemometer相关推荐

  1. mysql数据库开启远程连接_安装MySQL数据库并开启远程访问

    一.安装MySQL数据库 MySQL安装在系统盘下(C:\Program Files),方便系统备份. 1.双击安装程序,勾选"I accept the license terms" ...

  2. mysql 8.0远程连接_安装mysql 8.0.17并配置远程访问的方法

    一.安装前准备 查看数据库版本命令: mysql --version mysql-community-common-8.0.17-1.el7.x86_64.rpm mysql-community-li ...

  3. mysql返回指定时间格式_【MySQL】查询日期返回指定格式

    查询日期返回固定格式 SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS nowDate FROM table_name // 2020-09-25 2 ...

  4. 安装mysql会产生哪些文件_安装mysql详细步骤有哪些?

    我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...

  5. 安装mysql后服务里面没有_安装mysql后没有看到服务怎么办?

    我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...

  6. mysql 指定账户已存在_安装mysql时告诉我指定的账户已存在?

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. mysql unix格式_将MySQL Unix-Timestamp格式转换为日期格式?

    为此,语法如下select date_format(from_unixtime(yourColumnName),'%b %d, %Y %l:%i %p PDT') from yourTableName ...

  8. mysql初始数据库出错_安装MySQL提示initialize database(初始化数据库)错误解决方法...

    1.若原来电脑上安装过MySQL,需要将原来安装的软件彻底卸载干净再进行安装 (1)首先停止原MySQL服务 我的电脑--右击--管理--进入服务--找到MySQL--关闭此服务 (2)进入卸载程序控 ...

  9. mac下安装mysql 5.7.11卡住_【mysql】Mac下安装mysql5.7 完整步骤,大坑已解决

    最近使用Mac系统,准备搭建一套本地web服务器环境.因为Mac系统自带PHP和apach,但是没有自带mysql,所以要手动去安装mysql,本次安装mysql最新版5.7.17. 1.官网下载 点 ...

最新文章

  1. 综述:激光雷达全景分割的传统点云聚类方法的技术总结
  2. jQuery.delegate() 函数详解
  3. 常用的数据分析图表及方法介绍
  4. python趣味编程10例-Python趣味编程与精彩实例
  5. C++控制台没有引用的头文件也会编译的原因
  6. java rc2加密_急求java RC2加密算法
  7. ubuntu16.04 升级内核
  8. 02-普通轮播图-上下滚动
  9. 数据结构之遍历二叉树
  10. .net core精彩实例分享 -- 泛型和集合
  11. 了解FPS屏幕刷新率
  12. E人E本让中国人多了一种选择
  13. [转载] html转word table样式_[Python02] Python-docx包的使用,快速处理 Word 文件!
  14. 将bean转换成键值列表
  15. Hello,CNDS!(第一次博客)
  16. 联想y7000p电池固件下载_联想拯救者Y7000P安装双系统win10+ubuntu18.04
  17. selnium 判断页面加载完成_Selenium 的页面加载以及几种等待的问题
  18. 105份墨天轮“国产化迁移”精品文档汇总(含TiDB、openGauss、上云等)
  19. 微信小程序 开发运营接入指南 设计规则
  20. Mobile-Unet

热门文章

  1. 2022工作中遇到的问题二
  2. manjaro-i3wm 新装系统没有声音问题解决
  3. 全国计算机一级考试介绍难不难,计算机一级难不难?有什么考试技巧?
  4. sqlite expert 教程
  5. 河北省保定市谷歌卫星地图下载
  6. 插入mysql数据库时间相差14个小时
  7. GOM引擎登录器配置教程
  8. 韦东山第1期-学习笔记-4
  9. MAC版本 12.2下 Lightroom2021版本闪退解决办法
  10. Android运行ListView的代码,Android ListView组件详解及示例代码