MySQL监控方案PMM Server

2024年 1月 29日 76.0k 0

1 PMM介绍

Percona Monitoring and Management(PMM)是一个开源的用于管理和监控MySQL、MongoDB和PostgreSQL性能的平台。它由Percona与托管数据库服务,支持和咨询领域的专家合作开发。PMM旨在为MySQL和MongoDB服务器提供全面的基于时间的分析,以确保数据尽可能高效地工作。

PMM平台基于简单的客户端-服务器模型,可实现高效的可扩展性。它包括以下模块:

  • PMM Client:安装在每个要监视的数据库主机上。它收集服务器指标,一般系统指标和查询分析数据,以获得完整的性能概述。收集的数据发送到PMM服务器。
  • PMM Server:PMM的核心部分,它聚合收集的数据,并以Web界面的表格,仪表板和图形的形式呈现。
    PMM提供了对MyISAM、InnoDB、TokuDB和PXC/Glarera的监控,另外也提供了Query Analytics的功能,可以检视执行了哪些SQL指令,并对执行效能较差的语法进行优化。另外在新版本还支持了MySQL复制拓扑图结构构造。

PMM针对操作系统的部分也提供了硬盘、网络、CPU和RAM的监控,特别的是它提供了Context switches、Processes和interrupts的监控,Context Switches可以看到CPU上下切换文的状况,Processes可以方便了解系统有多少程序在等待I/O。

此外,PMM通过PMM客户端收集到的DB监控数据可以用第三方软件Grafana进行画图展示。

架构图如下:

更详细的介绍请参考官方文档:https://docs.percona.com/percona-monitoring-and-management/index.html

2 安装PMM Server

官方提供了多种安装方式,优缺点如下:

最常用的方式是Docker。

1)安装docker

参考文章:http://t.csdnimg.cn/N752u

如果你的机器可以连接外网的,用yum安装比较方便快捷。但是工作中的机器一般是内网环境,无法连互联网,所以只能通过二进制包安装。

2)下载PMM Server镜像

docker hub地址:https://hub.docker.com/r/percona/pmm-server

[root@zabbix6 ~]# docker pull percona/pmm-server:2

这里下载的是pmm-server2.x的最新版本。如果要下载最新版本可以改为执行:

docker pull percona/pmm-server:latest

3)创建持久数据卷容器

单独建数据卷容器的好处主要包括以下几点:

  • 数据持久性:容器数据卷允许容器中的数据在容器被删除或重启后仍然存在,这可以确保数据在容器生命周期内得到保护和持久化存储。
  • 数据共享:容器数据卷允许多个容器共享同一个数据卷,这可以方便地共享应用程序和数据。
  • 数据安全性:使用容器数据卷将宿主机的目录或文件挂载到容器中,可以避免在容器中存储敏感数据,提高数据安全性和保密性。
  • 容器可移植性:使用容器数据卷使容器代码和数据分离,这使得容器的迁移变得更加简单和便捷。
  • 数据备份:使用容器数据卷可以简化数据备份过程,可以轻松地备份和还原数据。

就算有人误删了你的PMM-Server容器,有数据也可以进行恢复,不至于从删容器到跑路。

1.创建容器数据卷:

[root@zabbix6 srv]#
docker create --volume /srv
--name pmm-data
percona/pmm-server:2 /bin/true

PMM Server指定的数据卷为/srv,使用其他卷将导致升级时数据丢失。

command介绍:

  • docker create:创建一个新容器;
  • –volume:绑定挂载卷/srv;
  • –name:为容器指定一个名称pmm-data;
  • pmm-data percona/pmm-server:2:镜像名;
  • /bin/true:设置退出码为0,在Linux底下,每一个程序执行完毕都会返回一个退出码,通常状况下0表示成功。

以上命令介绍可以通过执行docker --help查看。

2.检查服务器和数据容器挂载点:

[root@zabbix6 srv]# docker inspect pmm-data | egrep "Destination|Source"
"Source": "/var/lib/docker/volumes/c08c5a4898c3a2340edc40ae531a6400e4e292d1b9a754fc66622475356a0413/_data",
"Destination": "/srv",

参数介绍:

  • Destination:容器内目录;
  • Source:对应宿主机目录。

检查下宿主机目录:

[root@zabbix6 _data]# ls /var/lib/docker/volumes/
alerting alertmanager backup clickhouse grafana logs nginx pmm-distribution postgres14 prometheus victoriametrics

4)创建并启动PMM Server容器

[root@zabbix6 _data]#
docker run --privileged --detach --restart always
--publish 443:443
--volumes-from pmm-data
--name pmm-server
percona/pmm-server:2

command介绍:

  • docker run: 用于启动一个或多个容器。
  • –detach: 容器将在后台运行并返回容器ID。
  • –restart always: 指定重启策略,当容器退出时,该参数确保容器始终自动重新启动。
  • –publish 443:443: 端口映射,冒号前是宿主机的端口,冒号后是容器内部的端口。任何访问宿主机的443端口的请求都会被转发到容器的相应端口。
  • –volumes-from pmm-data: 引用pmm-data容器中的数据卷。
  • –name pmm-server: 新创建的容器的名称pmm-server。
  • percona/pmm-server:2: 要运行的Docker镜像的名称。

5)查看容器运行情况

[root@zabbix6 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c99a87c5718b percona/pmm-server:2 "/opt/entrypoint.sh" 18 minutes ago Up 18 minutes (healthy) 80/tcp, 0.0.0.0:443->443/tcp pmm-server

6)在web浏览器中查看PMM用户界面

访问 https://ip:443 在web浏览器中查看PMM用户界面,ip为PMM Server的地址。

默认的用户名和密码都是admin,第一次登录会提示修改密码。

首页如下:

MySQL监控方案PMM Server-4

至此,PMM Server部署完成。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论