Grafana 数据库监控平台

Grafana 数据库监控平台

简介

Grafana

官网地址:https://www.percona.com/software/database-tools/percona-monitoring-and-management

文档地址:https://www.percona.com/doc/percona-monitoring-and-management/index.html

demo 地址:官方demo

文档可以下载pdf离线阅读

Percona监控和管理(PMM)是一个用于管理和监控MySQL和MongoDB性能的开源平台。它由Percona与托管数据库服务,支持和咨询领域的专家合作开发。

PMM是一种免费的开源解决方案,您可以在自己的环境中运行,以获得最大的安全性和可靠性。它为MySQL和MongoDB服务器提供全面的基于时间的分析,以确保您的数据尽可能高效地工作。

系统架构

PMM平台基于客户端 - 服务器模型,实现可伸缩性。它包括以下模块:

  • PMM客户端安装在要监视的每个数据库主机上。它收集服务器指标,常规系统指标和查询分析数据,以获得完整的性能概述。
  • PMM ServerPMM的核心部分,它聚合收集的数据并以Web界面中的表格,仪表板和图形的形式呈现。

这些模块的封装便于安装和使用。假设用户不需要了解构成每个模块的确切工具以及它们如何交互。但是,如果您想充分发挥PMM的潜力,内部结构非常重要。

  • PMM客户端

  • PMM服务器

  • Orchestrator

    PMM是一系列旨在无缝协同工作的工具。有些是由Percona开发的,有些是第三方开源工具。

    注意
    整体客户端 - 服务器模型不太可能改变,但组成每个组件的工具集可能随产品而变化。

    下图说明了PMM当前的结构:

image

PMM服务端安装

pmm服务器安装有多种方式。官方安装介绍

本文主要介绍docker的安装方式

docker 镜像下载

$ docker pull percona/pmm-server:latest

创建pmm-data 容器

创建一个持久化的 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:latest /bin/true

docker create 参数说明:

  • The docker create command instructs the Docker daemon to create a container from an image.
  • The -v options initialize data volumes for the container.
  • The --name option assigns a custom name for the container that you can use to reference the container within a Docker network. In this case: pmm-data.
  • percona/pmm-server:latest is the name and version tag of the image to derive the container from.
  • /bin/true is the command that the container runs.

Note

这个容器不会运行,他的存在仅仅是保留PMM的数据,当你升级到一个新的PMM版本的时候。不要删除、重新创建这个容器,除非你想要删除所有的PMM数据。

创建PMM服务容器并启动

官网提供的创建方式

$ docker run -d \
 -p 80:80 \
 --volumes-from pmm-data \
 --name pmm-server \
 --restart always \
 percona/pmm-server:latest

docker run参数说明:

  • The -d option starts the container in the background (detached mode).
  • The -p option maps the port for accessing the PMM Server web UI. For example, if port 80 is not available, you can map the landing page to port 8080 using -p 8080:80.
  • The -v option mounts volumes from the pmm-data container (see Creating the pmm-data Container).
  • The --name option assigns a custom name to the container that you can use to reference the container within the Docker network. In this case: pmm-server.
  • The --restart option defines the container’s restart policy. Setting it to always ensures that the Docker daemon will start the container on startup and restart it if the container exits.
  • percona/pmm-server:latest is the name and version tag of the image to derive the container from.

我们在基础配置上,添加用户名密码的配置信息:

 $ docker run -d \
 -p 80:80 \
 --volumes-from pmm-data \
 --name pmm-server \
 --restart always \
 -e SERVER_USER=test \
 -e SERVER_PASSWORD=test \ 
 -e ORCHESTRATOR_ENABLED=true \
 percona/pmm-server:latest

新建PMM的客户端

安装Percona的软件仓库

sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm

验证安装结果

sudo yum list | grep percona

结果如下:

percona-release.noarch                     0.1-6                       @/percona-release-0.1-6.noarch
Percona-Server-55-debuginfo.x86_64         5.5.54-rel38.7.el7          percona-release-x86_64
Percona-Server-56-debuginfo.x86_64         5.6.35-rel81.0.el7          percona-release-x86_64
Percona-Server-57-debuginfo.x86_64         5.7.17-13.1.el7             percona-release-x86_64
...

安装客户端

sudo yum install pmm-client

PMM的客户端配置

pmm客户端的 配置命令是pmm-admin

一般步骤为

  1. 配置客户端到服务器的连接信息

  2. 将需要监控的内容加入到监控列表

客户端与服务端连接配置

pmm-admin config --server 192.168.0.157:80 --server-user test --server-password test 

配置服务端的网络信息,用户名,密码。

Note
执行后会生成配置文件,配置文件的默认路径为 /usr/local/percona/pmm-client/pmm.yml

配置好后可以使用以下命令查看连接信息

  1. 配置信息
# pmm-admin info
   pmm-admin 1.13.0
   
   PMM Server      | 192.168.0.157:80 (password-protected)
   Client Name     | 192.168.0.156
   Client Address  | 192.168.0.156 
   Service Manager | linux-systemd
   
   Go Version      | 1.10.1
   Runtime Info    | linux/amd64

2.网络连接信息

# pmm-admin check-network
PMM Network Status

Server Address | 192.168.0.157:80
Client Address | 192.168.0.156 

* System Time
NTP Server (0.pool.ntp.org)         | 2018-08-16 09:17:22 +0000 UTC
PMM Server                          | 2018-08-16 09:17:20 +0000 GMT
PMM Client                          | 2018-08-16 17:17:22 +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 | 617.745µs
Request duration    | -207.451µs
Full round trip     | 410.294µs


* Connection: Client <-- Server
-------------- -------------- -------------------- ------- ---------- ---------
SERVICE TYPE   NAME           REMOTE ENDPOINT      STATUS  HTTPS/TLS  PASSWORD 
-------------- -------------- -------------------- ------- ---------- ---------
linux:metrics  192.168.0.156  192.168.0.156:42000  OK      YES        YES
mysql:metrics  192.168.0.156  192.168.0.156:42002  OK      YES        YES

mysql数据配置

grafana收集mysql的信息方式的配置需要针对mysql的版本

  • mysql5.5 之后增加 performance_schema。mysql开启performance_schema后grafana可以直接获取信息。MySQL 5.6.9之后的版本默认开启,之前的版本需要手动开启。

  • mysql5.5之前的mysql版本可以通过slow-log获取慢查询的信息。

performance_schema 全方位介绍

Note

本节主要介绍使用performance_schema的方式,即 mysql5.5之后版本的数据库监控。
mysql5.5之前版本的数据库监控,见下一节。

创建pmm数据库账号

GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD  ON *.* TO pmm@'%' IDENTIFIED BY 'pmm' WITH MAX_USER_CONNECTIONS 10;  
GRANT SELECT, UPDATE, DELETE, DROP ON performance_schema.* TO 'pmm'@'%';
flush privileges;

查看数据的关键参数

mysql> SHOW VARIABLES LIKE 'performance_schema';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| performance_schema | ON    |
+--------------------+-------+

mysql> select * from setup_consumers;
+----------------------------------+---------+
| NAME                             | ENABLED |
+----------------------------------+---------+
| events_stages_current            | NO      |
| events_stages_history            | NO      |
| events_stages_history_long       | NO      |
| events_statements_current        | YES     |
| events_statements_history        | YES     |
| events_statements_history_long   | NO      |
| events_transactions_current      | NO      |
| events_transactions_history      | NO      |
| events_transactions_history_long | NO      |
| events_waits_current             | NO      |
| events_waits_history             | NO      |
| events_waits_history_long        | NO      |
| global_instrumentation           | YES     |
| thread_instrumentation           | YES     |
| statements_digest                | YES     |
+----------------------------------+---------+
15 rows in set (0.00 sec)

确保 statements_digest是 开启的

如果以上关键参数没有开启就需要修改配置文件

mysql配置文件修改

官方文档Configuring MySQL for Best Results

  • Percona Server(or XtraDB Cluster)

    log_output=file
    slow_query_log=ON
    long_query_time=0
    log_slow_rate_limit=100
    log_slow_rate_type=query
    log_slow_verbosity=full
    log_slow_admin_statements=ON
    log_slow_slave_statements=ON
    slow_query_log_always_write_time=1
    slow_query_log_use_global_control=all
    innodb_monitor_enable=all
    userstat=1
    
  • MySQL 5.6+ or MariaDB 10.0+

    innodb_monitor_enable=all
    performance_schema=ON
    
  • MySQL 5.5 or MariaDB 5.5

    log_output=file
    slow_query_log=ON
    long_query_time=0
    log_slow_admin_statements=ON
    log_slow_slave_statements=ON
    

mysql5.5之前版本的配置

mysql 5.5之前的版本是通过慢查询文件进行查询语句的查看,所以需要配置慢查询

slow_query_log
long_query_time = 3

PMM客户端添加数据库

performance_schema方式

pmm-admin add mysql --user pmm --password pmm --socket /application/mysql3307/logs/mysql.sock  --query-source perfschema 

慢查询的方式

pmm-admin add mysql --user pmm --password pmm --socket /application/mysql3307/logs/mysql.sock 

参考文档

grafna官方文档地址
performance_schema 全方位介绍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容