设为首页 收藏本站
查看: 1032|回复: 0

[经验分享] Percona Monitoring and Management (PMM) 监控MongoDB-ygqygq2

[复制链接]

尚未签到

发表于 2018-10-25 08:19:18 | 显示全部楼层 |阅读模式

  • Percona Monitoring and Management (PMM) 监控MongoDB

  •   1. Percona监控和管理概述

    •   1.1 Percona监控和管理架构
    •   1.2 PMM Client
    •   1.3 PMM Server

  •   2. 安装MongoDB

    •   2.1 配置Percona yum源

  •   3. 部署Percona监控和管理

    •   3.1 yum安装Docker
    •   3.2 创建一个PMM数据容器
    •   3.3 创建并运行PMM服务器容器
    •   3.4 安装PMM客户端
    •   3.5 pmm server与pmm client通信
    •   3.6 pmm client添加监控项
    •   3.7 一些效果图

  环境:
  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当前的结构:
DSC0000.png

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源
  安装命令如下:
sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm  请确保有安装成功结果:
Installed:  percona-release.noarch 0:0.1-4
  Complete!
sudo yum list | grep percona  显示部分的安装包:
percona-release.noarch                0.1-4                         installed  Percona-SQL-50-debuginfo.x86_64       5.0.92-b23.89.rhel6           percona-release-x86_64
  Percona-SQL-client-50.x86_64          5.0.92-b23.89.rhel6           percona-release-x86_64
  Percona-SQL-devel-50.x86_64           5.0.92-b23.89.rhel6           percona-release-x86_64
  Percona-SQL-server-50.x86_64          5.0.92-b23.89.rhel6           percona-release-x86_64
  Percona-SQL-shared-50.x86_64          5.0.92-b23.89.rhel6           percona-release-x86_64
  Percona-SQL-shared-compat.x86_64      5.0.92-b23.89.rhel6           percona-release-x86_64
  Percona-SQL-test-50.x86_64            5.0.92-b23.89.rhel6           percona-release-x86_64
  Percona-Server-51-debuginfo.x86_64    5.1.73-rel14.12.624.rhel6     percona-release-x86_64
  Percona-Server-55-debuginfo.x86_64    5.5.55-rel38.8.el6            percona-release-x86_64
  Percona-Server-56-debuginfo.x86_64    5.6.36-rel82.0.el6            percona-release-x86_64
  Percona-Server-57-debuginfo.x86_64    5.7.18-15.1.el6               percona-release-x86_64
  Percona-Server-MongoDB.x86_64         3.0.15-1.10.el6               percona-release-x86_64
  Percona-Server-MongoDB-32.x86_64      3.2.13-3.3.el6                percona-release-x86_64
  3.2.13-3.3.el6                percona-release-x86_64
  3.2.13-3.3.el6                percona-release-x86_64
  3.2.13-3.3.el6                percona-release-x86_64
  3.2.13-3.3.el6                percona-release-x86_64
  3.2.13-3.3.el6                percona-release-x86_64
  Percona-Server-MongoDB-34.x86_64      3.4.5-1.5.el6                 percona-release-x86_64
  这里我们安装MongoDB3.4版本
sudo yum install Percona-Server-MongoDB-34  如果您已经启用SELinux,则需要做配置相关,这里不做详细说明。我是禁用SELinux状态。
  MongoDB默认配置文件/etc/mongod.conf,数据目录默认是/var/lib/mongodb/ 。有需要,请自行修改配置文件。
  查看MongoDB是否启动:
/etc/init.d/mongod status3. 部署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,所以直接使用如下命令安装:
yum install docker  service docker start
  chkconfig docker on
  注意:
  使用pmm-server映像时,请使用特定的版本标签,而不是最新的标签。目前的最新稳定版本是1.2.0。
3.2 创建一个PMM数据容器
  要创建持久PMM数据的容器,请运行以下命令:
docker create \  -v /opt/prometheus/data \
  -v /opt/consul-data \
  -v /var/lib/mysql \
  -v /var/lib/grafana \
  --name pmm-data \
  percona/pmm-server:1.2.0 /bin/true
  运行结果:
Unable to find image 'percona/pmm-server:1.2.0' locally  1.2.0: Pulling from percona/pmm-server
  45a2e645736c: Pull complete
  fe1f1770c826: Pull complete
  4f1bdb417453: Pull complete
  a2f3207fd166: Pull complete
  2f8fffdaf5ef: Pull complete
  46e8ca929fde: Pull complete
  5c89a1a51b6b: Pull complete
  fceac4be9a77: Pull complete
  fb79d7de9adf: Pull complete
  Digest: sha256:b9e200c9bc66bb2c31d75d57852474cf00a292d3ccb8301fdd55cc6e25738e3d
  Status: Downloaded newer image for percona/pmm-server:1.2.0
  a93b2e74a10afe3b47e127e7ef43072cff8e9b060c2a0e1cbdf7a0baae8dd712
  注意:
  这个容器不运行,它只是为了确保在升级到更新的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 -d \  -p 80:80 \
  --volumes-from pmm-data \
  --name pmm-server \
  --restart always \
  percona/pmm-server:1.2.0
e8e133c3af3669257debdbce89bd36080510b2b2be30b0595cf295eb891f7d42  前面的命令解释:
  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 安装运行是否正确:
netstat -tpln|grep 80  通过使用运行容器的主机的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软件包
sudo yum install pmm-client -y  将PMM客户端连接到PMM服务器
  使用pmm-admin config --help,查看帮助
  pmm-admin config --server 172.31.27.176:80
OK, PMM server is alive.  PMM Server      | 172.31.27.176:80
  Client Name     | ip-172-31-27-176
  Client Address  | 172.17.0.1
3.5 pmm server与pmm client通信
  从以下操作也可以看出,pmm并不支持代理,是C/S构架。
  pmm-admin check-network检查结果:
PMM Network Status  Server Address | 172.31.27.176:80
  ient Address | 172.17.0.1
  * System Time
  NTP Server (0.pool.ntp.org)         | 2017-07-17 07:55:57 +0000 UTC
  PMM Server                          | 2017-07-17 07:55:57 +0000 GMT
  PMM Client                          | 2017-07-17 07:55:57 +0000 UTC
  PMM Server Time Drift               | OK
  PMM Client Time Drift               | OK
  PMM Client to PMM Server Time Drift | OK
  * Connection: Client --> Server
  -------------------- -------
  SERVER SERVICE       STATUS
  -------------------- -------
  Consul API           OK
  Prometheus API       OK
  Query Analytics API  OK
  Connection duration | 75.404μs
  Request duration    | 625.358μs
  Full round trip     | 700.762μs
  * Connection: Client

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626123-1-1.html 上篇帖子: MongoDB Hot Backup 测试及痛点 下篇帖子: Mongodb 副本集+分片集群搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表