Anemometer 慢查询日志监控平台

环境介绍:

yum用的是163的源: CentOS6-Base-163.repo

操作新系统:Red Hat Enterprise Linux Server release 6.4

数据库版本:5.6.27

PHP版本:5.3.3 #要求php版本大于5.3

percona-toolkit:2.2.17

10.10.203.102【web服务器】

10.10.203.93 【被监控端】

需要在两台机器上都做的操作,步骤上有备注。

操作步骤:

  1. percona-toolkit工具的安装

10.10.203.93和10.10.203.102 都安装

pt-query-digest是percona-toolkit里面一个工具,其作用就是分析慢查询日志,将MySQL慢查询日志进行统计并友好的显示出来。

# wget https://www.percona.com/downloads/percona-toolkit/2.2.17/RPM/percona-toolkit-2.2.17-1.noarch.rpm

# rpm -ivh percona-toolkit-2.2.17-1.noarch.rpm

# which pt-query-digest

/usr/bin/pt-query-digest

至此,pt-query-digest安装完毕

2. php web环境的搭建

10.10.203.102 上操作

yum install httpd httpd-devel

yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml php-bcmath

修改时区:

yum安装的php,配置文件默认在/etc/php.ini.

#对pgm用户授权【10.10.203.102和10.10.206.93】

mysql> grant all on *.* to ‘pgm‘@‘10.10.%‘ identifiedby ‘pgmfetion‘;

mysql> flush privileges;

3. 安装Anemometer并配置

下载地址: https://github.com/box/Anemometer

下载完后名为:Anemometer-master.zip

unzip Anemometer-master.zip

mv Anemometer-master /var/www/html/anemometer

#导入初始化库表 【10.10.203.102和10.10.206.93】

cd /var/www/html/anemometer

mysql -S /tmp/mysql3307.sock -uroot -psecret <install.sql

mysql -S /tmp/mysql3307.sock -uroot -psecret <mysql56-install.sql

#修改配置文件

cd /var/www/html/anemometer/conf

cp sample.config.inc.php config.inc.php

vim config.inc.php

启动http服务

/etc/init.d/httpd start

访问地址:

http://10.10.203.102/anemometer/

页面能打开,但是不会有数据。

4. 导入慢查询日志

查看慢查询的时间,为了测试,我改的很小。慢查询日志的位置slow.log没有指定,默认会在data目录下。

请参照readme 执行相应命令:
For pt-query-digest version < 2.2

    $ pt-query-digest --user=anemometer --password=superSecurePass                       --review h=db.example.com,D=slow_query_log,t=global_query_review                       --review-history h=db.example.com,D=slow_query_log,t=global_query_review_history                       --no-report --limit=0% \ 
                      --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" \ 
                      /var/lib/mysql/db.example.com-slow.log
    

For pt-query-digest version >= 2.2

    $ pt-query-digest --user=anemometer --password=superSecurePass                       --review h=db.example.com,D=slow_query_log,t=global_query_review                       --history h=db.example.com,D=slow_query_log,t=global_query_review_history                       --no-report --limit=0% \ 
                      --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" \ 
                      /var/lib/mysql/db.example.com-slow.log

我的版本大于 2.2,所以执行下边的命令。

10.10.203.102【web服务器】机器:

pt-query-digest --user=pgm --password=pgmfetion --port=3307                       --review h=10.10.203.102,D=slow_query_log,t=global_query_review                       --history h=10.10.203.102,D=slow_query_log,t=global_query_review_history                       --no-report --limit=0%                       --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /data/mysql/mysql3307/data/slow.log

10.10.203.93【被监控端】机器:

pt-query-digest --user=pgm --password=pgmfetion --port=7777                       --review h=10.10.203.93,D=slow_query_log,t=global_query_review                       --history h=10.10.203.93,D=slow_query_log,t=global_query_review_history                       --no-report --limit=0%                       --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\""  /data/mysql/mysql7777/data/slow.log

重新访问: http://10.10.203.102/anemometer/

两个DB实例,选择你要查看的DB.

5. 日志切割:

可以用日志切割工具logrotate来自动切割慢日志,并在切割后自动执行分析命令,mysql.slow.conf 配置文件如下:

/data/mysql/mysql3307/data/slow.log
{
create 660 mysql mysql
su root mysql
dateext
daily
missingok
rotate 360
notifempty
copytruncate

postrotate

pt-query-digest --user=pgm --password=pgmfetion --port=3307                       --review h=10.10.203.102,D=slow_query_log,t=global_query_review                       --history h=10.10.203.102,D=slow_query_log,t=global_query_review_history                       --no-report --limit=0%                       --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /data/mysql/mysql3307/data/slow.log-$(date +%Y%m%d)
endscript
}

通过定时任务来执行logrotate -f mysql.slow.conf,也可以将配置文件放到/etc/logrotate.d目录下。

10.10.206.93 操作同上。

备注:

(1)日志切换,也可以自己写个脚本,方法不限。

(2)目前不支持5.7的数据库,导入默认初始化表结构会报异常,默认时间戳在5.7中发生了变化。

https://github.com/box/Anemometer/issues/175

The install sql file does not create the tables properly during first setup. It appears to be due to a change in the default timestamp format in 5.7.

时间: 2024-11-03 22:20:13

Anemometer 慢查询日志监控平台的相关文章

ElasticSearch实战-日志监控平台

1.概述 在项目业务倍增的情况下,查询效率受到影响,这里我们经过讨论,引进了分布式搜索套件——ElasticSearch,通过分布式搜索来解决当下业务上存在的问题.下面给大家列出今天分析的目录: ElasticSearch 套件介绍 ElasticSearch 应用场景和案例 平台架构 下面开始今天的内容分享. 2.ElasticSearch 套件 2.1LogStash LogStash是一个开源的.免费的日志收集工具,属于Elastic家族的一员,负责将收集的日志信息输送到ElasticSe

开启MYSQL慢查询日志,监控有效率问题的SQL

操作步骤 首先使用用户登录linux客户端,执行命令 mysql -u mjb -p, mjb是数据库用户名,系统会提示输入密码,输入密码回车,登录成功 输入命令show variables like 'slow_query_log', 页面会显示是否开启了慢查询日志,slow_query_log =ON,代表已经开启 如果未开启,则需要执行该命令set global slow_query_log=on; 通过设置log_queries_not_using_indexes开启为使用索引的监控 输

Sentry错误日志监控你会用了吗?

无论作为新手还是老手程序员在程序的开发过程中,代码运行时难免会抛出异常,而且项目在部署到测试.生产环境后,我们便不可能像在开发时那样容易的及时发现处理错误了.一般我们都是在错误发生一段时间后,错误信息才会传递到开发人员那里,然后一顿操作查看程序运行的日志,就熟练使用awk和grep去分析日志,但是往往我们会因为日志中缺少上下文关系,导致很难分析真正的错误是什么. Sentry由此应运而生成为了解决这个问题的一个很好的工具,设计了诸多特性帮助开发者更快.更方面.更直观的监控错误信息. 关于日志管理

CentOS 7 使用ELK套件搭建日志分析和监控平台

1 概述 ELK套件(ELK stack)是指ElasticSearch.Logstash和Kibana三件套.这三个软件可以组成一套日志分析和监控工具. 由于三个软件各自的版本号太多,建议采用ElasticSearch官网推荐的搭配组合:http://www.elasticsearch.org/overview/elkdownloads/ 2 环境准备 2.1 软件要求 本文把ELK套件部署在一台CentOS单机上. 具体的版本要求如下: 操作系统版本:CentOS 6.4: JDK版本:1.

CentOS下使用ELK套件搭建日志分析和监控平台

1 概述 ELK套件(ELK stack)是指ElasticSearch.Logstash和Kibana三件套.这三个软件可以组成一套日志分析和监控工具. 由于三个软件各自的版本号太多,建议采用ElasticSearch官网推荐的搭配组合:http://www.elasticsearch.org/overview/elkdownloads/ 2 环境准备 2.1 软件要求 具体的版本要求如下: 操作系统版本:CentOS 6.4: JDK版本:1.7.0: Logstash版本:1.4.2: E

使用Mysql慢查询日志对有效率问题的SQL进行监控

输入命令:show variables like 'slow%' 可以发现 slow_query_log 为 OFF(默认),表示未开启慢查询日志 slow_query_log_file 为慢查询日志文件 开启慢查询日志有两种方法 方法一: 临时开启        set global slow_query_log = on; #没有使用索引的sql将会被记录入慢查询日志        set global log_queries_not_using_indexes = on;   #查询时间大

Anemometer+Percona Toolki实现MySQL慢查询日志可视化功能

最近发现了一个挺好用的MySQL慢查询日志可视化的工具,网上也能找到很多资料,在这里结合自己的实际情况重新整理一下. 1. 实验环境 1.1 系统环境: 操作系统:CentOS 6.5 64位 主机地址:10.0.0.26 主机名:mysql01 mysql版本:mysql-5.6.36 1.2 可视化软件环境: http环境:LAMP 可视化软件:Anemometer-master.zip, percona-toolkit-3.0.11-1.el6.x86_64.rpm, perl-TermR

【项目动态】PIGOSS BSM IT运维监控平台 北京万兴建筑集团有限公司

案例所属行业:企业集团 项目实施时间:2016年 1 项目背景 北京万兴建筑集团有限公司成立于1985年,是一个以房建.市政.装饰.地产开发为四大支柱产业的大型综合性建筑企业集团.万兴集团注册资本金3.06亿元,现有总资产10多亿元,企业拥有一大批高素质专业技术管理人才,其中中高级职称专业技术人员300余人,国家一级.二级 注册建造师200人.年开复工面积500万平方米左右,建安产值约50亿元左右.万兴集团还积极参与社会公益事业,累计捐款1000多万元. 为保障各项业务的稳定运行,需要对IT基础

基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台

开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中,不断的填坑走弯路,以至于整个团队被坑埋掉.做GPS平台这么多年,以前就了解到一些开发团队过于关注某一种语言的优势,比如过于选用GO,Erlang,python,php等技术,最后团队熟悉这些技术的关键人员离职了,都没人接手,不能不说是个悲剧.所以说平台的技术架构选型要注重的是稳健,均衡而不是偏激,