MYSQL使用PMM进行性能监控
简介
Percona监视和管理(PMM)是一个用于管理和监视MySQL和MongoDB性能的开源平台。它是由Percona与托管数据库服务、支持和咨询领域的专家合作开发的。
PMM是一个免费的开源解决方案,您可以在自己的环境中运行,以获得最大的安全性和可靠性。它为MySQL和MongoDB服务器提供了彻底的基于时间的分析,以确保您的数据尽可能高效地工作。
PMM是CS价格,由两部分组成PMM Client和PMM Server
PMM客户机安装在要监视的每个数据库主机上。它收集服务器指标、一般系统指标和查询分析数据,以获得完整的性能概述。
PMM服务器是PMM的核心部分,它聚合收集到的数据,并在Web界面中以表格、仪表盘和图形的形式显示这些数据。
官网
安装
部署方案(https://www.percona.com/doc/percona-monitoring-and-management/architecture.html#id13)
安装PMMServer
PMM Server是PMM的核心部分,它聚合收集的数据,并以Web界面的表格,仪表板和图形的形式呈现,包括以下组件
Query Analytics(QAN):按时间周期查询MySQL性能,同客户端的qan agent通讯包括两个组件 。qan api 和qan web app
Metrics Monitor(MM):提供MySQL和mongo的性能历史视图
1、安装docker环境
https://blog.csdn.net/zhizhengguan/article/details/83618702
2、下载镜像容器
$ sudo docker pull percona/pmm-server:latest
3、建立数据卷容器
$ docker create -v /opt/prometheus/data -v /opt/consul-data -v /usr/local/mysql -v /home/ocean/workspace/mysql/grafana --name pmm-data percona/pmm-server:latest /bin/true
$ sudo docker inspect pmm-data
[
{
"Id": "32282a5d220372d19e514b86bafe8a3f9a5c2dbb8e2996c43c46ad969417d166",
"Created": "2019-02-25T06:59:53.275012366Z",
"Path": "/bin/true",
1
2
3
4
5
6
7
8
4、运行PMM Server
$ docker run -d \
-p 80:80 \
--volumes-from pmm-data \
--name pmm-server \
--restart always percona/pmm-server:latest
{-e METRICS_RETENTION=48h 可选,数据只留48小时}
{ -e SERVER_USER = jsmith \ #可选
-e SERVER_PASSWORD = pass1234 \ #可选 增加安全性}
$ sudo docker ps -a
1
2
3
4
5
6
7
8
9
10
11
12
运行PMM Server之后,你应该可以使用运行容器的127.0.0.1:80访问PMM Web界面。
Component URL
PMM landing page http://127.0.0.1:80
Query Analytics (QAN web app) http://127.0.0.1:80/qan/
Metrics Monitor (Grafana) http://127.0.0.1:80/graph/user name: adminpassword: admin
5、更改面板数据sqlite库存储类型为MYSQL(容器自带)
$sudo docker exec -i -t pmm-server /bin/bash
# # vi /etc/grafana/grafana.ini
查/sqlite 改为MYSQL 存储
type=mysql
host=127.0.0.1:3306
name=grafana
user=root
password =
1
2
3
4
5
6
7
8
9
在容器进入mysql客户端,创建数据库grafana,
create database grafana;
1
$ sudo docker restart pmm-server
1
PMM client 安装
PMM Client是安装在你要监视的MySQL或MongoDB主机上的一组代理组件。组件收集关于一般系统和数据库性能的各种数据,并将该数据发送到相应的PMM服务器组件。包括以下工具
pmm-admin:pmm客户端客理工具,用于增加或是删除需要监控的数据库实例
percona-qan-agent:用于搜集数据库性能数据
node_exporter :用于搜集常用的系统指标
mysqld_exporter:用于搜集MySQL性能指标
mongodb_export:用于搜集MongoDB性能指标
*proxysql_export:用于搜集proxySQL性能指标
在数据库主机上安装PMM Client软件包之前,请确保你的PMM Server主机可访问。
1、下载地址:https://www.percona.com/downloads/pmm/ 请确保版本一致
$ sudo dpkg -I pmm-client_1.17.1-1.xenial_amd64.deb --查看安装信息
$ sudo dpkg -i pmm-client_1.17.1-1.xenial_amd64.deb -- 安装
$ pmm-admin config --help -- 查看帮助信息
1
2
3
2、将PMM客户端连接到PMM服务器
$ sudo pmm-admin config --server 127.0.0.1:80
OK, PMM server is alive.
PMM Server | 127.0.0.1:80
Client Name | ubuntu
Client Address | 172.17.0.1
$ sudo pmm-admin check-network
PMM Network Status
Server Address | 127.0.0.1:80
Client Address | 172.17.0.1
* System Time
NTP Server (0.pool.ntp.org) | 2019-02-26 01:12:42 +0000 UTC
PMM Server | 2019-02-26 01:12:42 +0000 GMT
PMM Client | 2019-02-25 17:12:42 -0800 PST
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 | 2.129258ms
Request duration | 684.144µs
Full round trip | 2.813402ms
* Connection: Client <-- Server
-------------- ------- ----------------- ------- ---------- ---------
SERVICE TYPE NAME REMOTE ENDPOINT STATUS HTTPS/TLS PASSWORD
-------------- ------- ----------------- ------- ---------- ---------
linux:metrics ubuntu 172.17.0.1:42000 OK YES -
mysql:metrics ubuntu 172.17.0.1:42002 OK YES -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
3、 开始监控:
$ sudo pmm-admin add mysql --query-source perfschema --user root --password 123456
[linux:metrics] OK, already monitoring this system.
[mysql:metrics] OK, now monitoring MySQL metrics using DSN root:***@unix(/tmp/mysql.sock)
[mysql:queries] OK, now monitoring MySQL queries from perfschema using DSN root:***@unix(/tmp/mysql.sock)
1
2
3
4
4、 WEB访问页面并配制相关值
http://127.0.0.1/graph
1
$ sudo pmm-admin list --查看配置之后的结果
pmm-admin 1.17.1
PMM Server | 127.0.0.1:80
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 - YES root:***@unix(/tmp/mysql.sock) query_source=perfschema, query_examples=true
linux:metrics ubuntu 42000 YES -
mysql:metrics ubuntu 42002 YES root:***@unix(/tmp/mysql.sock)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3、删除
$ apt-get remove pmm-client
1
参考:https://www.cnblogs.com/zengkefu/p/7232938.html
https://blog.csdn.net/wh211212/article/details/72190471
使用
pmm-admin
使用pmm-admin来管理PMM客户机。
$ sudo pmm-admin
[sudo] password for ocean:
Usage:
pmm-admin [flags]
pmm-admin [command]
Available Commands:
config Configure PMM Client.
add Add service to monitoring.
annotate Annotate application events.
remove Remove service from monitoring.
list List monitoring services for this system.
info Display PMM Client information (works offline).
check-network Check network connectivity between client and server.
ping Check if PMM server is alive.
start Start monitoring service.
stop Stop monitoring service.
restart Restart monitoring service.
show-passwords Show PMM Client password information (works offline).
purge Purge metrics data on PMM server.
repair Repair installation.
uninstall Removes all monitoring services with the best effort.
summary Fetch system data for diagnostics.
help Help about any command
Flags:
-c, --config-file string PMM config file (default "/usr/local/percona/pmm-client/pmm.yml")
-h, --help help for pmm-admin
--skip-root skip UID check (experimental)
--timeout duration timeout (default 5s)
--verbose verbose output
-v, --version show version
Use "pmm-admin [command] --help" for more information about a command.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
OPTIONS
以下选项可用于任何命令:
$ sudo pmm-admin --version --PMM客户端的版本
1.17.1
$ sudo pmm-admin -v --PMM客户端的版本
1.17.1
1
2
3
4
-C,--配置文件
指定PMM配置文件的位置(默认/usr/local/percona/pmm client/pmm.yml)。
-H,——帮助
打印任何命令的帮助并退出。
--verbose
打印详细输出。
1
2
3
4
5
6
pmm-admin add
添加监视服务。
一个例子
$ cd /etc/systemd/system
pmm-linux-metrics-42000.service
pmm-mysql-metrics-42002.service
pmm-mysql-queries-0.service
$ cat pmm-mysql-metrics-42002.service
$ systemctl daemon-reload
$ pmm-admin restart mysql:metrics
1
2
3
4
5
6
7
以下选项可与pmm admin add命令一起使用:
--dev-enable
启用实验功能。
--disable-ssl
禁用(否则启用)PMM客户端和PMM服务器之间的连接的SSL。关闭从某些监视对象获取的数据的SSL加密可以减少与许多节点连接的PMM服务器的开销。
--service-port
指定服务端口。
1
2
3
4
5
6
$ sudo pmm-admin add --help
1
查看各种信息
$ sudo pmm-admin info
$ sudo pmm-admin list --列出所有已启用的服务及其详细信息。
$ $ sudo pmm-admin check-network
1
2
3
是否能够连接pmm服务器
使用pmm admin ping命令验证与pmm服务器的连接。
$ sudo pmm-admin ping [OPTIONS]
$ sudo pmm-admin ping
1
2
获取PMM客户端使用的密码
使用pmm admin show passwords命令打印存储在配置文件中的凭据(默认值为/usr/local/percona/pmm client/pmm.yml)。
$ pmm-admin show-passwords [OPTIONS]
$ sudo pmm-admin show-passwords --help
$ sudo pmm-admin show-passwords
1
2
3
删除监控服务
$sudo pmm-admin rm [OPTIONS] [SERVICE]
$ sudo pmm-admin rm --all
1
2
删除服务时,收集的数据将保留在PMM服务器上的度量监视器中。要删除收集的数据,请使用pmm admin purge命令。
删除孤立服务
$ sudo pmm-admin repair [OPTIONS]
1
清除度量数据
$ pmm-admin purge [SERVICE [NAME]] [OPTIONS]
$ sudo pmm-admin list
1
2
使用pmm admin purge命令清除与pmm服务器上的服务关联的度量数据。这通常是在删除服务后所必需的,并且不希望其度量数据显示在图表上。
开启监控服务
pmm-admin start [SERVICE [NAME]] [OPTIONS]
sudo pmm-admin start --help
停止监控服务
$ pmm-admin stop [SERVICE [NAME]] [OPTIONS]
$ sudo pmm-admin stop --help
1
2
指定要停止的监控服务别名。要查看哪些服务可用,请运行:
$ sudo pmm-admin list
1
重启监控服务
$ pmm-admin restart [SERVICE [NAME]] [OPTIONS]
1
类似 《停止监控服务》
卸载前清理
$ pmm-admin uninstall [OPTIONS]
1
监控服务别名
---------------------
作者:Ocean&&Star
来源:CSDN
原文:https://blog.csdn.net/zhizhengguan/article/details/87916519
版权声明:本文为博主原创文章,转载请附上博文链接!
MYSQL使用PMM进行性能监控的更多相关文章
- MySQL 性能监控 4 大指标
[编者按]本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的 4 大指标. 文章系国内 ITOM 管理平台 OneAPM 编译呈现. MySQL 是什么? MySQL ...
- MySQL 的实时性能监控利器【转】
操作系统及MySQL数据库的实时性能状态数据尤为重要,特别是在有性能抖动的时候,这些实时的性能数据可以快速帮助你定位系统或MySQL数据库的性能瓶颈,就像你在Linux系统上使用「top,sar,io ...
- MySQL写压力性能监控与调优
写压力调优:数据库的写.写压力性能监控.写压力调优参数 一.关于DB的写 1.数据库是一个写频繁的系统 2.后台写.写缓存 3.commit需要写入 4.写缓存失效或者写满-->写压力陡增--& ...
- MySQL 性能监控4大指标——第二部分
[编者按]本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的4大指标. 第一部分介绍了前两个指标:查询吞吐量与查询执行性能.本文将继续介绍另两个指标:MySQL 连接与缓冲池 ...
- MySQL 性能监控4大指标——第一部分
[编者按]本文作者为 John Matson,主要介绍 mysql 性能监控应该关注的4大指标. 第一部分将详细介绍前两个指标: 查询吞吐量与查询执行性能.文章系国内 ITOM 管理平台 OneAPM ...
- MySQL 的实时性能监控利器
操作系统及MySQL数据库的实时性能状态数据尤为重要,特别是在有性能抖动的时候,这些实时的性能数据可以快速帮助你定位系统或MySQL数据库的性能瓶颈,就像你在Linux系统上使用「top,sar,io ...
- Mysql性能监控可视化
前言 操作系统以及Mysql数据库的实时性能状态数据尤为重要,特别是在有性能抖动的时候,这些实时的性能数据可以快速帮助你定位系统或Mysql数据库的性能瓶颈,镜像你在Linux系统上使用top.i ...
- MySQL调优性能监控之performance schema
一.performance_schema的介绍 performance:性能 schema:图(表)示,以大纲或模型的形式表示计划或理论. MySQL的performance schema 用于监控M ...
- MySQL调优性能监控之show profile
用show profile查询工具指定具体的type show profile在mysql5.7之后过时 show profile命令用于跟踪执行过的sql语句的资源消耗信息,可以帮助查看sql语句的 ...
随机推荐
- UTC,BJT时间转换-python
#UTC,BJT Conversion.py #接收一个BJT时间 bjt = eval(input("输入时间")) #转换 utc = bjt + 2400 - 800 if ...
- ROS使用小知识点
输入 rosrun rqt_graph rqt_graph 可以打开一个界面观察节点与话题的关系 绿色和蓝色的是节点 红色的是话题 查看ros中额的tf转换信息 rosrun rqt_tf_tree ...
- Jmeter接口测试+压力测试
链接推荐:https://blog.csdn.net/github_27109687/article/details/71968662
- Restful levels&HATEOAS详解
RESTful: Rest是一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等 ...
- mysql 中文支持
show variables like 'character%'; SHOW VARIABLES LIKE 'collation_%'; recommend to use utf8mb4 inste ...
- openWRT报错
1.报错内容 /usr/lib/lua/luci/dispatcher.lua:533: bad argument #1 to 'pairs' (table expected, got nil)sta ...
- Tenka 1 Computer Contest C-Align
C - Align Time limit : 2sec / Memory limit : 1024MB Score : 400 points Problem Statement You are giv ...
- zabbix使用客户端和不使用客户端监控指定端口
监控指定端口也很简单,以监控181主机的22端口为例 点击已成功监控的181主机的监控项 点击创建监控项 使用客户端监控端口:选择键值net.tcp.listen[port],需要自己把port改成2 ...
- input输入框提交输入的值的方式
给button添加点击事件,通过id(getElementById)获取输入框的value. 弹框提示如图
- Foundations of Game Engine Development Volume 1 Mathematics (Eric Lengyel 著)
http://www.foundationsofgameenginedev.com/ Chapter1 Vectors and Matrices (已看) Chapter2 Transforms (已 ...