PMM 说明

PMM(Percona Monitoring and Management) 是一款监控和分析 MySQL 服务的一套工具,可以从图形化的方式看到 MySQL 服务的各种性能指标,慢查询分析、连接数、线程状态、查询信息、缓存信息等等,对分析 MySQL 运行时问题很有帮助。

PMM 由两部分软件组成,PMM Client 和 PMM Server,前者负责在运行 MySQL 服务的地方收集信息,后者则获取由 PMM Client 收集的信息进行汇总聚合并呈现最终的表格图形到 Web 浏览器等。PMM Client 和 PMM Server 可以不用运行在同一台服务器,可能需要运行多个 PMM Client,如 MySQL 运行在集群模式下,需要在每台 MySQL 服务器部署 PMM Client 软件,将信息发送到 PMM Server 运行的服务器上。如果仅简单的跑一个 MySQL 实例,也可以将 PMM Client 和 PMM Server 都部署在 MySQL 服务器上。

下面这张是 PMM 的架构图:

PMM Client 软件包这边包含了几个软件,这里逐个解析:pmm-admin: PMM Client 安装之后,这个命令行工具就是需要来配置 PMM Client 和 PMM Server 连接以及配置收集 MySQL 服务。

node_exporter: Prometheus exporter 用于搜集一般系统信息。Prometheus 是一套开源的监控系统,采用时序数据库保存采集的监控数据,有多种 exporter 将第三方服务的监控信息发送到 Prometheus。PMM 工具安装的时候会就会安装好 Prometheus 的这些软件。

mysqld_exporter: 收集 MySQL 服务的 Prometheus exporter。

mongodb_exporter: PMM 也可以监控 MongoDB 服务,所以也带了 mongodb_exporter。

proxy_exporter: 收集 ProxySQL 信息的 exporter。

pmm-mysql-queries-0: 收集 MySQL 的查询性能信息,发送到 PMM Server 端的 QAN API。

PMM Server 软件包由包含以下组件:QAN API: 一个后端服务存储 PMM Client 发送过来的查询信息。

QAN APP: QAN Web 服务可视化查询分析数据。

Prometheus: PMM Server 包含 Prometheus 服务。

Grafana: 第三方的可视化图表软件使用 Prometheus 源提供数据。

看到 PMM 工具需要这么多软件并不需要担心,Percona 已经将 PMM Server 打包在 Docker 镜像,PMM Client 也在一个软件包安装,安装配置非常方便快速。

PMM 的安装

以下基于 Ubuntu 18.04 介绍如何将 PMM 安装在 MySQL 的服务器上。

PMM Server 安装

官方已经将 PMM Server 软件打包在 Docker 镜像,安装很简单。Ubuntu 18.04 已经有 Docker 服务。

1. 拉取最新的 PMM Server 镜像

tag 1 是 PMM Server 最新的镜像。

$ docker pull percona/pmm-server:1

2. 创建一个 pmm-data 容器

该容器用来初始化数据卷来保存数据,不要删除这个 pmm-data 容器。

$ 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 /bin/true

3. 创建和启动 pmm-server 容器

使用的数据卷为 pmm-data 容器设置的,其中端口可以设置为自己所需要的。

$ docker run -d

-p 8001:80

--volumes-from pmm-data

--name pmm-server

-e SERVER_USER=jsmith

-e SERVER_PASSWORD=pass1234

--restart always

percona/pmm-server:1

4. 查看 Docker 运行状态

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

d162c955fee9 percona/pmm-server:1 "/opt/entrypoint.sh" 13 days ago Up 13 days 443/tcp, 0.0.0.0:8001->80/tcp pmm-server

上述步骤执行完毕,则 PMM Server 已经开始运行,可以使用浏览器访问服务器的 8001 端口地址,如果你的机器与服务器是在同一个局域网的话。

这里加上了访问 PMM Server 的用户和密码参数,如果在内网环境是可靠的话,可以不用加这两个参数,则访问 PMM Server 不需要密码。

PMM Client 安装

1. 下载 DEB 包

去 https://www.percona.com/downloads/pmm/ 下载页获取指定系统的 DEB 包,或者直接 wget 下载链接。这里下载 Ubuntu 18.04 的安装包。

$ wget https://www.percona.com/downloads/pmm/1.17.1/binary/debian/bionic/x86_64/pmm-client_1.17.1-1.bionic_amd64.deb

2. 安装 DEB 包

$ sudo dpkg -i pmm-client_1.17.1-1.bionic_amd64.deb

3. 连接 PMM Client 到 PMM Server

sudo pmm-admin config --server 127.0.0.1:8001 --server-user jsmith --server-password pass1234

--server 指定 PMM Server 服务所在的地址和监听的端口,如果在同一台机器,写本地地址即可。

这里假定之前启动 PMM Server 时指定了用户名和密码,则 PMM Client 连接 PMM Server 需设置用户名和密码,如果没有指定,可以不需要这两个参数。

可以使用 pmm-admin ping 查看连接状态。

4. 配置收集 MySQL 数据

PMM 可以从 MySQL 的慢查询日志或者 Performance Schema 收集查询数据。从慢查询日志收集信息最多,但可能增加系统负载。 Performance Schema 从 MySQL 5.6 版开始加入,旧版本的 MySQL,只能设置从慢查询日志收集了。

4.1 创建一个 MySQL 用户给 PMM 使用

我们希望只提供一个受限的 MySQL 用户给 PMM 用来收集相关信息,如访问 Performance 数据库。

GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'pmm'@' localhost' IDENTIFIED BY 'pass' WITH MAX_USER_CONNECTIONS 10;

GRANT SELECT, UPDATE, DELETE, DROP ON performance_schema.* TO 'pmm'@'localhost';

或者使用 pmm-admin add mysql 命令的 –create-user 选项,自动创建相关权限的用户。可以在下面看到相关描述。

4.2 添加监控 MySQL 实例4.2.1 使用 Performance Schema 收集方式确保 MySQL 版本在 5.6(包含) 之后

确保开启了 Performance Schema。

ysql> SHOW VARIABLES LIKE 'performance_schema';

+--------------------+-------+

| Variable_name | Value |

+--------------------+-------+

| performance_schema | ON |

+--------------------+-------+

如果没有开启,需在 MySQL 配置文件 my.cnf 种设置, 然后重启 MySQL。

[mysql]

innodb_monitor_enable=all

performance_schema=ON

运行 pmm-admin 命令添加监控:

sudo pmm-admin add mysql --user pmm --password pass --query-source perfschema4.2.2 使用慢查询收集方式

确保 MySQL 开启了慢查询,在配置文件增加:

log_output=file

slow_query_log=ON

long_query_time=0

log_slow_admin_statements=ON

log_slow_slave_statements=ON

运行 pmm-admin 命令添加监控:

sudo pmm-admin add mysql --user pmm --password pass --query-source slowlog

可以查看增加监控命令的所有选项: pmm-admin add mysql --help

$ sudo pmm-admin add mysql --help

This command adds the given MySQL instance to system, metrics and queries monitoring.

When adding a MySQL instance, this tool tries to auto-detect the DSN and credentials.

If you want to create a new user to be used for metrics collecting, provide --create-user option. pmm-admin will create

a new user '[email protected]' automatically using the given (auto-detected) MySQL credentials for granting purpose.

Table statistics is automatically disabled when there are more than 10000 tables on MySQL.

[name] is an optional argument, by default it is set to the client name of this PMM client.

Usage:

pmm-admin add mysql [flags] [name]

Examples:

pmm-admin add mysql --password abc123

pmm-admin add mysql --password abc123 --create-user

pmm-admin add mysql --password abc123 --port 3307 instance3307

Flags:

--create-user create a new MySQL user

--create-user-maxconn uint16 max user connections for a new user (default 10)

--create-user-password string optional password for a new MySQL user

--defaults-file string path to my.cnf

--disable-binlogstats disable binlog statistics

--disable-processlist disable process state metrics

--disable-queryexamples disable collection of query examples

--disable-ssl disable ssl mode on exporter

--disable-tablestats disable table statistics

--disable-tablestats-limit uint16 number of tables after which table stats are disabled automatically (default 1000)

--disable-userstats disable user statistics

--force force to create/update MySQL user

-h, --help help for mysql

--host string MySQL host

--password string MySQL password

--port string MySQL port

--query-source string source of SQL queries: auto, slowlog, perfschema (default "auto")

--retain-slow-logs int number of slow logs to retain after rotation (default 1)

--slow-log-rotation enable slow log rotation (default true)

--socket string MySQL socket

--user string MySQL username

Global Flags:

-c, --config-file string PMM config file (default "/usr/local/percona/pmm-client/pmm.yml")

--service-port int service port

--skip-root skip UID check (experimental)

--timeout duration timeout (default 5s)

--verbose verbose output4.2.3 查看配置效果

$ sudo pmm-admin list

pmm-admin 1.17.1

PMM Server | localhost:8001 (password-protected)

Client Name | ubuntu

Client Address | 172.17.0.1

Service Manager | linux-systemd

-------------- ------------ ----------- -------- ------------------------------------------ ---------------------------------------------

SERVICE TYPE NAME LOCAL PORT RUNNING DATA SOURCE OPTIONS

-------------- ------------ ----------- -------- ------------------------------------------ ---------------------------------------------

mysql:queries ubuntu 42002 YES pmm:[email protected](/var/run/mysqld/mysqld.sock) query_source=perfschema, query_examples=true

linux:metrics ubuntu 42000 YES -

监控界面展示

现在用浏览器可以访问 PMM Server 安装机器的 IP + 端口地址即可以看到监控信息图表话界面,如果 PMM Server 启动时设置了账号和密码,此时需要进行账户验证。

服务器系统信息

MySQL

慢查询

mysql pmm 布署_给 mysql 安装 pmm 监控相关推荐

  1. mysql noinstall 布署_mysql-noinstall.zip免安装版的优化配置和精简

    1.准备工作 下载mysql的最新免安装版本mysql-noinstall-5.1.53-win32.zip,解压缩到相关目录,如:d:\\ mysql-noinstall-5.1.53-win32. ...

  2. mysql数据库连接配置路径_[zz]MySQL数据库主从同步安装与配置总结

    注意:本文出自"阿飞"的博客 ,如果要转载本文章,请与作者联系! 并注明来源: http://blog.sina.com.cn/s/blog_49fd52cf0100pog2.ht ...

  3. mysql数据库连接配置路径_关于mysql安装后更改数据库路径方法-linux环境

    使用yum安装mysql后,数据库路径一般和日志文件放在一个分区/var路径下. 久后,随着日志文件的增加,数据库的存放大小会显得不足,因此,建议安装mysql后将数据库路径更改到一个更加合理的分区存 ...

  4. mysql服务remove失败_《MySQL数据库》MySql简介、下载与安装

    一.MySQL的简介 MySQL,是一个关系型数据库管理系统,它是由瑞典MySQL AB公司开发的产品,之后被Sun公司收购:在2009年4月20日,Sun公司被Oracle公司收购:从此MySQl属 ...

  5. mysql 中有什么命令_常用mysql命令大全

    常用的MySQL命令大全 连接MySQL格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命 ...

  6. mysql数据库建仓范式_存mysql个数

    MySQL学习笔记之数据类型详解 注:以下内容针对MySQL5.0及以上版本 MySQL的数据类型非常多,选择正确的数据类型对于获得高性能至关重要,本文是我结合网上看到的一些blog加上<高性能 ...

  7. mysql 集群操作系统_高性能MySQL集群详解(二)

    一.通过Keepalived搭建MySQL双主模式的高可用集群系统 1.MySQL Replication介绍: MySQL Replication是MySQL自身提供的一个主从复制功能,其实也就是一 ...

  8. mysql主从数据库含义_(转)Mysql数据库主从心得整理

    管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...

  9. mysql报196271错误_超过mysql最大连接的异常

    超过mysql最大连接的错误 出现错误: com.mysql.jdbc.CommunicationsException: The driver was unable to create a conne ...

最新文章

  1. 剑指_数组中出现次数超过一半的数字
  2. SAP WM初阶之MIGO过账后自动调用LT06事务代码
  3. c语言无效参数视为严重错误,C语言编译错误:错误:‘-’参数类型无效(有‘int’)...
  4. rust(22)-不可变字符串借用
  5. Spring 事务core 模块-元数据metaData 模块
  6. 机器学习常用术语超全汇总
  7. select ...as_一起使用.select .map和.reduce方法可充分利用Ruby
  8. 小汤学编程之JavaScript学习day02——运算符、流程控制与循环、函数
  9. SQLi-LABS Less-2,联合注入+报错注入
  10. Error: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not found
  11. python函数可以提高代码执行速度吗_Python代码运行速度慢?这五种方法很管用
  12. Ubuntu 16.04 LTS 安装Mongodb 3.4
  13. linux配置yum源、mount及yum命令
  14. jQuery操作input值总结
  15. 摄像头网络安全如何保障
  16. java WebSocket客户端断线重连 | 实用代码框架
  17. 快门光圈感光度口诀_光圈、快门、感光度,弄懂摄影基本算入门了
  18. 携程网被黑,谁干的??
  19. 微信小程序开发入门教程(八)
  20. wo zai gong si de yi tian

热门文章

  1. 10kv开关柜价格_一进三出10KV负荷开关环网柜乌兰察布
  2. SharpZipLib压缩解压
  3. struts2文件上传,下载
  4. linux内核 task cmd,linux内核
  5. 【离散数学中的数据结构与算法】二 欧几里得算法与裴蜀等式
  6. BUUOJ reverse SimpleRev (爆破)
  7. vmware 5.51 下安装Ubuntu Linux8.04安装vmware tools不成功
  8. 链表题目汇总(python3)
  9. 【JS】实时监控页面,input框数值自动求和
  10. bwa比对软件的使用以及其结果文件(sam)格式说明