mysql pmm 布署_给 mysql 安装 pmm 监控

PMM 说明

PMM(Percona Monitoring and Management) 是一款监控和分析 MySQL 服务的一套工具,可以从图形化的方式看到 MySQL 服务的各种性能指标,慢查询分析、连接数、线程状态、查询信息、缓存信息等等,对分析 MySQL 运行时问题很有帮助。

PMM 由两部分软件组成,PMM Client 和 PMM Server,前者负责在运行 MySQL 服务的地方收集信息,后者则获取由 PMM Client 收集的信息进行汇总聚合并呈现最终的表格图形到 Web 浏览器等。PMM Client 和 PMM Server 可以不用运行在同一台服务器,可能需要运行多个 PMM Client,如 MySQL 运行在集群模式下,需要在每台 MySQL 服务器部署 PMM Client 软件,将信息发送到 PMM Server 运行的服务器上。如果仅简单的跑一个 MySQL 实例,也可以将 PMM Client 和 PMM Server 都部署在 MySQL 服务器上。

下面这张是 PMM 的架构图:

89927af89aff12fd209edc11ea2ab7f8.png

PMM Client 软件包这边包含了几个软件,这里逐个解析:pmm-admin: PMM Client 安装之后,这个命令行工具就是需要来配置 PMM Client 和 PMM Server 连接以及配置收集 MySQL 服务。

node_exporter: Prometheus exporter 用于搜集一般系统信息。Prometheus 是一套开源的监控系统,采用时序数据库保存采集的监控数据,有多种 exporter 将第三方服务的监控信息发送到 Prometheus。PMM 工具安装的时候会就会安装好 Prometheus 的这些软件。

mysqld_exporter: 收集 MySQL 服务的 Prometheus exporter。

mongodb_exporter: PMM 也可以监控 MongoDB 服务,所以也带了 mongodb_exporter。

proxy_exporter: 收集 ProxySQL 信息的 exporter。

pmm-mysql-queries-0: 收集 MySQL 的查询性能信息,发送到 PMM Server 端的 QAN API。

PMM Server 软件包由包含以下组件:QAN API: 一个后端服务存储 PMM Client 发送过来的查询信息。

QAN APP: QAN Web 服务可视化查询分析数据。

Prometheus: PMM Server 包含 Prometheus 服务。

Grafana: 第三方的可视化图表软件使用 Prometheus 源提供数据。

看到 PMM 工具需要这么多软件并不需要担心,Percona 已经将 PMM Server 打包在 Docker 镜像,PMM Client 也在一个软件包安装,安装配置非常方便快速。

PMM 的安装

以下基于 Ubuntu 18.04 介绍如何将 PMM 安装在 MySQL 的服务器上。

PMM Server 安装

官方已经将 PMM Server 软件打包在 Docker 镜像,安装很简单。Ubuntu 18.04 已经有 Docker 服务。

1. 拉取最新的 PMM Server 镜像

tag 1 是 PMM Server 最新的镜像。

$ docker pull percona/pmm-server:1

2. 创建一个 pmm-data 容器

该容器用来初始化数据卷来保存数据,不要删除这个 pmm-data 容器。

$ 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 /bin/true

3. 创建和启动 pmm-server 容器

使用的数据卷为 pmm-data 容器设置的,其中端口可以设置为自己所需要的。

$ docker run -d

-p 8001:80

--volumes-from pmm-data

--name pmm-server

-e SERVER_USER=jsmith

-e SERVER_PASSWORD=pass1234

--restart always

percona/pmm-server:1

4. 查看 Docker 运行状态

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

d162c955fee9 percona/pmm-server:1 "/opt/entrypoint.sh" 13 days ago Up 13 days 443/tcp, 0.0.0.0:8001->80/tcp pmm-server

上述步骤执行完毕,则 PMM Server 已经开始运行,可以使用浏览器访问服务器的 8001 端口地址,如果你的机器与服务器是在同一个局域网的话。

这里加上了访问 PMM Server 的用户和密码参数,如果在内网环境是可靠的话,可以不用加这两个参数,则访问 PMM Server 不需要密码。

PMM Client 安装

1. 下载 DEB 包

去 https://www.percona.com/downloads/pmm/ 下载页获取指定系统的 DEB 包,或者直接 wget 下载链接。这里下载 Ubuntu 18.04 的安装包。

$ wget https://www.percona.com/downloads/pmm/1.17.1/binary/debian/bionic/x86_64/pmm-client_1.17.1-1.bionic_amd64.deb

2. 安装 DEB 包

$ sudo dpkg -i pmm-client_1.17.1-1.bionic_amd64.deb

3. 连接 PMM Client 到 PMM Server

sudo pmm-admin config --server 127.0.0.1:8001 --server-user jsmith --server-password pass1234

--server 指定 PMM Server 服务所在的地址和监听的端口,如果在同一台机器,写本地地址即可。

这里假定之前启动 PMM Server 时指定了用户名和密码,则 PMM Client 连接 PMM Server 需设置用户名和密码,如果没有指定,可以不需要这两个参数。

可以使用 pmm-admin ping 查看连接状态。

4. 配置收集 MySQL 数据

PMM 可以从 MySQL 的慢查询日志或者 Performance Schema 收集查询数据。从慢查询日志收集信息最多,但可能增加系统负载。 Performance Schema 从 MySQL 5.6 版开始加入,旧版本的 MySQL,只能设置从慢查询日志收集了。

4.1 创建一个 MySQL 用户给 PMM 使用

我们希望只提供一个受限的 MySQL 用户给 PMM 用来收集相关信息,如访问 Performance 数据库。

GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'pmm'@' localhost' IDENTIFIED BY 'pass' WITH MAX_USER_CONNECTIONS 10;

GRANT SELECT, UPDATE, DELETE, DROP ON performance_schema.* TO 'pmm'@'localhost';

或者使用 pmm-admin add mysql 命令的 –create-user 选项,自动创建相关权限的用户。可以在下面看到相关描述。

4.2 添加监控 MySQL 实例4.2.1 使用 Performance Schema 收集方式确保 MySQL 版本在 5.6(包含) 之后

确保开启了 Performance Schema。

ysql> SHOW VARIABLES LIKE 'performance_schema';

+--------------------+-------+

| Variable_name | Value |

+--------------------+-------+

| performance_schema | ON |

+--------------------+-------+

如果没有开启,需在 MySQL 配置文件 my.cnf 种设置, 然后重启 MySQL。

[mysql]

innodb_monitor_enable=all

performance_schema=ON

运行 pmm-admin 命令添加监控:

sudo pmm-admin add mysql --user pmm --password pass --query-source perfschema4.2.2 使用慢查询收集方式

确保 MySQL 开启了慢查询,在配置文件增加:

log_output=file

slow_query_log=ON

long_query_time=0

log_slow_admin_statements=ON

log_slow_slave_statements=ON

运行 pmm-admin 命令添加监控:

sudo pmm-admin add mysql --user pmm --password pass --query-source slowlog

可以查看增加监控命令的所有选项: pmm-admin add mysql --help

$ sudo pmm-admin add mysql --help

This command adds the given MySQL instance to system, metrics and queries monitoring.

When adding a MySQL instance, this tool tries to auto-detect the DSN and credentials.

If you want to create a new user to be used for metrics collecting, provide --create-user option. pmm-admin will create

a new user '[email protected]' automatically using the given (auto-detected) MySQL credentials for granting purpose.

Table statistics is automatically disabled when there are more than 10000 tables on MySQL.

[name] is an optional argument, by default it is set to the client name of this PMM client.

Usage:

pmm-admin add mysql [flags] [name]

Examples:

pmm-admin add mysql --password abc123

pmm-admin add mysql --password abc123 --create-user

pmm-admin add mysql --password abc123 --port 3307 instance3307

Flags:

--create-user create a new MySQL user

--create-user-maxconn uint16 max user connections for a new user (default 10)

--create-user-password string optional password for a new MySQL user

--defaults-file string path to my.cnf

--disable-binlogstats disable binlog statistics

--disable-processlist disable process state metrics

--disable-queryexamples disable collection of query examples

--disable-ssl disable ssl mode on exporter

--disable-tablestats disable table statistics

--disable-tablestats-limit uint16 number of tables after which table stats are disabled automatically (default 1000)

--disable-userstats disable user statistics

--force force to create/update MySQL user

-h, --help help for mysql

--host string MySQL host

--password string MySQL password

--port string MySQL port

--query-source string source of SQL queries: auto, slowlog, perfschema (default "auto")

--retain-slow-logs int number of slow logs to retain after rotation (default 1)

--slow-log-rotation enable slow log rotation (default true)

--socket string MySQL socket

--user string MySQL username

Global Flags:

-c, --config-file string PMM config file (default "/usr/local/percona/pmm-client/pmm.yml")

--service-port int service port

--skip-root skip UID check (experimental)

--timeout duration timeout (default 5s)

--verbose verbose output4.2.3 查看配置效果

$ sudo pmm-admin list

pmm-admin 1.17.1

PMM Server | localhost:8001 (password-protected)

Client Name | ubuntu

Client Address | 172.17.0.1

Service Manager | linux-systemd

-------------- ------------ ----------- -------- ------------------------------------------ ---------------------------------------------

SERVICE TYPE NAME LOCAL PORT RUNNING DATA SOURCE OPTIONS

-------------- ------------ ----------- -------- ------------------------------------------ ---------------------------------------------

mysql:queries ubuntu 42002 YES pmm:[email protected](/var/run/mysqld/mysqld.sock) query_source=perfschema, query_examples=true

linux:metrics ubuntu 42000 YES -

监控界面展示

现在用浏览器可以访问 PMM Server 安装机器的 IP + 端口地址即可以看到监控信息图表话界面,如果 PMM Server 启动时设置了账号和密码,此时需要进行账户验证。

服务器系统信息

4159f6519b179a6733f81d7944eaaa63.png

MySQL

18419bf02310de9ec04039e58c5a22e2.png

a94963fb05d0bcb26d581b397dc733fe.png

慢查询

7078f32aca7d77300b5a29969e70018a.png

27f4c593f1b786364f840ff37933e99d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 自定义注解_Java注解

前言近日在阅读开源项目,发现项目里好多奇奇怪怪的注解(DataScope、Log...)看得我一脸懵,不知道大家是否也有过这样的经历,回想了一下,发现自己对于注解的知识,好像只停留在Override。。。异常尴尬,所以今天…

java开发和基于asp.net开发有什么优越性?_java语言的入门开始介绍

java编程语言是目前世界最流行的编程语言,它是在c的基础上开发出来的语言,它取其精华去其糟粕让java语言具有功能强大和简单易用的特征。java具有:面对对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。java可以编写…

响应性web设计实战总结(二)

响应性web设计实战总结(二) 阅读目录 背景知识:Gulp-less安装及配置如下对响应性web总结,之前总结过2篇文章;可以看如下: http://www.cnblogs.com/tugenhua0707/p/4147569.html http://www.cnblogs.com/tugenhua0707/p/4598657.h…

uploadify java 上传_jquery使用uploadify插件实现多文件的上传(java版)

2、安装,由于下载下来的例子是php版本的,所以我只留下了主要的几个文件。如图:4、使用前台页面:pageEncoding"UTF-8"%>html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR…

js 多个定时器_JS中的同步/异步编程

1. 进程(process)/线程(thread)进程process: 电脑端安装很多的应用软件,每当运行一个应用程序,相当于开辟一个进程(而对于浏览器来说,每新建一个页卡访问一个页面,都是新开辟一个进程)任务管理器…

Tomcat免安装版的环境变量配置以及Eclipse下的Tomcat配置和测试

Tomcat是目前比较流行的开源且免费的Web应用服务器,在我的电脑上第一次安装Tomcat,再经过网上教程和自己的摸索后,将这个过程 重新记录下来,以便以后如果忘记了可以随时查看。 注意:首先要明确一点,Tomcat与…

java开发和structs的关系_java---springMVC与strutsMVC的区别

项目刚刚换了web层框架,放弃了struts2改用spring3mvc当初还框架的时候目的比较单纯---springmvc支持rest,小生对restful url由衷的喜欢不用不知道 一用就发现开发效率确实比struts2高我们用struts2时采用的传统的配置文件的方式,并没有使用传…

【推荐】介绍两款Windows资源管理器,Q-Dir 与 FreeCommander XE(比TotalCommander更易用的免费资源管理器)...

你是否也像我一样,随着硬盘、文件数量的增加,而感到对于文件的管理越来越乏力。 于是我试用了传说中的各种软件,包括各种Explorer外壳,或者第三方资源管理器。 最后我确定下来经常使用,并推荐给您的是这两款软件&#…

java类加载器_java底层内功 第一章,类加载器的任性

java类是怎么加载的?类加载机制JVM主要包含三大核心部分:类加载器,运行时数据区和执行引擎。虚拟机将描述类的数据从class文件加载到内存,并对数据进行校验,准备,解析和初始化,最终就会形成可以…

java的requestmapping_SpringMVC RequestMapping 详解

SpringMVC RequestMapping 详解RequestMapping这个注解在SpringMVC扮演着非常重要的角色,可以说是随处可见。它的知识点很简单。今天我们就一起学习SpringMVC的RequestMapping这个注解。文章主要分为两个部分:RequestMapping 基础用法和RequestMapping 提…

redis查询所有key命令_想在生产搞事情?那试试这些 Redis 命令

作者:鸭血粉丝出自:Java极客技术原文:mp.weixin.qq.com/s/WeAamgYYGQfxlsppsn9_lg哎,最近阿粉又双叒叕犯事了。事情是这样的,前一段时间阿粉公司生产交易偶发报错,一番排查下来最终原因是因为 Redis 命令执…

mysql gui 分区_一文彻底搞懂MySQL分区

一.InnoDB逻辑存储结构首先要先介绍一下InnoDB逻辑存储结构和区的概念,它的所有数据都被逻辑地存放在表空间,表空间又由段,区,页组成。段段就是上图的segment区域,常见的段有数据段、索引段、回滚段等,在In…

js 获取域名_RapidDNS域名查询如何联动Goby

前言:http://RapidDNS.io 是一个秒级在线子域名和同IP域名的查询工具。目前拥有25亿条DNS记录,支持A、AAAA、CNAME、MX4种DNS记录类型。由于Goby程序对子域名收集方面不是很完善,这里特编写此插件作为其拓展。可以方便快速获取域名和ip地址信…

iOS 9应用开发教程之iOS 9新特性

iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统。该操作系统于2015年6月8号(美国时间)被发布。本章将主要讲解iOS 9的新特性、以及使用Xcode 7.0如何编写一个简单的iOS 9的应用程序等内容…

kafka创建topic命令_0748-5.14.4-Kafka的扩容和缩容

​文档编写目的在Kafka集群资源使用已超出系统配置的资源时,或者有大量资源闲置造成资源浪费的时候,需要分别通过扩容Kafka和缩容Kafka来进行调整。本篇文章Fayson主要介绍如何进行Kafka的扩容和缩容,以及变更后的Kafka集群如何进行负载均衡的…

java 对话框 显示图片_Java对话框上显示图片

手掌心其实有很多种方法可以解决图片显示大小的问题:使用photoshop修改. 优点是可以节省系统资源, 显示图片的时候,不用做处理,缺点是需要了解ps的基本操作使用JDialog 自定义对话框. 优点 可以实现复杂的效果, 缺点,代码量比较多使用ImageIcon, Image 类 实现图片的缩放,. 优点…

class-dump获取iOS私有api

转自:http://blog.csdn.net/sunyuanyang625/article/details/41440167 获取各类iOS私有api 安装工具class-dump 资源地址http://download.csdn.net/detail/map625/8191343 运行class-dump并编译src项目 编译之后在produce中找到编译好的class…

火星云分发全网视频_好用的短视频一键分发软件,让工作效率提高10倍

随着近几年新媒体行业的高速发展,新媒体行业的红利也越来越来,也有越来越多的人想要享受到这波红利,于是不管是个人是企业都纷纷开始进入这个市场。不过也随之诞生了一系列麻烦繁琐的问题,如怎么持续创作内容,怎么花费…

java 采样_Java编程实现beta分布的采样或抽样实例代码

本文研究的主要是Java编程实现beta分布的采样或抽样,具体如下。本文将使用math3提供的工具包,对beta分布进行采样。如下程序是对alpha81,beta219的beta分布函数,进行抽样,共采样10000次。package function;/*** author…

树莓派 蓝牙音响_你应该拥有一个树莓派

为什么你应该拥有一个树莓派树莓派并不是极客的玩具树莓派可以用来做什么?它能实现的实在是太多了,最常见的比如自动化脚本 各种机器人bot: QQ/wechat/微博/facebook/telegram,IM结合爬虫 telegram的bot如今被黑产们结合比特币,做成了交易系统 使用宝塔linux面板,一键安装word…