Percona Monitoring and Management监控MySQL性能
来源:SegmentFault
2023-01-22 15:55:53
0浏览
收藏
大家好,今天本人给大家带来文章《Percona Monitoring and Management监控MySQL性能》,文中内容主要涉及到MySQL、docker、percona-server、监控工具,如果你对数据库方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!
Query Analytics (QAN) 可以在时间段内分析MySQL查询性能,除了客户端QAN代理外,它还包括以下内容
- QAN API是用于存储和访问由在PMM客户端上运行的QAN代理收集的查询数据的后端.
- QAN Web App应用程序是一个用于可视化收集的查询分析数据的Web应用程序.
Metrics Monitor 提供对MySQL或MongoDB Server实例至关重要的指标的历史视图,它包括以下内容:
- VictoriaMetrics, 时序型数据库. (Replaced Prometheus in PMM 2.12.0.)
- ClickHouse 是第三方列式存储数据库,方便查询分析功能.
- Grafana 是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能.
- Percona Dashboards 是我们开发的Grafana的一组仪表板.
PMM Client架构

cd /opt/docker-compose touch docker-compose_pmm-server.yml
- 编辑
services: pmm-server: image: percona/pmm-server:2 hostname: pmm-server container_name: pmm-server restart: always logging: driver: json-file options: max-size: "10m" max-file: "5" ports: - "443:443" volumes: - data:/srv volumes: data:With this approach, data is stored in a volume, not in a
docker volume ls local pmm-server_data
- 如果存在垃圾数据,可以尝试以下命令进行清除
docker stop pmm-server docker rm pmm-server
docker inspect pmm-server_data [ { "CreatedAt": "2021-05-28T16:16:15+08:00", "Driver": "local", "Labels": { "com.docker.compose.project": "pmm-server", "com.docker.compose.version": "1.29.2", "com.docker.compose.volume": "data" }, "Mountpoint": "/var/lib/docker/volumes/pmm-server_data/_data", "Name": "pmm-server_data", "Options": null, "Scope": "local" } ]docker volume rm -f pmm-server_data
- 或者使用以下方式将数据存储在
version: '2' # version 2 of docker-compose is not "old" version, it's the actual version, # see below for explanation: # https://stackoverflow.com/a/53636006/961092 services: # Percona Monitoring and Management server pmm-data: image: percona/pmm-server:2 container_name: pmm-data hostname: pmm-data volumes: - /srv entrypoint: /bin/true pmm-server: image: percona/pmm-server:2 hostname: pmm-server container_name: pmm-server restart: always # logging settings limit used disk space logging: driver: json-file options: max-size: "10m" max-file: "5" ports: - "443:443" # uncomment expose section in order to proxy requests through another container instead of # accessing the container directly # expose: # - "443" volumes_from: - pmm-data- docker-compose运行docker容器
docker-compose -p pmm-server -f docker-compose_pmm-server.yml up -d
docker exec pmm-server pmm-admin status
- 成功后会出现以下信息
cd /opt/docker-compose/pmm-clienttouch docker-compose.yml
- 编辑
version: '2'services: pmm-client: image: percona/pmm-client:2 hostname: pmm-client-myhost container_name: pmm-client restart: always ports: - "42000:42000" - "42001:42001" logging: driver: json-file options: max-size: "10m" max-file: "5" volumes: - ./pmm-agent.yaml:/etc/pmm-agent.yaml - pmm-client-data:/srv environment: - PMM_AGENT_CONFIG_FILE=/etc/pmm-agent.yaml entrypoint: pmm-agent setup --server-insecure-tls --server-address=192.168.9.140:443 --server-username=admin --server-password=pmm-reportervolumes: pmm-client-data:
- 生成配置文件
cd /opt/docker-compose/pmm-clienttouch pmm-agent.yaml && chmod 0666 pmm-agent.yamlwith mode 0666 so container user will be able to write to it
- 使用以下命令启动后会立即停下,并自动映射当前目录下pmm-agent.yaml
docker-compose up pmm-client
Creating volume "pmm-client_pmm-client-data" with default driverCreating pmm-client ... doneAttaching to pmm-clientpmm-client | INFO[2021-05-28T11:51:35.526+00:00] Loading configuration file /etc/pmm-agent.yaml. component=setuppmm-client | INFO[2021-05-28T11:51:35.542+00:00] Using /usr/local/percona/pmm2/exporters/node_exporter component=setuppmm-client | INFO[2021-05-28T11:51:35.542+00:00] Using /usr/local/percona/pmm2/exporters/mysqld_exporter component=setuppmm-client | INFO[2021-05-28T11:51:35.542+00:00] Using /usr/local/percona/pmm2/exporters/mongodb_exporter component=setuppmm-client | INFO[2021-05-28T11:51:35.542+00:00] Using /usr/local/percona/pmm2/exporters/postgres_exporter component=setuppmm-client | INFO[2021-05-28T11:51:35.542+00:00] Using /usr/local/percona/pmm2/exporters/proxysql_exporter component=setuppmm-client | INFO[2021-05-28T11:51:35.542+00:00] Using /usr/local/percona/pmm2/exporters/rds_exporter component=setuppmm-client | INFO[2021-05-28T11:51:35.542+00:00] Using /usr/local/percona/pmm2/exporters/azure_exporter component=setuppmm-client | INFO[2021-05-28T11:51:35.542+00:00] Using /usr/local/percona/pmm2/exporters/vmagent component=setuppmm-client | Checking local pmm-agent status...pmm-client | pmm-agent is not running.pmm-client | Registering pmm-agent on PMM Server...pmm-client | Registered.pmm-client | Configuration file /etc/pmm-agent.yaml updated.pmm-client | Please start pmm-agent: `pmm-agent --config-file=/etc/pmm-agent.yaml`.
查看
# Updated by `pmm-agent setup`.---id: /agent_id/0c514bcf-41ac-4de8-9d2c-57cb4b8523bflisten-address: 127.0.0.1listen-port: 7777server: address: 192.168.9.1xx:443 username: admin password: pmm-reporter insecure-tls: truepaths: exporters_base: /usr/local/percona/pmm2/exporters node_exporter: /usr/local/percona/pmm2/exporters/node_exporter mysqld_exporter: /usr/local/percona/pmm2/exporters/mysqld_exporter mongodb_exporter: /usr/local/percona/pmm2/exporters/mongodb_exporter postgres_exporter: /usr/local/percona/pmm2/exporters/postgres_exporter proxysql_exporter: /usr/local/percona/pmm2/exporters/proxysql_exporter rds_exporter: /usr/local/percona/pmm2/exporters/rds_exporter azure_exporter: /usr/local/percona/pmm2/exporters/azure_exporter vmagent: /usr/local/percona/pmm2/exporters/vmagent tempdir: /tmp pt_summary: /usr/local/percona/pmm2/tools/pt-summary pt_pg_summary: /usr/local/percona/pmm2/tools/pt-pg-summary pt_mysql_summary: /usr/local/percona/pmm2/tools/pt-mysql-summary pt_mongodb_summary: /usr/local/percona/pmm2/tools/pt-mongodb-summaryports: min: 42000 max: 51999debug: falsetrace: false
- 将
# entrypoint: pmm-agent setup --server-insecure-tls --server-address=192.168.9.140:443 --server-username=admin --server-password=pmm-reporter
- docker-compose运行docker容器
docker-compose -p pmm-client -f docker-compose.yml up -dRecreating pmm-client ... done
- 通过以下命令访问pmm-client命令查看pmm-client状态信息
docker exec pmm-client pmm-admin status
- 成功后会出现以下信息
Agent ID: /agent_id/0c514bcf-41ac-4de8-9d2c-57cb4b8523bfNode ID : /node_id/8d7cb9d5-c407-4c87-ba0f-ee28e68d2725PMM Server: URL : https://192.168.9.140:443/ Version: 2.17.0PMM Client: Connected : true Time drift : 81.61µs Latency : 585.095µs pmm-admin version: 2.16.0-release-2.16-ebcf4316 pmm-agent version: 2.16.0-release-2.16-ebcf4316Agents: /agent_id/50269d19-7663-4650-8c66-48356ce2ccde vmagent Running /agent_id/5a86413f-0c1b-4312-aac0-99f6f1a07ecc node_exporter Running
- 服务启动成功后会自动注册node节点
Service type Service name Address and port Service IDAgent type Status Metrics Mode Agent ID Service IDpmm_agent Connected /agent_id/0c514bcf-41ac-4de8-9d2c-57cb4b8523bf node_exporter Running push /agent_id/5a86413f-0c1b-4312-aac0-99f6f1a07ecc vmagent Running push /agent_id/50269d19-7663-4650-8c66-48356ce2ccde
- 如图所示

- pmm-server、pmm-client在同一台服务器上,目前pmm-client还未添加数据库service

注册Client
当pmm-client与pmm-server服务在同一台机器上,pmm-client服务启动成功后,会自动执行注册Client。
如果非同一台机器,则需要手动执行注册Client。
- 向pmm-server注册pmm-client节点
docker exec pmm-client pmm-admin config --server-insecure-tls --server-url=https://admin:pmm-exporter@192.168.9.1xx:443 192.168.9.1xx generic pmm-client-myhost
- 注册成功提示以下信息
Checking local pmm-agent status...pmm-agent is running.Registering pmm-agent on PMM Server...Registered.Configuration file /etc/pmm-agent.yaml updated.Reloading pmm-agent configuration...Configuration reloaded.Checking local pmm-agent status...pmm-agent is running.
监控数据库
- 首次使用先检查一下,确认是没有mysql类型的service
docker exec pmm-client pmm-admin inventory list services --service-type=mysql
Services list.Service type Service name Address and Port Service ID
- 创建并授权数据库用户
CREATE USER 'pmm'@'localhost' IDENTIFIED BY 'pmm-client' WITH MAX_USER_CONNECTIONS 10;GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'pmm'@'localhost';FLUSH PRIVILEGES;
- 确保mysql数据库中PERFORMANCE_SCHEMA参数值处于开启状态
MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数,5.5版本默认关闭,5.6版本默认开启。
root@localhost 14:43: [(none)]>SHOW VARIABLES LIKE 'performance_schema';+--------------------+-------+| Variable_name | Value |+--------------------+-------+| performance_schema | ON |+--------------------+-------+1 row in set (0.00 sec)
Data source recommendations
Database server Versions Recommended source MySQL 5.1-5.5 Slow query log MySQL 5.6+ Performance Schema MariaDB 10.0+ Performance Schema Percona Server for MySQL 5.7, 8.0 Slow query log Percona XtraDB Cluster 5.6, 5.7, 8.0 Slow query log - 将pmm-client节点中的mysql数据库service添加至pmm-server
docker exec pmm-client pmm-admin add mysql --query-source=perfschema --username=pmm --password=pmm-client pmm-client-myhost 192.168.9.1xx:3306
MySQL Service added.Service ID : /service_id/5baab9a7-1e3a-441e-8d9e-27ff7b5b5da8Service name: pmm-client-myhostTable statistics collection enabled (the limit is 1000, the actual table count is 476).
- 浏览器页面开始展示mysql相关信息

- 再次查询已经存在mysql类型的service
docker exec pmm-client pmm-admin remove <service-type><service-name><service-type>:mysql,mongodb,postgresql,proxysql,haproxy,externaldocker exec pmm-client pmm-admin remove mysql pmm-client-myhost</service-type></service-name></service-type>
具体使用
- Nodes OverView概览信息展示

- Nodes分类详细信息

- MySQL Instances Overview概览信息

- MySQL Performance Schema Details

参考文档
https://www.percona.com/softw...
https://www.percona.com/doc/p...
https://www.percona.com/doc/p...
https://www.percona.com/doc/p...
https://gist.github.com/paska...
文中关于mysql的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Percona Monitoring and Management监控MySQL性能》文章吧,也可关注golang学习网公众号了解相关技术文章。
- 编辑
版本声明
本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
CentOS7中Mysql的systemctl启动方式(启动、停止、重启、开机启动)
- 上一篇
- CentOS7中Mysql的systemctl启动方式(启动、停止、重启、开机启动)
- 下一篇
- Prometheus&Grafana性能监控
查看更多
最新文章
-
- 数据库 · MySQL | 1天前 |
- MySQL数值函数大全及使用技巧
- 117浏览 收藏
-
- 数据库 · MySQL | 2天前 |
- 三种登录MySQL方法详解
- 411浏览 收藏
-
- 数据库 · MySQL | 3天前 |
- MySQL数据备份方法与工具推荐
- 420浏览 收藏
-
- 数据库 · MySQL | 3天前 |
- MySQL数据备份方法与工具推荐
- 264浏览 收藏
-
- 数据库 · MySQL | 4天前 |
- MySQL索引的作用是什么?
- 266浏览 收藏
-
- 数据库 · MySQL | 5天前 |
- MySQL排序原理与实战应用
- 392浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQLwhere条件查询技巧
- 333浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQL常用数据类型有哪些?怎么选更合适?
- 234浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQL常用命令大全管理员必学30条
- 448浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQL高效批量插入数据方法大全
- 416浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQL性能优化技巧大全
- 225浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQL数据备份4种方法保障安全
- 145浏览 收藏
查看更多
课程推荐
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
查看更多
AI推荐
-
- ChatExcel酷表
- ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。
- 3164次使用
-
- Any绘本
- 探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。
- 3376次使用
-
- 可赞AI
- 可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。
- 3405次使用
-
- 星月写作
- 星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。
- 4509次使用
-
- MagicLight
- MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。
- 3785次使用
查看更多
相关文章
-
- golang MySQL实现对数据库表存储获取操作示例
- 2022-12-22 499浏览
-
- golang进程内存控制避免docker内oom
- 2022-12-22 160浏览
-
- golang进程在docker中OOM后hang住问题解析
- 2022-12-22 105浏览
-
- 搞一个自娱自乐的博客(二) 架构搭建
- 2023-02-16 244浏览
-
- B-Tree、B+Tree以及B-link Tree
- 2023-01-19 235浏览

