史上最容易的 mysql 数据库性能测试监控平台搭建 -- 柠檬班独家发布

数据库作为数据存储软件,在现在企业项目中,得到普遍应用,而 MySQL 作为免费的开源版本,更是得到大量企业的青睐,成为主流存储数据库。而数据库的性能,很大程度上,会影响项目应用服务的性能,所以,企业对 MySQL 数据库的性能是非常关注的。

今天,我们虽然不是讲解 MySQL 数据库的性能测试,但是,监控,作为性能测试或日常数据库维护必须的一环,我们还是有必要认真学习一下的。

说到 MySQL 数据库的监控,可能很多人,第一反应会是 jprofile 监控。但是,我不推荐。因为,我们有更方便,简单易上手的监控平台,就是我们今天讲的 grafana+prometheus 监控平台监控数据库。通过浏览器访问监控平台,可以看到如下图:

mysql20210224192138.png

为了让零基础的同学,也能分分钟掌握这项技术,我们从安装数据库,搭建监控平台,一步步讲起。

创建环境

# 创建一个docker网络
docker network create monitor-network

# 创建一个mysql数据库
docker run -itd --name mysql_575 \
--network=monitor-network \
-p 3366:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
daocloud.io/library/mysql:5.7.5

完成这一步,你已经用 docker,创建了一个 5.7.5 版本的 MySQL 数据库,名称叫‘mysql_575’,数据库的 root 账户密码为 123456,数据库外部访问端口为 3366,可以用客户端工具,直接连接使用了。

接下来,我们搭建 grafana+prometheus 的监控平台

# 创建grafana容器
docker run -itd --name docker-grafana \
--network=monitor-network \
-p 3300:3000 \
grafana/grafana

# 创建prometheus容器
docker run -itd --name docker-prometheus \
--network=monitor-network \
-p 9990:9090 \
prom/prometheus

执行完这两个命令,我们的监控平台环境就已经安装好了

接下来,我们就安装数据库的监控

# 创建mysqld-exporter容器
docker run -itd -p 9114:9104 \
--name=my_exporter \
--network=monitor-network \
-e DATA_SOURCE_NAME="root:123456@(mysql容器的hostname:3306)/" \
prom/mysqld-exporter

MySQL 容器的 hostname,可以通过 docker inspect mysql_575 查看到;

‘mysql_575’是我们安装的数据库的名称,也可以用查看到的 IPAddress 值

命令设置了监控工具外部访问端口为 9114

命令中 root:123456 是数据库安装 root 账户和密码

可以通过浏览器访问 http://安装了 mysqld-exporter 的机器 ip:9114 ,如果能正常访问且显示数据,说明数据库的监控已经安装好。

注意: 浏览器要能正常访问,需要服务器上开放 9114 端口

此时,我们环境安装工作就完成了。

接下来,就是配置 prometheus 收集存储监控数据。

配置 prometheus

从容器中拷贝出 prometheus 的配置文件

# 从Prometheus容器中拷贝配置文件到宿主机
docker cp docker_prometheus:/etc/prometheus/prometheus.yml $PWD

docker_prometheus 是上面创建 prometheus 容器时 name 后面的值

修改配置文件

# 修改prometheus.yml,在文件对底下,参照如下信息配置,注意书写格式
vim prometheus.yml


scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
 
  - job_name: 'mysql-exporter'
    static_configs:
      - targets: ['mysqld-export容器ip:9104']

docker inspect my_exporter 可以查看到 mysql-exporter 容器的 IPAddress 信息; my_exporter 是上面安装数据库监控命令中 name 的值

把修改后的配置文件,拷贝到容器中,重启,使其生效

# 把修改后的Prometheus配置文件拷贝到容器中
docker cp $PWD/prometheus.yml docker_prometheus:/etc/prometheus/prometheus.yml

# 重启动prometheus容器
docker restart docker-prometheus

配置后,可以通过浏览器访问 http://安装了 prometheus 的机器 ip:9090 如果页面能正常访问,说明配置修改正常。

注意: 浏览器要能正常访问,需要服务器开放 9090 端口

现在,环境与配置文件都弄好了,就差在监控平台展示数据了

配置 granfan+prometheus 平台

Ⅰ、登录 grafana

浏览器访问 http://安装了 grafana 的机器 ip:3000 账号密码均为 admin

grafana20210108135726.png

Ⅱ、添加 prometheus 数据源

登录后,在首页点击 ‘Add your fist data source’

grafana20210108144721.png

在跳转页面,选择 Prometheus,填写相关信息

grafana20210108145707.png

点击 back 按钮,回到首页

Ⅲ、引入模板 7362

点击 import

grafana20210108145855.png

输入 7362,点击 load

mysql2021022501.png

即可看到数据库实时监控效果

mysql20210224192138.png

2 回帖
请输入回帖内容 ...
  • Allen

    有, 我们课程会讲多种监控平台,这个只是其中之一。

  • 其他回帖
  • tingwu
    该回帖仅作者和楼主可见
    1 回复