• PMM2 MySQL监控管理工具


    目录

    1. PMM介绍

    2. 安装PMM服务端

    2.1 安装docker

    2.1.1 下载docker

    2.1.2 上传docker包

    2.1.3 启动守护进程

    2.1.4 查看docker状态

    2.2 安装PMM

    2.2.1 下载镜像

    2.2.2 load镜像

    2.2.3 查看镜像

    2.2.4 创建容器

    2.2.5 运行镜像

    2.2.6 验证PMM服务器

    2.2.7 删除PMM服务

    3. 安装PMM客户端 

    3.1 下载客户端

     3.2 上传解压

    3.3 配置环境变量

    3.4 安装客户端

    3.5 配置客户端

    4. 添加mysql监控服务

    4.1 创建用户

    4.2 选择和配置数据源

    4.2.1 Slow query log数据源配置(预备工作)

    4.2.2 Performance Schema数据源配置(预备工作)

    4.2.3 Query response time配置

    4.2.4 User statistics配置

    4.3 添加MySQL Service

    4.3.1 添加Slow query log

    4.3.2 添加Performance Schema

    4.3.3 图形界面添加服务

     4.3.4 查看服务

    4.3.5 删除服务

    4.3.6 从PMM服务注销PMM客户端

    5. 官网命令手册

    6. 界面清单

    7. 界面仪表盘管理

    8. 告警管理

    9. PMM架构 


    1. PMM介绍

    Percona Monitoring and Management (PMM)是一个针对MySQL、PostgreSQL和MongoDB的开源数据库监控、管理和可视化解决方案的工具,分为服务端和客户端。

    • PMM有多种安装方式,我以docker方式安装
    • PMM客户端安装在你需要监控的主机里

    2. 安装PMM服务端

    官方文档安装

    Docker - Percona Monitoring and Management

    2.1 安装docker

    2.1.1 下载docker

    https://download.docker.com/linux/static/stable/x86_64/

    2.1.2 上传docker包

    手动下载tar包后上传到Linux主机, 并将解压出来的docker文件内容移动到 /usr/bin/ 目录下

    1. [root@localhost soft]# tar -zxvf docker-20.10.6.tgz
    2. [root@localhost soft]# cp docker/* /usr/bin

    2.1.3 启动守护进程

    [root@localhost soft]# dockerd &

    2.1.4 查看docker状态

    查看是否成功,看到下面结果说明docker启动成功

    1. [root@localhost soft]# docker ps
    2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

     

    2.2 安装PMM

    2.2.1 下载镜像

    PMM服务端docker镜像下载地址

    https://www.percona.com/downloads

    2.2.2 load镜像

    也可以不下载镜像,直接pull镜像,会从网上下载(docker pull percona/pmm-server:2.41.1)

    1. [root@localhost soft]# docker load < pmm-server-2.41.1.docker
    2. c83f386e1dda: Loading layer [==================================================>] 114.2MB/114.2MB
    3. c3536f8fe5be: Loading layer [==================================================>] 2.254GB/2.254GB
    4. Loaded image: percona/pmm-server:2.41.1

    2.2.3 查看镜像

    1. [root@localhost soft]# docker images
    2. REPOSITORY TAG IMAGE ID CREATED SIZE
    3. percona/pmm-server 2.41.1 a71c917d72f2 2 months ago 2.34GB

    2.2.4 创建容器

    1. [root@localhost bin]# docker create --volume /srv \
    2. > --name pmm-data percona/pmm-server:2.41.1 /bin/true

    2.2.5 运行镜像

    1. [root@localhost bin]# docker run --detach --restart always \
    2. > --publish 443:443 \
    3. > --volumes-from pmm-data --name pmm-server \
    4. > percona/pmm-server:2.41.1

    2.2.6 验证PMM服务器

    运行PMM Server之后,可以使用运行容器的主机的IP地址访问PMM Web界面,服务器ip:443 即可打开服务端webui,访问默认用户密码:admin / admin,第一次进去提示修改密码

    2.2.7 删除PMM服务

    1. #停止pmm-server容器
    2. docker stop pmm-server
    3. #删除容器
    4. docker rm pmm-server pmm-data
    5. #删除镜像
    6. docker rmi $(docker images | grep "percona/pmm-server" | awk {'print $3'})

    3. 安装PMM客户端 

    官方文档安装客户端

    Set up PMM Client - Percona Monitoring and Management 

    3.1 下载客户端

    我下载的是二进制文件,下面是下载地址,选择版本号和linux generic

    https://www.percona.com/downloads

     3.2 上传解压

    [root@localhost soft]# tar -zxvf pmm2-client-2.41.1.tar.gz

    3.3 配置环境变量

    1. [root@localhost local]# mkdir -p /usr/local/percona/pmm2
    2. #添加$PMM_DIR/bin至环境变量配置文件
    3. [root@localhost local]# vi ~/.bash_profile
    4. export PMM_DIR=/usr/local/percona/pmm2
    5. PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/percona-toolkit-3.3.1/bin:$PMM_DIR/bin
    6. [root@localhost local]# source ~/.bash_profile

    3.4 安装客户端

    1. [root@localhost local]# cd /soft/pmm2-client-2.41.1
    2. [root@localhost pmm2-client-2.41.1]# ./install_tarball
    3. Installing into /usr/local/percona/pmm2...

    3.5 配置客户端

    1. [root@localhost config]# pmm-agent setup --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml --server-address=192.168.26.101 --server-insecure-tls --server-username=admin --server-password=123456
    2. [root@localhost config]# pmm-agent --config-file=${PMM_DIR}/config/pmm-agent.yaml

    注册

    pmm-admin config --server-insecure-tls --server-url=https://admin:123456@192.168.26.101:443

    查看状态

    1. [root@localhost ~]# pmm-admin status
    2. Agent ID : /agent_id/cd9ebf97-a1c0-4386-8f97-1adb346efba5
    3. Node ID : /node_id/0309f2f0-d1e7-451e-9798-31964bfb9126
    4. Node name: localhost.localdomain
    5. PMM Server:
    6. URL : https://192.168.26.101:443/
    7. Version: 2.41.1
    8. PMM Client:
    9. Connected : true
    10. Time drift : 78.014µs
    11. Latency : 426.998µs
    12. Connection uptime: 100
    13. pmm-admin version: 2.41.1
    14. pmm-agent version: 2.41.1
    15. Agents:
    16. /agent_id/c61a3f9a-dab0-4806-af39-68403b73d25b node_exporter Running 42000
    17. /agent_id/d8e6f253-dd81-40c6-8ae3-91fd55f85a40 vmagent Running 42001

    4. 添加mysql监控服务

    4.1 创建用户

    1. (root@localhost) [(none)]> CREATE USER 'pmm'@'%' IDENTIFIED BY 'pass' WITH MAX_USER_CONNECTIONS 10;
    2. (root@localhost) [(none)]> GRANT SELECT, PROCESS, REPLICATION CLIENT, RELOAD ON *.* TO 'pmm'@'localhost';

    4.2 选择和配置数据源

    4.2.1 Slow query log数据源配置(预备工作)

    /etc/my.cnf添加如下

    1. [mysqld]
    2. slow_query_log=1
    3. log_output=FILE
    4. long_query_time=2
    5. log_slow_admin_statements=ON
    6. log_slow_slave_statements=ON

    或者session配置

    1. SET GLOBAL slow_query_log = 1;
    2. SET GLOBAL log_output = 'FILE';
    3. SET GLOBAL long_query_time = 2;
    4. SET GLOBAL log_slow_admin_statements = 1;
    5. SET GLOBAL log_slow_slave_statements = 1;

     percona mysql额外添加的配置参数

    1. log_slow_rate_limit=100
    2. log_slow_rate_type='query'
    3. slow_query_log_always_write_time=1
    4. log_slow_verbosity='full'
    5. slow_query_log_use_global_control='all'

    或者session配置

    1. SET GLOBAL log_slow_rate_limit = 100;
    2. SET GLOBAL log_slow_rate_type = 'query';
    3. SET GLOBAL slow_query_log_always_write_time = 1;
    4. SET GLOBAL log_slow_verbosity = 'full';
    5. SET GLOBAL slow_query_log_use_global_control = 'all';

    4.2.2 Performance Schema数据源配置(预备工作)

    /etc/my.cnf添加如下参数

    1. [mysqld]
    2. performance_schema=ON
    3. performance-schema-instrument='statement/%=ON'
    4. performance-schema-consumer-statements-digest=ON
    5. innodb_monitor_enable=all

    或者session配置

    1. UPDATE performance_schema.setup_consumers
    2. SET ENABLED = 'YES' WHERE NAME LIKE '%statements%';
    3. SET GLOBAL innodb_monitor_enable = all;

    4.2.3 Query response time配置

    /etc/my.cnf添加如下

    1. [mysqld]
    2. query_response_time_stats=ON

    安装插件

    1. INSTALL PLUGIN QUERY_RESPONSE_TIME_AUDIT SONAME 'query_response_time.so';
    2. INSTALL PLUGIN QUERY_RESPONSE_TIME SONAME 'query_response_time.so';
    3. INSTALL PLUGIN QUERY_RESPONSE_TIME_READ SONAME 'query_response_time.so';
    4. INSTALL PLUGIN QUERY_RESPONSE_TIME_WRITE SONAME 'query_response_time.so';
    5. SET GLOBAL query_response_time_stats = ON;

    4.2.4 User statistics配置

    /etc/my.cnf添加如下

    1. [mysqld]
    2. userstat=ON

    或者session配置

    SET GLOBAL userstat = ON;

    4.3 添加MySQL Service

    4.3.1 添加Slow query log

    MYSQL_SERVICE是自己取的服务名字

    1. [root@localhost ~]# pmm-admin add mysql --query-source=slowlog --size-slow-logs=1GiB --username=pmm --password=pass MYSQL_SERVICE 192.168.26.101:3306
    2. MySQL Service added.
    3. Service ID : /service_id/31afdb31-42ff-4b81-85f5-97d6ae222e86
    4. Service name: MYSQL_SERVICE
    5. Table statistics collection enabled (the limit is 1000, the actual table count is 338).
    6. #或者
    7. [root@localhost ~]# pmm-admin add mysql --query-source=slowlog --size-slow-logs=1GiB --username=pmm --password=pass --service-name=MYSQL_SERVICE --host=192.168.26.101 --port=3306

    4.3.2 添加Performance Schema

    MYSQL_PERFSCHEMA是自己取服务名字

    1. [root@localhost ~]# pmm-admin add mysql --query-source=perfschema --username=pmm --password=pass MYSQL_PERFSCHEMA 192.168.26.101:3306
    2. MySQL Service added.
    3. Service ID : /service_id/cd3acc69-2372-4fa3-9cd4-455cb605344a
    4. Service name: MYSQL_PERFSCHEMA
    5. Table statistics collection enabled (the limit is 1000, the actual table count is 338).
    6. #或者
    7. [root@localhost ~]# pmm-admin add mysql --query-source=perfschema --username=pmm --password=pass --service-name=MYSQL_PERFSCHEMA --host=192.168.26.101 --port=3306

    4.3.3 图形界面添加服务

     4.3.4 查看服务

    1. [root@localhost ~]# pmm-admin list
    2. Service type Service name Address and port Service ID
    3. MySQL MYSQL_PERFSCHEMA 192.168.26.101:3306 /service_id/cd3acc69-2372-4fa3-9cd4-455cb605344a
    4. MySQL MYSQL_SERVICE 192.168.26.101:3306 /service_id/e1b0dfc3-e1de-4108-94de-3e894f637199
    5. Agent type Status Metrics Mode Agent ID Service ID Port
    6. pmm_agent Connected /agent_id/cd9ebf97-a1c0-4386-8f97-1adb346efba5 0
    7. node_exporter Running push /agent_id/c61a3f9a-dab0-4806-af39-68403b73d25b 42000
    8. mysqld_exporter Running push /agent_id/8506e3b2-a7bf-44fb-99ae-aebb85ab92a9 /service_id/cd3acc69-2372-4fa3-9cd4-455cb605344a 42011
    9. mysqld_exporter Running push /agent_id/f118f570-e506-4568-a9fc-2ec886b2a3b9 /service_id/e1b0dfc3-e1de-4108-94de-3e894f637199 42010
    10. mysql_perfschema_agent Running /agent_id/a5d784f0-cd1f-406a-ba39-9cb9082d756e /service_id/cd3acc69-2372-4fa3-9cd4-455cb605344a 0
    11. mysql_slowlog_agent Running /agent_id/83a30217-8175-4065-bf8f-d5c2ba58574e /service_id/e1b0dfc3-e1de-4108-94de-3e894f637199 0
    12. vmagent Running push /agent_id/d8e6f253-dd81-40c6-8ae3-91fd55f85a40 42001

    或者

    1. [root@localhost ~]# pmm-admin inventory list services
    2. Services list.
    3. Service type Service name Address and Port Service ID
    4. MySQL MYSQL_PERFSCHEMA 192.168.26.101:3306 /service_id/cd3acc69-2372-4fa3-9cd4-455cb605344a
    5. MySQL MYSQL_SERVICE 192.168.26.101:3306 /service_id/e1b0dfc3-e1de-4108-94de-3e894f637199
    6. PostgreSQL pmm-server-postgresql 127.0.0.1:5432 /service_id/fcec30c3-7d0c-46b7-bd45-511407ea544d

    4.3.5 删除服务

    pmm-admin remove

    1. [root@localhost ~]# pmm-admin remove mysql MYSQL_PERFSCHEMA
    2. Service removed.
    3. [root@localhost ~]# pmm-admin remove mysql MYSQL_SERVICE
    4. Service removed.

    4.3.6 从PMM服务注销PMM客户端

    pmm-admin unregister --force

    5. 官网命令手册

    Commands - Percona Monitoring and Management

    6. 界面清单

     PMM Inventory - Percona Monitoring and Management

    7. 界面仪表盘管理

     Manage dashboards - Percona Monitoring and Management

    8. 告警管理

     Percona Alerting - Percona Monitoring and Management

    9. PMM架构 

    Architecture - Percona Monitoring and Management 

  • 相关阅读:
    智能文本纠错API的崭露头角:革命性的写作辅助工具
    Python ---使用Fake库向clickhouse造数据小案例
    C语言求数组最大值和最小值、总和、平均值以及数组正序和逆序的输出
    自己动手从零写桌面操作系统GrapeOS系列教程——4.GrapeOS开发环境介绍
    VS2019如何新建Win32项目(即MFC项目)
    [附源码]java毕业设计高校流动党员信息管理系统
    除了chatGPT网站外,国内有些可以使用的AI网站 文心一言 讯飞星火 豆包 通义千问 人工智能网站 AI网站
    [XSCTF]easyxor
    python变量、函数、类的命名规则 以及NamedTuple的使用
    谁在为网络安全制造标尺?
  • 原文地址:https://blog.csdn.net/zj88189748/article/details/137873771