Percona Monitoring and Management架构
PMM基于简单的client-server模型,可实现高效的扩展性,它包含以下模块:
- PMM Client,安装在任何你希望被监控的数据库服务器上.它会手机服务器指标和查询分析数据以提供一份完整的性能概览.数据被收集并发送到PMM Server
- PMM Server是PMM的核心部分,它聚合手机的数据,并以Web界面的表格,仪表盘和图形的形式展现
这些模块被封装以提供简单的安装和使用给用户,无需关心它的内部实现方法.但是,如果要利用PMM的全部潜力,内部结构就很重要.
PMM是旨在无缝协同工作的工具集合。 一些是由Percona开发的,一些是第三方开源工具。
Note
整个客户端 - 服务器模型不太可能发生变化,但组合每个组件的工具集可能随产品而变化。
下图说明了PMM当前的结构:
PMM Client
PMM客户端软件包适用于大多数流行的Linux发行版:
- DEB用于基于Debian的发行版(包括Ubuntu等)
- Red Hat Enterprise Linux衍生产品的RPM(包括CentOS,Oracle Linux,Amazon Linux等)
还有可以在任何Linux系统上使用的通用tarball二进制文件。
有关详细信息,请参阅安装PMM客户端。
PMM客户端软件包包含以下内容:
pmm-admin
是一个用于管理PMM Client的命令行工具,例如:添加删除数你想要监控的数据库实例percona-qan-agent
是一个用于管理 Query Analytics (QAN) agent的服务is a service that manages the Query Analytics (QAN) agent as it collects query performance data. It also connects with QAN API in PMM Server and sends over collected data.
node-exporter
是一个Prometheus exporter用于收集系统指标For more information, see https://github.com/percona/node_exporter.mysqld_exporter
是一个Prometheus exporter用于收集MySQL server指标.For more information, see https://github.com/percona/mysqld_exporter.mongodb_exporter
是一个Prometheus exporter用于收集MongoDB server指标.For more information, see https://github.com/percona/mongodb_exporter.proxysql_exporter
是一个Prometheus exporter用于收集ProxySQL性能指标. For more information, see https://github.com/percona/proxysql_exporter.
PMM Server
PMM服务器将作为您的中央监控主机的机器运行。 它通过以下方式作为设备分发:
- Docker image that you can use to run a container
- Open Virtual Appliance(OVA),您可以在VirtualBox或其他管理程序中运行
- Amazon Machine Image (AMI) that you can run via Amazon Web Services (AWS)
有关更多信息,请参阅Running PMM Server.
PMM服务器由以下工具组成:
Query Analytics (QAN)使你能够分析MySQL查询性能. 除客户端QAN代理外,还包括以下内容:
- QAN API是用于存储和访问在PMM客户端上运行的
percona-qan-agent
收集的查询数据的后端。 - QAN Web App是一个web程序用于可视化收集的Query Analytics数据
- QAN API是用于存储和访问在PMM客户端上运行的
Metrics Monitor (MM)提供对MySQL或MongoDB服务器实例至关重要的指标的历史视图。 它包括以下内容:
Prometheus是一个第三方的时间序列数据库,连接到PMM Client上运行的exporters并聚合收集到的指标.更多信息请参阅Prometheus Docs [1].
Consulprovides an API that a PMM Client can use to remotely list,add, and remove hosts for Prometheus. It also stores monitoring metadata. For more information, see Consul Docs [2].
Warning
Although the Consul web UI is accessible, do not make any changes to the configuration.
Grafana是第三方仪表板和图形构建器,用于在直观的Web界面中可视化由Prometheus汇总的数据。 有关更多信息,请参阅Grafana Docs[3].
- Percona Dashboards是由Percona开发的Grafana仪表板.
Orchestrator是一个MySQL的复制拓扑管理和可视化工具。 有关详细信息,请参阅Orchestrator Manual [4].
所有工具都可以通过PMM Server web界面(登录页面)访问.For more information, see Using the Percona Monitoring and Management Platform.
部署方案
PMM旨在针对各种环境进行扩展。 根据您的基础架构的大小和复杂性,您可以通过多种方式进行部署。
简单场景
如果您只有一个MySQL或MongoDB服务器,则可以在此数据库主机上安装和运行两个模块(PMM客户端和PMM服务器)。
典型场景
将典型的MySQL和MongoDB服务器实例分布在不同的主机上。 在这种情况下,您可以在专用监控主机上运行PMM Server,并在要监视的每个数据库主机上安装PMM Client。 来自主机的数据将聚合在PMM服务器上。