MYSQL PMM 搭建容易,细节难

本文介绍使用PMM(Percona Monitoring and Management)监控MySQL、PostgreSQL、MongoDB等数据库的方法,涵盖安装注意事项、常见问题解决及监控指标解读,如InnoDB Metrics、Checkpoint Age等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在什么都要短平快,意思就是又要好,又要快,又要不出问题,嗯, 如果要监控MYSQL 来说,想要一个这样的东西 PMM monitor and mannagement)是一个不错的选择。(顺便说一句,二代已经出炉了,这里写的还是一代)

首先要好,这款监控开源产品是支持  MYSQL,POSTGRESQL, MONGODB , ProxySQL , 三款数据库基本上公司主流的开源数据库都支持了。同时这款产品还有一个特殊的地方就是对自己有监控,什么意思,很多监控产品对接入的系统都有良好的监控,但是独独对自己本身的状态是没有 监控的,这款产品会对自身的数据库,系统状态都是有监控的。

怎么安装就不提了,网上安装也是一大堆,但实际上安装还是需要提一下的,因为我在测试系统上安装,是很顺利的,但到了生产系统上就是另外一回事了。 

大致安装这个系统会遇到以下问题

1 由于防火墙没有关闭,在安装数据收集端后,造成DOCKER系统中的配置项写入IPTABLE,进行DOCKER 内的监控系统和外部客户端数据的转发失败。 具体的反应就是安装完客户端,客户端和数据收集端之间的数据连接状态为 DOWN ,即使你在关闭防火墙也是无法弥补,只能重新安装。

2 网段的原因,实际上一个公司里面的数据库服务器可能会在多个网段都存在,但监控的收集只在一个网段,那网络的4-7 层的设置并打通关于防火墙的一些设置就是必须的,至于怎么打通,那就的问问你公司里面的网络大牛了。

3 默认安装PMM 是没有用户名密码的,但实际上一个系统最好还是有用户名和密码的设置,这里的用户名密码由于PMM是DOCER 的安装方式,只能在初始化的时候,来做,否则只能重做。

4  根据官方文档的要求,如果你没有专业的DOCKER Operation 那最还是按照文档来给OPT 目录提供充足的空间,防止某些你不懂的领域产生的问题

跳过这些坑后,剩下的基本上就是

1 部分监控项目有,但没有监控数据

2 慢查询没有数据

我们先看第一个问题 (以下的MYSQL 为 PERCONA 5.7.23),以下仅仅是选择了几个指标,实际上安装后 Innodb metrics advanced 都没有数据

到底怎么才能有数据呢????  

SET GLOBAL innodb_monitor_enable=all

在MYSQL中执行完上面的语句,立即大部分PMM中显示 NO DATA POINTS 的 地方均会开始接受和显示数据。

但即使你做了这些,还是有些图形没有数据显示 no data point

到底是怎么回事。相信这里面至少还有两个图形没有数据

1 innodb online DDL

2 innodb Defragmentation 

为什么,因为这两个图形是仅仅服务于 MariaDB的,所以如果你使用的是官版的或者是PERCONA 版本的MYSQL 是捕会有数据显示的。

还记得几年前写过一个SHELL 脚本,来统计一段时间有多少的 row  insert ,delete, update 等信息,现在再看这个监控 innodb row operations ,那是比较一目了然看到系统的 IN OUT 状态了。

在基本上搞清楚这些问题后,下面就是对一些监控图形和指标的掌握了。(本期一定是说不完,所以写到哪里算哪里)

1 innodb checkpoint age, 这张图上我比较关注的并不是图中的红色的线,而是  uncheckpointed bytes ,这个数值的大小预示着有多少脏页还存在于系统中

下面这个图中的值之间的关系,试想如果你有很多的日志还没有做checkpoint ,日志没有落盘,你的想想哪里出了问题,并关注一下系统的负载情况,以及I/O情况

当然在看完上面的图,我马上就想看下面这个图,看看到底每秒的日志写入量有多大。

而相关的 innodb_buffer_pool_read_requests  也应该被关注,这表示在某个时间段系统从磁盘上请求数据的请求数,配合 innodb_buffer_pool_reads 和 Innodb_buffer_pool_read_requests两个参数就可以获得缓存的命中率是多少,并且是否缺少内存来界定的一个指标。

当然死锁也是很容易在 innodb metrics 中发现的

另外还有一些比较好的功能,例如可以看到表的存储空间的占用以及每个表的行数 (这里不一定是十分准确的),相关的信息是来自于information_schema中的VIEW的信息而来。

另外如果你使用的数据库是PERCONA 版本的MYSQL 则监控还会奉送 mysql user statistics 状态的界面

例如

那个用户创建的连接多了,那个用户的流量比较高,那个用户搜索的数据行数,使用的CPU 等等都可以从PMM 中获取。

所以说,PMM 看上去搭建速度很快,能展示的项目也很多,但其中的细节的问题,只有好好弄过的人知道有啥坑,OK 今天就到这里。

搭建Percona XtraDB Cluster(PXC)是一个多主复制的MySQL集群解决方案,以下是基本的搭建步骤: 1. 安装Percona XtraDB Cluster软件:根据操作系统选择合适的软件包,下载并安装Percona XtraDB Cluster软件。可以从Percona官方网站获取安装包或使用包管理工具进行安装。 2. 配置节点:在每个节点上编辑配置文件my.cnf,配置Percona XtraDB Cluster的参数。关键的配置包括集群节点的IP地址、端口、集群名称、节点角色(Primary、Secondary)、wsrep_cluster_address等。确保所有节点的配置文件一致。 3. 初始化第一个节点:选择一个节点作为初始节点,通过执行特定的命令初始化它。例如,在初始节点上执行命令:`sudo service mysql bootstrap-pxc`。这将创建一个新的集群,并使该节点成为Primary节点。 4. 加入其他节点:在其他节点上执行命令:`sudo service mysql start`,让它们加入到初始化的集群中。这些节点将自动与初始节点建立连接,并开始进行数据复制和同步。 5. 配置防火墙和网络设置:确保集群节点之间可以相互通信,开放所需的端口(默认端口为3306)。如果使用虚拟机或云服务,确保网络设置正确并且没有阻止节点之间的通信。 6. 监控和管理:使用Percona XtraDB Cluster提供的工具和插件来监控和管理集群。例如,使用Percona Monitoring and Management(PMM)工具进行集群监控和性能分析。 7. 测试和故障恢复:进行一系列的测试,确保集群正常工作,并测试故障恢复过程。模拟节点故障和网络中断,观察集群的行为和自动恢复能力。 以上是基本的Percona XtraDB Cluster搭建步骤。请注意,在实际操作中可能会有更多的细节和配置设置,具体步骤可以根据官方文档和特定需求进行调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值