Percona Monitoring and Management安装使用指南
简介
PMM是一个免费的、开源的监控MySQL、PostgreSQL、MongoDB、ProxySQL以及它们运行的服务的工具。
PMM可以提高数据库的性能、简化它们的管理、增强了数据库的安全性。
PMM可以检测数据库和宿主机并获取数千种可操作的性能标准。
PMM提供了一种web的界面,该界面可以虚拟显示了各种数据。
PMM附加的功能包括检查数据库的各种安全预警问题。
PMM的web界面的主页如下图所示:
PMM运行在云端、本地或者混合平台,开源数据库的资深专家技术和活跃的开发者用户的社区是PMM的主要技术支持。
一个最小的PMM由一个服务端和一个被监控的系统上的客户端。
安装
1. PMM服务端安装
三种方式PMM服务端安装如下:
1.1 docker
1.1.1 脚本安装
下载并校验脚本,赋予执行权限并运行脚本,如下所示:
Linux:
curl -fsSL -O https://raw.githubusercontent.com/percona/pmm/PMM-2.0/get-pmm.sh -O https://raw.githubusercontent.com/percona/pmm/PMM-2.0/.sha256-oneline && \
sha256sum .sha256-oneline -c && \
chmod +x ./get-pmm.sh && \
./get-pmm.sh
MacOS:
curl -fsSL -O https://raw.githubusercontent.com/percona/pmm/PMM-2.0/get-pmm.sh -O https://raw.githubusercontent.com/percona/pmm/PMM-2.0/.sha256-oneline && \
shasum .sha256-oneline -c && \
chmod +x ./get-pmm.sh && \
./get-pmm.sh
该脚本执行后:
- 如果没有安装docker,会安装;
- 如果有个PMM服务端的docker容器正在运行,会终止这个容器并对其进行备份;
- 拉取并运行最新的PMM服务端docker镜像。
1.1.2 手动安装
-
安装docker1.12.6(或更高版本)
-
拉取镜像
docker pull percona/pmm-server:2
-
创建一个持久的数据容器
docker create --volume /src \ --name pmm-data \ percona/pmm-server:2 /bin/true
-
运行镜像
docker run --detach --restart always \ --publish 443:443 \ --volumes-from pmm-data \ --name pmm-server \ percona/pmm-server:2
-
在浏览器访问https://localhost:443查看PMM的用户接口(如果你是远程的宿主机,将l宿主机的IP或者服务名替换localhost)
1.2 虚机机
- 下载并校验最新的OVF文件;
- 导入;
- 重新配置网络;
- 运行虚机并获取IP;
- 登入PMM界面;
对虚机的配置要求如下图所示:
1.3 亚马逊网络服务
2. PMM客户端安装
在需要被监控的服务节点上安装并运行PMM客户端
2.1 docker
-
拉取PMM客户端的docker镜像
doker pull \ percona/pmm-client:2
-
创建数据容器
docker create \ --volume /src \ --name pmm-client-data \ percona/pmm-client:1 /bin/true
-
设置PMM_SERVER为PMM 服务端的IP地址,并运行容器
PMM_SERVER=X.X.X.X:443 docker run \ --rm \ --name pmm-client \ -e PMM_AGENT_SERVER_ADDRESS=${PMM_SERVER} \ -e PMM_AGENT_SERVER_USERNAME=admin \ -e PMM_AGENT_SERVER_PASSWORD=admin \ -e PMM_AGENT_SERVER_INSECURE_TLS=1 \ -e PMM_AGENT_SETUP=1 \ -e PMM_AGENT_CONFIG_FILE=pmm-agent.yml \ --volumes-from pmm-client-data \ percona/pmm-client:2
2.2 packages
2.2.1 Linux package
如果之前使用过 percona-release,需要disable并且re-enable仓库:
percona-release disable all
percona-release enable original release
Debian-based
-
配置仓库
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb dpkg -i percona-release_latest.generic_all.deb
-
安装PMM客户端包
有root权限:apt update apt install -y pmm2-client
-
检查
pmm-admin --version
-
注册节点
通过PMM服务端注册客户端节点pmm-admin config --server-insecure-tls --server-url=https//admin:admin@X.X.X.X.443
备注:PMM服务端必须通过安全的信道注册客户端,如果用http作为服务URL,PMM将会通过https的443端口尝试连接。如果没有建立TLS连接会产生错误,你必须用https合适的安全端口进行连接。
Red Hat-based
-
配置仓库
yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
-
安装PMM客户端包
yum install -y pmm2-client
-
检验
pmm-admin --version
-
注册节点 (同上)
2.2.1 binary package
对于没有root权限的用户,二进制包是PMM客户端安装的唯一方式
-
下载PMM客户端包
wget https://downloads.percona.com/downloads/pmm2/2.20.0/binary/tarball/pmm2-client-2.20.0.tar.gz
-
下载PMM客户端包的校验文件
wget https://downloads.percona.com/downloads/pmm2/2.20.0/binary/tarball/pmm2-client-2.20.0.tar.gz.sha256sum
-
校验下载包
sha256sum -c pmm2-client-2.20.0.tar.gz.sha256sum
-
解压压缩包并进入到目录下
tar xfz pmm2-client-2.20.0.tar.gz && cd pmm2-client-2.20.0
-
根据用户的权限选择下列的命令
没有root权限:export PMM_DIR=YOURPATH
备注:真正的path会替换YOURPAHT,并且有权限进入YOURPATH;Node,MySQL,PostgreSQL的导出是无效的。
有root权限:export PMM_DIR=/usr/local/percona/pmm2
-
运行安装包
有root权限(如果你跳过了步骤5中没有root权限的步骤):./install_tarball
-
改变path
PATH=$PATH:$PMM_DIR/bin
-
设置客户端(根据权限选择命令)
有root权限:pmm-agent setup --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml --server-address=192.168.1.123 --server-insecure-tls --server-username=admin --server-password=admin
没有root权限:
pmm-agent setup --config-file=${PMM_DIR}/config/pmm-agent.yaml --server-address=192.168.1.123 --server-insecure-tls --server-username=admin --server-password=admin --paths-tempdir=$PMM_DIR/tmp --paths-exporters_base=$PMM_DIR/exporters --paths-node_exporter=$PMM_DIR/exporters/node_exporter --paths-mongodb_exporter=$PMM_DIR/exporters/mongodb_exporter --paths-postgres_exporter=$PMM_DIR/exporters/postgres_exporter --paths-proxysql_exporter=$PMM_DIR/exporters/proxysql_exporter --paths-azure_exporter=$PMM_DIR/exporters/azure_exporter --paths-pt-summary=$PMM_DIR/tools/pt-summary --paths-pt-pg-summary=$PMM_DIR/tools/pt-pg-summary --paths-pt-mongodb-summary=$PMM_DIR/tools/pt-mongodb-summary --paths-pt-mysql-summary=$PMM_DIR/tools/pt-mysql-summary
-
运行客户端
pmm-agent --config-file=${PMM_DIR}/config/pmm-agent.yaml
-
打开一个新的终端并检查
pmm-admin status
3. 添加服务
在每个PMM客户端上,需要配置被监控的节点或服务并添加到PMM服务端的存储区。
MySQL
开始之前
检查:
- PMM服务端已安装并通过一个已知的的IP运行着,该IP可以访问客户端节点。
- PMM客户端已经安装且被PMM服务端注册。
- 你有超级用户(root)权限可以进入客户端宿主机。
- 你有超级用户可以进入任何被监控的数据库服务。
创建PMM数据库账户
用一个非超级用户连接到PMM客户端去监控数据库实例是一个好的尝试;下面这个例子创建了数据库用户pmm,密码:pass,并分配了必要的权限:
CREATE USER 'pmm'@'localhost' IDENTIFIED BY 'pass' WITH MAX_USER_CONNECTIONS 10;
GRANT SELECT, PRECESS ,SUPER,REPLICATION CLIENT,RELOAD ON *.* TO 'pmm'@'localhost';
选择并配置一个资源
有两种选择:慢查询日志和性能指标。
当两种资源可以同时选择的时候,我们建议只选择一种,两者在导出的数据中有些重叠,每一个会导致一点性能的损耗。这个选择也取决于你的MySQL实例的版本和变量以及你要查看的详细程度。
下面是这两种资源的有点和缺点:
数据资源的建议如下:
性能指标
-
应用的版本需求
-
为了使用性能指标,需要设置以下变量:
-
例子
配置文件performance_schema=ON performance-schema-instrument= 'statement/%=ON' performance-schema-consumer-statement-digest=ON innodb_monitor_enable=all
会话
(performance_schema不能在会话中设置,必须通过服务的重启才可以)UPDATE performance_schema.setup_consumers SET ENABLE='YES' WHERE NAME LIKE '%statements%'; SET GLOBAL innodb_monitor_enable=all;
-
响应时间查询
显示花费在各种活动的时间占用比例。应用的版本需求:
变量设置:
设置变量的方式(配置文件):
query_response_time_stats=ON
需要安装插件(会话)
-
检查/usr/lib/mysql/plugin/query_response_time.so是否存在
-
安装插件并激活
对于 Percona Server for MySQL 5.7:INSTALL PLUGIN QUERY_RESPONSE_TIME_AUDIT SONAME 'query_response_time.so'; INSTALL PLUGIN QUERY_RESPONSE_TIME SONAME 'query_response_time.so'; INSTALL PLUGIN QUERY_RESPONSE_TIME_READ SONAME 'query_response_time.so'; INSTALL PLUGIN QUERY_RESPONSE_TIME_WRITE SONAME 'query_response_time.so'; SET GLOBAL query_response_time_stats = ON;
-
-
表状态
当表的数量超过了默认的上限(1000)时,一些表的度量会自动地禁用,这一特性避免了PMM客户端影响数据库服务地性能。这个上限的值可以在添加服务的命令行中通过pmm-admin两个选项进行设置,该选项的描述如下所示:
-
用户统计
显示用户的活动、个人的表和索引操作的细节等内容。
应用版本需求:
例子:
-
配置文件
userstat=ON
-
会话
SET GLOBAL userstat =ON;
-
添加服务
当你有配置好的数据库服务,你可以通过用户界面或者命令行添加一个MySQL服务。
当通过命令行进行添加服务时,你必须用 pmm-admin --query-source=SOURCE 选项来匹配你选择并未数据库服务配置的资源。
通过PMM的用户界面,你可以选择性能指标,或者取消性能指标选择慢查询日志。
-
用户界面操作
-
命令行
查询资源是性能指标,服务名称(MYSQL_NODE),默认的服务地址/端口(127:0:0:1:3306)pmm-admin add mysql --query-source=perfschema --username=pmm --password=pass MYSQL_NODE or pmm-admin add mysql --query-source=perfschema --username=pmm --password=pass --service-name=MYSQL_NODE --host=127.0.0.1 --port=3306
检查服务
-
PMM用户界面
- 点击设置,选择PMM存储,获取存储列表;
- 通过匹配服务类型(MySQL),可以看到服务名字,地址和其他一些细节的展现形式;
- 在客户端的表中检查目标数据资源是否被用。
-
命令行
在下面命令的输出中查找你的服务pmm-admin inventory list services --sevice-type=mysql
MongoDB
PostgreSQL
ProxySQL
Amazon RDS
Microsoft Azure
Google Cloud Platform
Linux
External services
HAProxy
Remote instance
使用
下面的功能目前只支持PMM管理员账户:
- 备份
- DBaaS
- 整合预警
- 安全检查
用户界面
PMM的用户界面是一个基于Grafana的浏览器应用
登录
-
启动一个浏览器,在地址栏输入PMM服务端或者宿主机的地址
-
页面会加载PMM登录的界面如下所示
-
输入用户名和密码,默认是admin:admin
-
点击登录
-
如果是第一次登录,会被请求重新设置密码(建议修改)
输入新密码,并提交
点击跳过,使用默认密码
-
加载PMM主界面
dashboard
这个dashboard是由多个网页组成一个界面。
dashboard界面以折叠形式进行分组,也可以通过重命名、创建来优化界面。
嵌入在dashboard内部的区域并成为面板,有些面板在可折叠的组中,一个面板可以显示值、图像,表和可视化设置。
整合预警
目前处于技术预研的阶段,随时被修改。
当发生某个系统时间的错误时,整合错误会让你指导
- 当判断条件满足,预警就会生成
- 预警判断条件遵循预警规则摸板,我们提供了一套模板,你也可以创建自己的
开始之前
在你获取预警时,你必须激活整合预警并设置一个通信通道(指定预警信息如何通过邮件、slack信息传递)
激活整合预警
- 选择配置–设置—高级设置
- 在技术预研特征下,打开整合预警的功能
- 点击应用,一个新的通信表会出现
设置通信通道
-
当通信表出现,选择它
-
选择预警的方式,邮件或者slack
-
邮件,定义SMTP邮件的服务
服务地址:默认发送邮件的SMTP智能主机包括端口号
Hello:识别SMTP服务的默认主机名
From:发送着的邮件地址
-
slack,输入URL
-
-
点击应用
添加预警规则
-
选择预警规则表单
-
点击添加
-
输入相关内容
-
点击添加或者取消
添加预警规则模板
- 选择预警规则模板表
- 点击添加
- 输入一个模板
- 点击添加或者取消
备份和恢复
备份和恢复都是技术预研功能。
当前支持:MySQL database server or MongoDB replica set cluster, backing up to Amazon AWS S3 storage locations
查询分析
查询分析显示了各种查询的执行过程,各个查询花费的时间分布,它能帮你分析查询超时问题,优化数据库的性能,找到并从源头上解决问题。
查询分析功能支持MySQL,MongoDB,PostgreSQL,MySQL的最低要求如下:
查询服务以可视化和数字的方式显示度量数据,性能相关的特征数据在结论中以图表的形式展示。
这个界面包含三个面板:过滤面板、全局面板、详细面板
数据来源非实时的,受网络的影响会延迟。
安全威胁工具
安全威胁工具会定时检查连接的数据库,如果任何一个数据库服务暴露出潜在的安全威胁会向你发出预警
所有的检测都在PMM的客户端内部,检测的结果发送到PMM服务端,将接受的结果进行汇总,在主页面显示数量,其相关相信信息在界面的PMM数据库检查处显示
检查项每24个小时会自动从Percona平台上下载,并进行检查(这个时间间隔是不能被设置的)
检查的结果总是保存在PMM服务端,其中不会涉及到自动测试的匿名数据
主页面上安全检测失败的面板显示安全检查失败的个数,颜色代表不同安全的不同程度,重大缺陷(红色),主要缺陷(褐色),小缺陷(蓝色),如图所示
安全威胁工具默认是禁用的,可以通过配置–设置–高级设置进行启用
启动安全威胁工具后,PMM服务端会从Percona平台下载安全检查项,并检查一次。这个操作是在后台运行的,以至于更新威胁工具设置立即就能完成,但是需要花费很长的时间下载检查项并进行一次检查,才能将检查结果可视化的显示在检查界面上
DBaaS
DBaaS功能目前处于技术预研阶段,随时都能改变
DBaaS页面可以让你在k8s和数据库集群上进行添加、移除等操作
激活DBaaS
默认情况DBaaS是禁用状态
可以通过配置–设置–高级选项启用
打开DBaaS界面
从左边菜单选择DBaas,如下图所示
k8s集群
添加一个k8s集群
将安装PXC和PSMDB作为k8s集群注册进行的一部分,它可以帮你将数据库集群上传到k8s集群
- 点击注册新k8s集群
- 输入集群名字和配置文件内容
- 点击注册
- 立马显示告诉你是否注册成功
注销要给k8s集群
重要:
如果有DB集群关联了k8s集群,则不能注销它
- 点击注销
- 点击继续、放弃或者取消
查看一个k8s集群的配置
- 找到你想要查看的k8s集群的行信息
- 在Action列中点击查看配置文件
管理授权组件的版本
管理员可以为每一个集群选择组件授权的版本和默认的版本
- 选择你想管理的集群的行
- 在Action列中点击管理版本
- 选择Operator和Compoent
- 点击save
DB集群
添加一个DB集群
你必须在创建一个DB集群之前至少创建一个k8s集群
为了监视一个DB集群,首先需要为PMM服务端设置一个公共地址(PMM服务端可以进入的地址或主机名称)
-
选择DB集群
-
点击创建DB集群
-
在步骤1中,基本选项:
-
输入一个集群名称
- 必须以小写字符开头
- 可以有小写字符、数字、连接符组成
- 必须以字符数字符号结尾
-
从k8s菜单中选择一个集群
-
从数据库类型菜单中选择一个数据库类型
-
-
在步骤2中,高级选项:
-
拓扑结构 选择集群或者单节点
-
选择节点的数量(最少是3)
-
如果你想让外部的k8s集群可以访问你的数据库集群,可以选择外部权限
默认情况下,只提供内部权限
对于本地k8s集群(例如minikube)不能赋予外部权限
-
为每个节点的资源进行预先配置
为内存、CPU、磁盘空间进行小、中、大的混合预先配置
自定义的预先配置的值是可以被修改的
-
-
当基本选项和高级选项的会话的图标都是绿色,则创建的DB集群被激活(如果没有激活,检查上述两个会话中字段中红色的值)
-
显示集群的信息行
删除一个DB集群
编辑一个DB集群
重启一个DB集群
挂起或者恢复一个DB集群
配置
选择配置–设置–Metrics Resolution
度量方案
度量以低、中、高三个间隔方案来收集数据
间隔的时间单位是秒
高级设置
数据保留时间
遥测
开启遥测,能够获取并发送匿名数据到Percona,它可以帮助我们决定我们重点开发的地方和PMM每个版本用到的东西,收集这些信息可以帮助我们决定是否我们要发布一个不再支持的版本的补丁,决定支持一个没必要的某个版本的时间,甚至决定鼓励使用和组织使用的频率
收集的数据有:
- PMM的版本
- 安装方法(dokcer,AMI,OVF)
- 服务的运行时间
- 安全威胁工具的状态(禁用或者开启)
- 整合与预警的状态(禁用或者开启)
我们不能收集标识系统的任何信息,但是下面的两点需要留意:
- 在放弃国家代码之前,它会从提交的IP得知进行评估
- 我们通过UUID v4随机生成一个实例ID,对于想要实例的升级,这个生成的ID跟现存的新的实例的ID是不同的
一个新的PMM服务实例的第一次遥测报告会延迟24个小时,因此可以有充足的时间禁用那些不希望共享信息的服务
Grafana的匿名使用统计不受PMM管理,为了激活它,你必须在每次更新后,改变PMM服务容器的配置
跟PMM设置页面一样,可以在MM服务的docker run 语句中通过 -e DISABLE_TELEMETRY=1选项来禁用遥测
- 如果安全威胁工具在PMM的设置中是开启的,那么遥测会自动开启
- 遥测会立即发送,24个小时的时间间隔并不可靠
检查更新
当该功能激活后,PMM会自动地进行更新检查,如果有必要,会在主界面地更新界面给出提示
安全威胁工具
该工具会在一个注册地实例和找到地报告进行一些列地安全相关的检查,默认情况是禁用的
公共地址
PMM服务可以访问的地址或者宿主机名称,从浏览器获取,以使浏览器自动检测并填充此字段
SSH 密钥
预警管理整合
预警管理器管理预警信息,消除重复、分组、路由到合适的接收者或者展示组件
Percona 平台
沟通
更新
在更新PMM客户端之前更新PMM服务端
更新服务端
客户端和服务端的组件的安装和更新都是独立的
PMM服务端可以在本地以docker镜像、虚机或者亚马逊云实例运行,每个都有自己的安装和更新步骤
最好的也最简单的方式是在主页面的更新面板上更新PMM服务
从PMM1更新
因为PMM1和PMM2之间存在巨大的架构差异,所以没有直接的更新路径。从PMM1到PMM2版本的切换的方式是一个渐变的过度
总之,它涉及到在一个新的主机上首次启动一个新的PMM2服务,并将客户端连接到它。当在某个时间点你要关闭已经存在的PMM1服务时,它会以新的数据的形式发送到PMM2服务,老的度量数据会停留配置的时间(默认是30天)
通过Grafana界面配置的任何预警必须重新创建,因为在PMM1和PMM2的对象界面的Id不能匹配。在这个实例中,我们建议暂时将PMM2中需要独立的预警管理实例的预警管理数据移除。我们原始的将它集成到PMM2服务中,期望可以支持已存在的预警管理规则
安全
可以通过PMM的安装提高安全性:
- 通过ssl加密实现客户端和服务端的安全通信
- Grafana HTTPS的安全cookie
查看启用的哪种安全方式:
pmm-admin status
提示
- 如果可能的话,通过将PMM服务于与互联网隔离可以得到一个更高的安全水平
SSL 加密
需要一个有效的SSL证书来实现客户端和服务端的通信加密
在docker ,OVF,AMI镜像中,自签名的证书保存在/src/nginx
为了用自己的证书,通过下面方式(任选一种):
- 将本地的证书目录挂载到相同的位置
- 将你的证书拷贝到运行的PMM服务容器中
挂载证书
docker run -d -p 443:443 --volumes-from pmm-data \
--name pmm-server -v /etc/pmm- certs:/srv/nginx \
--restart always percona/pmm-server:2
- 这个证书的权限只有root有,可以通过:chown 0:0 /etc/pmm-certs/*
- 这个挂载的证书目录(这个例子中是 /etc/pmm-certs)必须包含certificate.crt, certificate.key, ca-certs.pem and dhparam.pem四个文件
- 对于SSL加密的情况,容器必须暴露443端口来代替原来的80端口
复制证书
docker cp certificate.crt pmm-server:/srv/nginx/certificate.crt
docker cp certificate.key pmm-server:/srv/nginx/certificate.key
docker cp ca-certs.pem pmm-server:/srv/nginx/ca-certs.pem
docker cp dhparam.pem pmm-server:/srv/nginx/dhparam.pem
当PMM客户端连接PMM服务端时,启用SSL
pmm-admin config --server-url=https://<user>:<password>@<server IP>
Grafana HTTPS 安全cookie
启动
-
在docker镜像中启动一个shell
docker exec -it pmm-server bash
-
编辑/etc/grafana/grafana.ini
-
启动cookie_secure,将其值设为true
-
重启Grafana
supervisorctl restart grafana
优化
通过表统计选项提高PMM的性能
如果一个MySQL实例中有大量的schema和tables,通过pmm-admin add有以下两个选项提高PMM性能:
-
--disable-tablestats
-
or
-
--disable-tablestats-limit
重要提示:
- 这些设置仅仅使用于添加一个实例的情况,为了改变它,必须移除并重新加载这个实例
- 当添加实例的时候只有一个选项可以使用
禁用独立表统计的实例
用法
pmm-admin add mysql --disable-tablestats
改变禁用独立表统计的表数量的上限
用法
pmm-admin add mysql --disable-tablestats-limit-<LIMIT>
注释
通过命令行创建注释
pmm-admin annotate
共享界面镜像
步骤1:安装依赖
-
连接PMM服务的docker 容器
docker exec -it pmm-server bash
-
安装Grafana插件
grafana-cli plugins install grafana-image-renderer
-
重启Grafana
supervisorctl restart grafana
-
安装库
yum install -y libXcomposite libXdamage libXtst cups libXScrnSaver pango \ atk adwaita-cursor-theme adwaita-icon-theme at at-spi2-atk at-spi2-core \ cairo-gobject colord-libs dconf desktop-file-utils ed emacs-filesystem \ gdk-pixbuf2 glib-networking gnutls gsettings-desktop-schemas \ gtk-update-icon-cache gtk3 hicolor-icon-theme jasper-libs json-glib \ libappindicator-gtk3 libdbusmenu libdbusmenu-gtk3 libepoxy \ liberation-fonts liberation-narrow-fonts liberation-sans-fonts \ liberation-serif-fonts libgusb libindicator-gtk3 libmodman libproxy \ libsoup libwayland-cursor libwayland-egl libxkbcommon m4 mailx nettle \ patch psmisc redhat-lsb-core redhat-lsb-submod-security rest spax time \ trousers xdg-utils xkeyboard-config alsa-lib
步骤2:共享镜像
- 导航到你要共享的镜像
- 打开面板菜单
- 选择共享,显示共享面板
- 点击直接链接共享镜像
- 一个新的浏览器表单打开,等待镜像被共享,然后用浏览器的保存功能下载该镜像
排除故障
架构
PMM是由我们自己的和第三方开源工具构建的客户端/服务端应用
PMM客户端包提供的功能:
- 每个数据库和服务类型的导出器。当导出器运行时,它会链接到数据库或者服务实例,运行度量数据集合的路由,并把运行结果发送到PMM服务端
- pmm-agent ,后台运行,可以启动和停止导出功能
- vmgent 一个后台运行的序列化数据库进程,它可以将度量数据发送到PMM服务
PMM服务端包提供的功能:
- pmm-managed
- 查询分析
- Grafana
- 序列化数据库
PMM服务端
-
查询分析(QAN)可以分析一段时间内MySQL的查询性能,客户端的查询分析代理包括:
- API 是存储数据和查询数据的后端
- web app是将查找分析数据可视化的web应用
-
度量标准监控提供了对于MySQL或者MongoDB服务实例的重大缺陷的历史记录,包括:
- VictoriaMetrics 一个可变的时间序列化的数据库(在PMM2.12.0中替换了Prometheus)
- ClickHouse 是一个第三方列导向的数据库,它可以简化查询分析的功能
- Grafana 是一个第三方的界面,通过web界面将收集的数据进行可视化绘制器
- Percona Dashboard 是一系列Grafana的结合
PMM客户端
- pmm-admin 是一个管理PMM客户端的命令行工具,例如添加或者移除需要被监控的数据库实例
- pmm-agent 是一个客户端的组件,一个最小的命令行接口,它是使用客户端功能的中心入口点,包括客户权限认证、从PMM服务端获取存储的客户端配置、管理导出器和其他的代理
- node_exporter 收集通用系统的度量指标的导出器
- mysqld_exporter 收集MySQL服务的度量指标的导出器
- mongodb_exporter
- postgres_exporter
- proxysql_exporter
- rds_exporter
- azure_database_exporter
为了保证从PMM客户端到PMM服务端的数据传输的安全性,所有的导出器都能通过
SSL/TLS加密连接,他们和PMM服务端通信是通过HTTP基本的权限认证进行保护的