当前位置:首页 > 文章列表 > 数据库 > MySQL > Percona Monitoring and Management监控MySQL性能

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架构

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
            • 如图所示

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

            pmm-client-myhost

            注册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 serverVersionsRecommended source
              MySQL5.1-5.5Slow query log
              MySQL5.6+Performance Schema
              MariaDB10.0+Performance Schema
              Percona Server for MySQL5.7, 8.0Slow query log
              Percona XtraDB Cluster5.6, 5.7, 8.0Slow 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
            • 再次查询已经存在mysql类型的service

            docker exec pmm-client pmm-admin remove :mysql,mongodb,postgresql,proxysql,haproxy,externaldocker exec pmm-client pmm-admin remove mysql pmm-client-myhost

            具体使用

            • Nodes OverView概览信息展示

            Nodes OverView
            • Nodes分类详细信息

            Nodes分类详细信息
            • MySQL Instances Overview概览信息

            MySQL Instances Overview
            • MySQL Performance Schema Details

            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启动方式(启动、停止、重启、开机启动)
上一篇
CentOS7中Mysql的systemctl启动方式(启动、停止、重启、开机启动)
Prometheus&Grafana性能监控
下一篇
Prometheus&Grafana性能监控
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 笔灵AI生成答辩PPT:高效制作学术与职场PPT的利器
    笔灵AI生成答辩PPT
    探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
    15次使用
  • 知网AIGC检测服务系统:精准识别学术文本中的AI生成内容
    知网AIGC检测服务系统
    知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
    24次使用
  • AIGC检测服务:AIbiye助力确保论文原创性
    AIGC检测-Aibiye
    AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
    30次使用
  • 易笔AI论文平台:快速生成高质量学术论文的利器
    易笔AI论文
    易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
    42次使用
  • 笔启AI论文写作平台:多类型论文生成与多语言支持
    笔启AI论文写作平台
    笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
    35次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码