Percona Monitoring and Management (PMM)是一款开源的用于管理和监控MySQL和MongoDB性能的开源平台

通过PMM客户端收集到的DB监控数据用第三方软件Grafana画图展示出来
PMM提供了对MyISAM、InnoDB、TokuDB和PXC/Glarera的监控,另外也提供了Query Analytics的功能,可以
检视执行了哪些SQL指令,并对执行效能较差的语法进行优化。另外在新版本还支持了MySQL复制拓扑图结构构造

1 安装

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum install -y epel-release
yum install docker -y
systemctl start docker
docker pull percona/pmm-server:latest

查看镜像

[root@jenkins opt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/percona/pmm-server latest deac61541b67 5 months ago 1.08 GB
[root@jenkins opt]# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7f2769b/1.13.1
Built: Mon Aug 5 15:09:42 2019
OS/Arch: linux/amd64 Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7f2769b/1.13.1
Built: Mon Aug 5 15:09:42 2019
OS/Arch: linux/amd64
Experimental: false

--关闭防火墙,禁用selinux

groupadd docker
useradd -g docker docker

创建容器

[docker@jenkins ~]$ docker create \
> -v /opt/prometheus/data \
> -v /opt/consul-data \
> -v /var/lib/mysql \
> -v /var/lib/grafana \
> --name pmm-data \
> docker.io/percona/pmm-server /bin/true
fc92bd7d4bcc2e2014cbb5a03584ea269e8cea0e268aca4901a6827cf4570529

启动容器

[docker@jenkins ~]$ docker run -d    -p 8090:80    --volumes-from pmm-data    --name pmm-server    --restart always    docker.io/percona/pmm-server
8d925d326813083143c04ff6155617738624f4a9e8c6792ae6200bd78e05a214

安装pmm-client

[root@jenkins opt]# rpm -ivh pmm-client-1.17.1-1.el7.x86_64.rpm
warning: pmm-client-1.17.1-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:pmm-client-1.17.1-1.el7 ################################# [100%]

配置server

[root@jenkins opt]# pmm-admin config --server 192.168.19.229:8090
OK, PMM server is alive. PMM Server | 192.168.19.229:8090
Client Name | jenkins
Client Address | 192.168.19.229

创建mysql监控账号

(root@localhost:mysql.sock) [(none)]> create user 'monitor'@'%' identified by '***';
Query OK, 0 rows affected (0.47 sec)
(root@localhost:mysql.sock) [(none)]> grant all privileges on *.* to 'monitor'@'%';
Query OK, 0 rows affected (0.02 sec)
(root@localhost:mysql.sock) [(none)]> flush privileges;
Query OK, 0 rows affected (0.21 sec)

添加remote mysql实例

[root@jenkins opt]# pmm-admin add mysql --user monitor --password *** --host 10.15.7.29
[linux:metrics] OK, now monitoring this system.
[mysql:metrics] OK, now monitoring MySQL metrics using DSN monitor:***@tcp(10.15.7.29:3306)
[mysql:queries] OK, now monitoring MySQL queries from perfschema using DSN monitor:***@tcp(10.15.7.29:3306)
[root@jenkins opt]# pmm-admin list
pmm-admin 1.17.1 PMM Server | 192.168.19.229:8090
Client Name | jenkins
Client Address | 192.168.19.229
Service Manager | linux-systemd -------------- -------- ----------- -------- --------------------------------- ---------------------------------------------
SERVICE TYPE NAME LOCAL PORT RUNNING DATA SOURCE OPTIONS
-------------- -------- ----------- -------- --------------------------------- ---------------------------------------------
mysql:queries jenkins - YES monitor:***@tcp(10.15.7.29:3306) query_source=perfschema, query_examples=true
linux:metrics jenkins 42000 YES -
mysql:metrics jenkins 42002 YES monitor:***@tcp(10.15.7.29:3306)
[root@jenkins opt]# pmm-admin check-network
PMM Network Status Server Address | 192.168.19.229:8090
Client Address | 192.168.19.229 * System Time
NTP Server (0.pool.ntp.org) | 2019-08-08 06:25:51 +0000 UTC
PMM Server | 2019-08-08 06:25:50 +0000 GMT
PMM Client | 2019-08-08 14:25:52 +0800 CST
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 | 372.087µs
Request duration | 5.621825ms
Full round trip | 5.993912ms * Connection: Client <-- Server
-------------- -------- --------------------- ------- ---------- ---------
SERVICE TYPE NAME REMOTE ENDPOINT STATUS HTTPS/TLS PASSWORD
-------------- -------- --------------------- ------- ---------- ---------
linux:metrics jenkins 192.168.19.229:42000 OK YES -
mysql:metrics jenkins 192.168.19.229:42002 OK YES -

监控系统-PMM的更多相关文章

  1. 实战 Prometheus 搭建监控系统

    实战 Prometheus 搭建监控系统 Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于 ...

  2. MySQL监控利器-PMM

    本篇文章来简要介绍一下MySQL监控利器-PMM的部署过程. 环境: 主机名 IP 功能 系统 数据库版本 pmmclient 192.168.91.34 PMM-client RHEL7.4   p ...

  3. Opserver开源的服务器监控系统(ASP.NET)

    Opserver是Stack Exchange下的一个开源监控系统,系统本身由C#语言开发的ASP.NET(MVC)应用程序,无需任何复杂的应用配置,入门很快.下载地址:https://github. ...

  4. prometheus监控系统

    关于Prometheus Prometheus是一套开源的监控系统,它将所有信息都存储为时间序列数据:因此实现一种Profiling监控方式,实时分析系统运行的状态.执行时间.调用次数等,以找到系统的 ...

  5. 利用WCF的双工通讯实现一个简单的心跳监控系统

    何为心跳监控系统? 故名思义,就是监控某个或某些个程序的运行状态,就好比医院里面的心跳监视仪一样,能够随时显示病人的心跳情况. 心跳监控的目的是什么? 与医院里面的心跳监视仪目的类似,监控程序运行状态 ...

  6. 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL

    前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...

  7. 监控系统Opserver的配置调试

    Stack Exchange开源其监控系统Opserver有一段时间了.之前在项目中用过他们的MiniProfile来分析页面执行效率和帮助新人了解项目,当他们开源了其监控系统的时候正好部门也在关注监 ...

  8. 日志监控系统中,大批量查询mysql方案

    最近开发遇到一个问题:需要查询一个大时间段内的数据,分1000个小段,即为1000个点.X轴是时间,Y轴是该小时间段内统计后数据.注意:数据返回是一个list,其中每个对象返回值都是该小时间段内数据统 ...

  9. day26 分布式监控系统开发

    本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个简版的类Zabbix监控系统 –掌握自动化开发项目的程序设 ...

随机推荐

  1. zencart批量插入TEXT文本属性attributes

    有时候上传的产品与多级分类比较多,在后台添加文本属性如Name,Number等需要顾客自定义的内容就比较费神了.现在只需将以下代码保存为insert_attributes.php,变量$options ...

  2. Mysql索引类型分析

    一.简介   MySQL目前主要有以下几种索引类型:   1.普通索引   2.唯一索引   3.主键索引   4.组合索引   5.全文索引   二.语句 CREATE TABLE table_na ...

  3. 使用 Drag and Drop 给Web应用提升交互体验

    什么是 Drag and Drop (拖放)? 简单来说,HTML5 提供了 Drag and Drop API,允许用户用鼠标选中一个可拖动元素,移动鼠标拖放到一个可放置到元素的过程. 我相信每个人 ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第十七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第十七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...

  5. 第十一章 前端开发-css

    第十一章 前端开发-css 1.1.0 css介绍 css是指层叠样式表(Cascading Style Sheets),样式定义如何显示html元素,样式通常又会存在于样式表中. css优势: 内容 ...

  6. Acwing-204-表达整数的奇怪方式(扩展中国剩余定理)

    链接: https://www.acwing.com/problem/content/206/ 题意: 给定2n个整数a1,a2,-,an和m1,m2,-,mn,求一个最小的非负整数x,满足∀i∈[1 ...

  7. [Spring Boot] Aspect Intro

    Aspect-Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing another ...

  8. (转发)Android 源码获取-----在Windows环境下通过Git得到Android源代码

    在学习Android的过程中,深入其源代码研究对我们来说是非常重要的,这里将介绍如何通过在Windows环境下使用Git来得到我们的Android源代码. 1.首先确保你电脑上安装了Git,这个通过  ...

  9. Gym 100971D 单调栈

    D - Laying Cables Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u ...

  10. matlab中setdiff

    源自:http://www.w2bc.com/Article/16709 matlab中setdiff()函数作用:判断2个数组中不同元素 c = setdiff(A, B) 返回在A中有,而B中没有 ...