Percona Monitoring and Management (PMM) 监控MongoDB

作者: ygqygq2 分类: 数据库,系统/运维 发布时间: 2017-07-18 17:21

Percona Monitoring and Management (PMM) 监控MongoDB

环境:
AWS ec2 CentOS7一台

1. Percona监控和管理概述

Percona监控和管理(PMM)是一个用于管理和监控MySQL和MongoDB性能的开源平台。 它由Percona与托管数据库服务,支持和咨询领域的专家合作开发。 PMM是一个免费的开源解决方案,您可以在自己的环境中运行,以实现最大的安全性和可靠性。 它为mysql和mongodb服务器提供全面的基于时间的分析,以确保您的数据尽可能高效地工作。

1.1 Percona监控和管理架构

PMM平台基于简单的客户端 – 服务器模型,可实现高效的可扩展性。它包括以下模块:
PMM Client安装在您要监视的每个数据库主机上。它收集服务器指标,一般系统指标和查询分析数据,以获得完整的性能概述。收集的数据发送到PMM服务器。
PMM Server是PMM的核心部分,它聚合收集的数据,并以Web界面的表格,仪表板和图形的形式呈现。
PMM是旨在无缝协同工作的工具集合。一些是由Percona开发的,一些是第三方开源工具。
下图说明了PMM当前的结构:

1.2 PMM Client

PMM客户端软件包适用于大多数流行的Linux发行版:
– Red Hat Enterprise linux衍生产品的RPM(包括CentOS,Oracle Linux,Amazon Linux等)
– DEB用于基于Debian的发行版(包括Ubuntu等)

PMM客户端软件包包含以下内容:
pmm-admin是用于管理PMM客户端的命令行工具,例如,添加和删除要监视的数据库实例。
percona-qan-agent是一种在收集查询性能数据时管理查询分析(QAN)代理的服务。它还与PMM服务器中的QAN API连接,并发送收集的数据。
node_exporter是收集一般系统指标的Prometheus exporter。有关详细信息,请参阅https://github.com/prometheus/node_exporter
mysqld_exporter是收集MySQL服务器指标的Prometheus exporter。有关详细信息,请参阅https://github.com/percona/mysqld_exporter
mongodb_exporter是收集MongoDB服务器指标的Prometheus exporter。有关详细信息,请参阅https://github.com/percona/mongodb_exporter
proxysql_exporter是收集ProxySQL性能指标的Prometheus exporter。有关详细信息,请参阅https://github.com/percona/proxysql_exporter

1.3 PMM Server

PMM服务器将作为您的中央监控主机的机器运行。它通过以下方式作为设备分发:
可以用于运行容器的Docker映像
可以在VirtualBox或其他管理程序中运行
可以通过Amazon Web Services(AWS)运行的Amazon Machine Image(AMI)
PMM服务器由以下工具组成:
查询分析(QAN)使您能够在一段时间内分析MySQL查询性能。除客户端QAN代理外,还包括以下内容:

QAN API是用于存储和访问在PMM客户端上运行的percona-qan-agent收集的查询数据的后端
QAN Web App是用于可视化收集的Query Analytics数据的Web应用程序。
度量监视器(MM)提供对MySQL或MongoDB服务器实例至关重要的度量的历史视图。它包括以下内容:

Prometheus是一个第三方时间序列数据库,连接到在PMM客户端上运行的出口商,并汇总了收集的指标.
Consul提供一个PMM客户端可以远程列出,添加和删除Prometheus主机的API。
Grafana是一个第三方仪表板和图形构建器,用于在直观的Web界面中可视化由Prometheus汇总的数据.
Percona仪表板是由Percona开发的Grafana仪表板
Orchestrator是MySQL复制拓扑管理和可视化工具。
部署方案(https://www.percona.com/doc/percona-monitoring-and-management/architecture.html#id13)

参考:
[1] https://prometheus.io/docs/introduction/overview/
[2] https://www.consul.io/docs/
[3] http://docs.grafana.org/
[4] https://github.com/outbrain/orchestrator/wiki/Orchestrator-Manual

2. 安装MongoDB

2.1 配置Percona yum源

安装命令如下:

请确保有安装成功结果:

显示部分的安装包:

这里我们安装MongoDB3.4版本

如果您已经启用SELinux,则需要做配置相关,这里不做详细说明。我是禁用SELinux状态。

MongoDB默认配置文件/etc/mongod.conf,数据目录默认是/var/lib/mongodb/ 。有需要,请自行修改配置文件。

查看MongoDB是否启动:

3. 部署Percona监控和管理

以下过程介绍如何正确部署PMM:
在主机上运行PMM Server,用于访问收集的数据,查看基于时间的图表,并执行性能分析。

以下安装的选项可用:
* 使用Docker运行PMM服务器
* 使用VirtualBox运行PMM服务器
* 使用Amazon Machine Image(AMI)运行PMM服务器

这里我们选择使用Docker运行PMM服务器。

使用docker运行PMM Server
PMM服务器的Docker映像公开托管在https://hub.docker.com/r/percona/pmm-server/。 如果要从docker映像运行PMM Server,则主机必须能够运行Docker 1.12.6或更高版本,并具有网络访问权限。 有关使用Docker的更多信息,请参阅Docker文档

3.1 yum安装Docker

一般CentOS需要安装epel源,我这里是aws ec2 linux,所以直接使用如下命令安装:

注意
使用pmm-server映像时,请使用特定的版本标签,而不是最新的标签。目前的最新稳定版本是1.2.0。

3.2 创建一个PMM数据容器

要创建持久PMM数据的容器,请运行以下命令:

运行结果:

注意
这个容器不运行,它只是为了确保在升级到更新的PMM – server映像时保留所有PMM数据。不要删除或重新创建这个容器,除非您打算删除所有PMM数据并从头开始。

前面的命令解释:
docker create命令表示docker守护进程从镜像中创建容器。
- v选项对volumes进行指定初始化 。
--name选项为容器指定一个自定义名称,用于在Docker网络中引用容器。例如名字:pmm-server
percona/pmm-server:1.2.0是自源的镜像的名字和版本标识。
/bin/true容器进行运行的命令。

3.3 创建并运行PMM服务器容器

要运行PMM服务器,请使用以下命令:

前面的命令解释:
docker run命令运行一个docker守护进程以运行容器。
- d选项以分离模式(即在后台)启动容器。
- p选项用于映射访问PMM服务器web UI的端口。如果端口80不可用,您可以使用- p 8080:80将登录页面映射到端口8080。
--volumes-from表示挂载容器来自前面步骤指定的pmm-data
--name选项为容器指定一个自定义名称,用于在Docker网络中引用容器。例如名字:pmm-server
--restart选项定义容器的重新启动策略。设置它始终确保Docker守护进程在启动时启动容器,如果容器退出,则重新启动它。
percona/pmm-server:1.2.0是自源的镜像的名字和版本标识。

使用如下命令确认PMM 安装运行是否正确:

通过使用运行容器的主机的IP地址连接到PMM Web界面来验证PMM服务器是否正在运行,然后在要监视的所有数据库主机上安装PMM Client
Component URL
PMM landing page http://172.31.27.176:80
Query Analytics (QAN web app) http://172.31.27.176/qan/
Metrics Monitor (Grafana) http://172.31.27.176/graph/User name: admin Password: admin
Orchestrator http://172.31.27.176/orchestrator

3.4 安装PMM客户端

PMM客户端是安装在您要监视的MySQL或MongoDB主机的客户端和数据提供采集方。 组件收集关于一般系统和数据库性能的各种数据,并将该数据发送到相应的PMM服务器组件。

注意
不应该在具有相同主机名的数据库服务器上安装代理,因为PMM服务器使用主机名来标识收集的数据。

安装PMM客户端

安装pmm-client软件包

将PMM客户端连接到PMM服务器

使用pmm-admin config --help,查看帮助

pmm-admin config --server 172.31.27.176:80

3.5 pmm server与pmm client通信

从以下操作也可以看出,pmm并不支持代理,是C/S构架。

pmm-admin check-network检查结果:

防火墙开启与docker容器通信:

pmm-admin check-network再次查看结果,则通信正常。

3.6 pmm client添加监控项

管理PMM客户端的一些命令说明:

3.7 一些效果图

参考:
[1] https://www.percona.com/doc/percona-monitoring-and-management/index.html
[2] https://www.percona.com/doc/percona-repo-config/index.html
[3] https://www.percona.com/doc/percona-monitoring-and-management/architecture.html
[4] https://www.percona.com/doc/percona-monitoring-and-management/deploy/server/docker.html#run-server-docker
[5] https://www.percona.com/doc/percona-monitoring-and-management/pmm-admin.html

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注