MySQL性能监控慢日志分析利器

简介

入题之前先讲讲为什么写这篇文章,这就不得不提起MySQL与percona,阿里基于mysql开发了AliSQL,写这篇文章的时候阿里已经将其开源,percona是一家领先的MySQL咨询公司,该公司基于mysql开发了Percona Server,Percona Server是一款独立的数据库产品,为用户提供了换出其MySQL安装并换入Percona Server产品的能力。percona除了开发了多款数据库产品,还开发了数据库监控程序:pmm(Percona Monitoring and Management)服务器,我们都知道mysql自身缺乏实时的监控功能,而此时pmm-server就恰好解决了我们这一难题,好了废话不多说,先看一张pmm server的监控图。
PMM

常规的监测项目都有了,最吸引我的一点在于它的慢日志分析功能,如下图所示:
PMM

安装步骤

1. 在vmware或者virtualbox上安装ubuntu14.04 Server镜像,可以选择清华大学的镜像,下载速度快

2. 系统装完后接下来就要在ubuntu上安装docker了,执行命令:

1
curl -sSL https://get.daocloud.io/docker | sh

等待完成即可,这是一种安装docker比较快的方式,而且安装的docker版本也比较高,安装完成后输入docker -v看到下面信息说明安装完成:
Docker version 17.04.0-ce, build 4845c56

3. 安装完docker,接下来就需要下载pmm server的镜像,由于下载国外镜像速度慢而且网络不稳定,这里推荐一个中科大的开源docker镜像:

在 Docker 的启动参数中加入:

1
--registry-mirror=https://docker.mirrors.ustc.edu.cn

Ubuntu 用户(包括使用 systemd 的 Ubuntu 15.04)可以修改 /etc/default/docker 文件,加入如下参数:

1
DOCKER_OPTS="--registry-mirror=https://docker.mirrors.ustc.edu.cn"

其他 systemd 用户可以通过执行 sudo systemctl edit docker.service 来修改设置, 覆盖默认的启动参数:

1
2
3
[Service]
ExecStart=
ExecStart=/usr/bin/docker -d -H fd:// --registry-mirror=https://docker.mirrors.ustc.edu.cn

4. 接下来下载pmm镜像的速度就会大大提升,执行下面命令:

1
docker pull percona/pmm-server:1.2.0

然后等待完成即可。

5. 创建PMM 数据容器:

1
2
3
4
5
6
7
docker create \
-v /opt/prometheus/data \
-v /opt/consul-data \
-v /var/lib/mysql \
-v /var/lib/grafana \
--name pmm-data \
percona/pmm-server:1.2.0 /bin/true

6. 运行PMM server容器:

1
2
3
4
5
6
docker run -d \
-p 80:80 \
--volumes-from pmm-data \
--name pmm-server \
--restart always \
percona/pmm-server:1.2.0

7. 安装PMM客户端:

1
rpm -ivh https://www.percona.com/downloads/pmm-client/pmm-client-1.2.0/binary/redhat/7/x86_64/pmm-client-1.2.0-1.x86_64.rpm

8. 连接PMM服务器:

1
pmm-admin config --server pmm服务器主机地址

9. 配置mysql监控:

1
pmm-admin add mysql --user root --password 123456 --host mysql ip地址 --port 3306 instace3306

注:pmm-client收的监控数据来源有这么几方面

  • MySQL所在机器的系统指标
  • MySQL的performance_schema库
  • slow-log(慢查询日志–mysql要开启慢日志功能)

如果我们想收集a和c中的指标的话,最好还是将pmm-client部署在MySQL所在机器

10. 至此访问pmm服务器ip地址即可查看接口

-------------本文结束感谢您的阅读-------------