PMM 监控mysql 教程一 基础概念
背景:
之前我监控mysql都是用 zabbix + mysql的脚本, 但这种监控方式不能实时查看 慢SQL等。今天发现 Percona 公司真是越来越优秀
集成开发了数据库监控系统_PMM ,接下来我们就一起使用和管理。由于官方文档是英文,而且网上扒拉的文档多数处于部署阶段,具体用法,还需要自己探索。
为方便网友,我来进行翻译和使用经验总结:
PMM 架构整体概览:
PMM 平台是 CS 架构并且可扩展, 包含2个部分:
PMM 客户端: 部署在每个数据库服务器主机上,搜集服务器指标,查询性能数据
PMM 服务端: PMM 搜集数据后 存储,界面,图形展示
客户端和服务器端,模块都是打包好的,非常容易安装使用, 她假定用户 不需要明白每个模块的组成,以及如何整合, 然而,如果你想提升PMM 的潜力,了解内部结构还是有必要的。
PMM 是一系列工具的集合,看起来无缝的工作在一起,有些是percona 自己开发,有些是第三方开源工具。
下面分别介绍 客户端, 服务端,拓扑管理 orchestrator
PMM Client
每个 PMM 客户端收集服务器和数据性能指标,并且发送给对应的 pmm server
PMM Client 包有以下组成:
• pmm-admin 是一个管理 客户端的命令行工具, 例如, 增加删除数据库
• pmm-mysql-queries-0 是一个查询msyql数据的服务,负责搜集和给server发送性能数据
• pmm-mongodb-queries-0 是一个查询mongo 数据的服务,负责搜集和给server发送性能数据
• node_exporter 是一个 普罗米修斯的 搜集 系统指标的服务.
• mysqld_exporte 是一个 普罗米修斯的搜集 mysql指标的服务.
• mongodb_exporter是一个 普罗米修斯的搜集 mongo指标的服务.
• proxysql_exporter 是一个 普罗米修斯的搜集 proxySQL指标的服务.
PMM Server
PMM server 是中心监控主机, 他通过如下方式进行发行:
• DOCKER 镜像
• OVA 可以跑在 VirtualBox 中
• AMI (Amazon Machine Image) 可以跑在 Amazon Web Services
PMM Server 包括以下工具
• 查询分析使你能够分析周期性的分析数据库性能.除了客户端外,还包括如下内容:
– QAN API 是后台接收和存储查询数据的, 从PMM agent 发过来.
– QAN Web App 是一个web 应用, 可视化查询数据
• 指标监控提供 历史视图,对于mysql和mongo来说是极其重要的.包括如下内容
– Prometheus 是一个第三方时序数据,连接到 pmm 客户端上的 exporter ,收集性能指标,
* Consul 提供了一个可以远程调用的API :能够, 增加,删除promethues 的主机, 同时,能够存储监控元数据. 警告: 尽管可以配置Consul web UI 但不要做任何更改.
– Grafana是一个第三方的可视化工具,用来更易理解的方式显示 prometheus 的数据,
* Percona 界面,是为 Grafana显示而开发的 一套界面
• Orchestrator 是一个 mysql复制拓扑管理和可视化工具,
所有的工具,都可以通过 PMM Server web 界面操作 .
Orchestrator
Orchestrator是一个 可视化mysql复制拓扑工具,可以通过pmm 地址后面添加 /orchestrator 连接URL 访问, 也可以点击 拓扑管理按钮来访问.
要使用这个功能,需要在被监控的 数据库中创建如下用户:
GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO \’orc_client_user\’@\’%\’ IDENTIFIED BY \’orc_client_password’;
Note: 这是默认的案例,如果使用不同的用户名密码, 需要在启动 PMM server时 使用如下参数: ORCHESTRATOR_PASSWORD and ORCHESTRATOR_USER
options.
例子
$ docker run … -e ORCHESTRATOR_ENABLED=true ORCHESTRATOR_USER=name -e ORCHESTRATOR_PASSWORD=pass … percona/pmm-server:latest
你可以使用 web里面的发现页面, 然后增加拓扑
注意: Orchestrator 不被 默认开启, 从 PMM 1.3.0 版本开始
Orchestrator被添加进PMM 是有额外的目的, 他是一个单独的工具, 没有被整合进PMM,可以使用单独的页面访问他。.