目前需求要求能实时监控分析 MySQL 慢查询,发现一个监控工具 PMM,部署简单,功能比较强大,用起来效果不错,分享下这个工具。
官方 demo 展示

安装

需要安装一个 server,一个 client。

这里有个坑,开始我也是百度按照上面的教程安装,但是最后启动 agent 的时候死活连不上 server,最后还是去官网仔细看了看才发现 pmm 有两个大版本 1.x 和 2.x,server 和 client 版本必须一致。

这里介绍 2.x

server 部分

下载镜像

docker pull percona/pmm-server:2

创建数据卷

sudo  docker create -v /srv --name pmm-data percona/pmm-server:2 /bin/true

创建容器

sudo  docker run -d -p 80:80 -p 443:443 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server:2

server 部署启动好后,访问:IP:映射的端口 就能进入仪表盘界面。
初始账号密码 admin:admin

mysql 部分

如果是 msyql 5.6+ 版本 mysql 基本可以不用管。
MySQL 5.6+ 或 MariaDB 10.0+ 版本推荐使用 performance_schema

数据库参数设置

SET GLOBAL innodb_monitor_enable=all

innodb_monitor_enable=all
performance_schema=ON

MySQL 5.5 或 MariaDB 5.5 只能使用 slow-log 的模式

log_output=file
slow_query_log=ON
long_query_time=0
log_slow_admin_statements=ON
log_slow_slave_statements=ON

client 部分

支持系统的 rpm 文件获取

这里是 centos7 的 rpm

yum install -y https://downloads.percona.com/downloads/pmm2/2.15.0/binary/redhat/7/x86_64/pmm2-client-2.15.0-6.el7.x86_64.rpm

启动 client

sudo pmm-admin config --server-insecure-tls --server-url=https://admin:admin@<IP Address>:443

添加监控项

sudo pmm-admin add mysql --query-source perfschema --host  mysql地址 --username root --password mysql密码  mysql-perfschema-test

--query-source

支持两种模式,一种 perfschema,还有一种 slow-log
推荐 perfschema,mysql5.6 以上的 mysql 默认是开启了这个的不用去设置。

--disable-tablestats-limit

更改表的数量(默认值是 1000),超过该数量将禁用每个表的统计信息收集,可以使用这个配置,增大数量。

查看监控服务实例启动状态

pmm-admin list

Running 状态服务就启动好了。

移除监控实例

pmm-admin remove  实例名称

进入http://ip:/graph/d/pmm-qan/pmm-query-analytics端口

就能看到所有 sql 的分析了

具体使用就不去写了,可以参考:

perfschema 介绍

pmm mysql 监控指标介绍


↙↙↙阅读原文可查看相关链接,并与作者交流