Percona 开源监控方案 PMM 详解

2024-09-05 14:52

本文主要是介绍Percona 开源监控方案 PMM 详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
    • 1. 安装部署
      • 1.1 Server 安装
      • 1.2 Client 安装
    • 2. 监控数据库
      • 2.1 MySQL
      • 2.2 PostgreSQL
    • 3. Dashboard 介绍
    • 总结

前言

Percona Monitoring and Management (PMM) 是 Percona 公司基于业界流行的组件 Prometheus 和 Grafana 设计开发的一体化数据库监控解决方案。本篇文章介绍如何使用它监控 MySQL 和 PostgreSQL 两款数据库。

1. 安装部署

PPM 有两个组件分别是 Server 端和 Client Agent 端,其中 Server 端安装需要使用 docker,由于 docker 被墙了,所以直接使用 docker pull 命令会超时,可以先把镜像下载下来,然后再 load 安装。

1.1 Server 安装

如果可以访问外网,那么直接使用 pull 命令即可。

-- docker 安装
docker pull percona/pmm-server:2

离线安装,加载镜像:

docker load -i pmm-server-2.tar

创建数据卷容器:

docker volume create pmm-data

创建并启动容器:

docker run --detach --restart always \
--publish 443:443 \
-v pmm-data:/srv \
--name pmm-server \
percona/pmm-server:2

验证:

docker ps -a
CONTAINER ID   IMAGE                  COMMAND                  CREATED       STATUS                    PORTS                                           NAMES
184206a00f3d   percona/pmm-server:2   "/opt/entrypoint.sh"     5 hours ago   Up 4 hours (healthy)      80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   pmm-server

参考资料:Docker 安装 PMM

访问地址:https://{Server IP}/graph/dashboards 默认用户:admin 密码:admin

请添加图片描述

1.2 Client 安装

PMM 的 Client 需要到官网单独下载,地址:https://www.percona.com/downloads
在这里插入图片描述
下载后,上传到需要监控到服务器上面,执行如下命令:

# 解压缩
tar -zxvf pmm2-client-2.42.0.tar.gz 
# 移动到 /usr/local
mv pmm2-client-2.42.0 /usr/local/
# 进入目录
cd pmm2-client-2.42.0/
# 执行安装
./install_tarball
# 输出:
Installing into /usr/local/percona/pmm2...
Successfully installed PMM Client to /usr/local/percona/pmm2# 环境变量配置
export PATH=$PATH:/usr/local/percona/pmm2/bin

配置 agent 节点,修改 server-address、server-password 两个 Server 节点的连接参数。

pmm-agent setup --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml --server-address=172.16.121.152 --server-insecure-tls --server-username=admin --server-password=admin123
INFO[2024-09-04T13:54:38.390+08:00] Loading configuration file /usr/local/percona/pmm2/config/pmm-agent.yaml.  component=setup
INFO[2024-09-04T13:54:38.391+08:00] Temporary directory is not configured and will be set to /usr/local/percona/pmm2/tmp  component=setup
INFO[2024-09-04T13:54:38.391+08:00] Using /usr/local/percona/pmm2/exporters/node_exporter  component=setup
INFO[2024-09-04T13:54:38.391+08:00] Using /usr/local/percona/pmm2/exporters/mysqld_exporter  component=setup
INFO[2024-09-04T13:54:38.391+08:00] Using /usr/local/percona/pmm2/exporters/mongodb_exporter  component=setup
INFO[2024-09-04T13:54:38.391+08:00] Using /usr/local/percona/pmm2/exporters/postgres_exporter  component=setup
INFO[2024-09-04T13:54:38.391+08:00] Using /usr/local/percona/pmm2/exporters/proxysql_exporter  component=setup
INFO[2024-09-04T13:54:38.391+08:00] Using /usr/local/percona/pmm2/exporters/rds_exporter  component=setup
INFO[2024-09-04T13:54:38.391+08:00] Using /usr/local/percona/pmm2/exporters/azure_exporter  component=setup
INFO[2024-09-04T13:54:38.391+08:00] Using /usr/local/percona/pmm2/exporters/vmagent  component=setup
INFO[2024-09-04T13:54:38.391+08:00] Updating PMM Server address from "172.16.121.152" to "172.16.121.152:443".  component=setup
Checking local pmm-agent status...
pmm-agent is not running.
Registering pmm-agent on PMM Server...
Registered.
Configuration file /usr/local/percona/pmm2/config/pmm-agent.yaml updated.
Please start pmm-agent: `pmm-agent --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml`.

通过服务的方式来管理 agent:

vi /etc/systemd/system/pmm-agent.service 

写入配置信息:

[Unit]
Description=pmm-agent
After=time-sync.target network.target[Service]
Type=simple
ExecStart=/usr/local/percona/pmm2/bin/pmm-agent --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml
Restart=always
RestartSec=2s[Install]
WantedBy=multi-user.target

刷新配置:

systemctl daemon-reload

启动 anget:

systemctl start pmm-agent

可通过下方命令查询 agent 状态:

pmm-admin status

输出:

Agent ID : /agent_id/d1599b9e-7985-41d9-9d2a-1b754a25bd8f
Node ID  : /node_id/b129f3d1-51ed-47f5-8455-d851c38c8df0
Node name: 172-16-104-55PMM Server:URL    : https://172.16.121.152:443/Version: 2.42.0PMM Client:Connected        : trueTime drift       : 5.376756msLatency          : 910.726µsConnection uptime: 100pmm-admin version: 2.42.0pmm-agent version: 2.42.0
Agents:/agent_id/0f863af6-c12f-4437-9e37-dc6bdcc8a2ab mysqld_exporter Running 42002/agent_id/47c59e4e-2f1f-49e6-91b4-81e7fbe0e4c3 postgres_exporter Running 42003/agent_id/5e7f0b3b-59b0-4ea3-aa11-560cd14fb382 vmagent Running 42000/agent_id/89500881-98ce-4bac-b9ce-7f93e11ed37e mysql_slowlog_agent Running 0/agent_id/9a0445c3-f225-4fbd-881d-99202bc564d8 node_exporter Running 42001/agent_id/d68a6ebe-29de-4dbd-ab5f-6130866887bd postgresql_pgstatements_agent Running 0

2. 监控数据库

Clinet 端 Agent 安装成功后,就可以通过命令行的方式,添加本地数据库的监控。

2.1 MySQL

创建一个 mysql 采集账号:

CREATE USER 'pmm'@'127.0.0.1' IDENTIFIED BY 'pass' WITH MAX_USER_CONNECTIONS 10;
GRANT SELECT, PROCESS, REPLICATION CLIENT, RELOAD, BACKUP_ADMIN ON *.* TO 'pmm'@'127.0.0.1';

开启 MySQL 采集,默认是会开启所有的采集器:

  • –query-source:是慢 SQL 采集方式,none 表示不采集,slowlog 表示采集慢日志,performance 表示采集 performance_schema 中的数据。
  • –username:MySQL 用户名,使用上一步创建的用户。
  • –password:采集用户密码。
  • mysql-node1:这个是节点服务名称,由用户自定义。
  • 127.0.0.1:3306:MySQL 实例的地址。
pmm-admin add mysql --query-source=slowlog --username=pmm --password=pass mysql-node1 127.0.0.1:3306

输出:

MySQL Service added.
Service ID  : /service_id/479376e5-e549-4e6e-9f24-805f6cf2312e
Service name: mysql-node1Table statistics collection enabled (the limit is 1000, the actual table count is 358).

通过 pmm-admin list 命令可以查看,该节点当前 agent 开启哪些采集:

Service type        Service name        Address and port        Service ID
MySQL               mysql-node1         127.0.0.1:3306          /service_id/479376e5-e549-4e6e-9f24-805f6cf2312e
PostgreSQL          test-pg             127.0.0.1:5432          /service_id/d52090cf-4836-401d-a1cc-5e874ace0e33Agent type                           Status           Metrics Mode        Agent ID                                              Service ID                                              Port
pmm_agent                            Connected                            /agent_id/d1599b9e-7985-41d9-9d2a-1b754a25bd8f                                                                0 
node_exporter                        Running          push                /agent_id/9a0445c3-f225-4fbd-881d-99202bc564d8                                                                42001 
mysqld_exporter                      Running          push                /agent_id/0f863af6-c12f-4437-9e37-dc6bdcc8a2ab        /service_id/479376e5-e549-4e6e-9f24-805f6cf2312e        42002 
postgres_exporter                    Running          push                /agent_id/47c59e4e-2f1f-49e6-91b4-81e7fbe0e4c3        /service_id/d52090cf-4836-401d-a1cc-5e874ace0e33        42003 
mysql_slowlog_agent                  Running                              /agent_id/89500881-98ce-4bac-b9ce-7f93e11ed37e        /service_id/479376e5-e549-4e6e-9f24-805f6cf2312e        0 
postgresql_pgstatements_agent        Running                              /agent_id/d68a6ebe-29de-4dbd-ab5f-6130866887bd        /service_id/d52090cf-4836-401d-a1cc-5e874ace0e33        0 
vmagent                              Running          push                /agent_id/5e7f0b3b-59b0-4ea3-aa11-560cd14fb382                                                                42000

再使用下方命令查询具体的采集器:
请添加图片描述
如果想禁用某些采集器,再添加时,可使用 --disable-collectors 参数。

2.2 PostgreSQL

先创建采集使用的帐户。

CREATE USER pmm WITH SUPERUSER ENCRYPTED PASSWORD 'admin123';

开启本地 PostgreSQL 采集,需要注意的是 Query 采集需要安装 pg_stat_statements 插件。

pmm-admin add postgresql \
--username=pmm \
--password=admin123 \
--server-url=https://admin:admin123@172.16.121.152:443 \
--server-insecure-tls \
--service-name=test-pg

安装方式参考:pg_stat_statements 插件安装

3. Dashboard 介绍

这里是总览:
在这里插入图片描述
值得介绍的是,PMM 会采集 Slow SQL 并且帮助用户可视化:
在这里插入图片描述

总结

本篇文章介绍了 PMM 监控如何部署和安装,并且接入数据库实例,这块工具非常强大,是一款企业级的数据库监控方案。

这篇关于Percona 开源监控方案 PMM 详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139271

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提