前言

之前写过一篇《linux下性能测试监控平台InfluxDB+Grafana+Jmeter的搭建》,后来在应用中发现,在linux下部署多个原生服务组合使用时移植性较差,每次更换一台linux机器都需要重新搭建所有的服务,在安装和修改配置文件的过程中很容易出现各种各样的问题,而且排查问题非常的耗费时间。Docker部署方便,没有那么多的环境参数配置,隔离性好,更重要是可移植性强,可以完美避开linux原生部署各样的问题。

一、Linux 安装 Docker

1.卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.使用存储库安装

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3.安装docker引擎

sudo yum install docker-ce docker-ce-cli containerd.io

4.启动docker

sudo systemctl start docker

5.使用开机自启

sudo systemctl enable docker

6.使用阿里镜像

sudo mkdir -p /etc/docker

# sudo tee …… 到 …… EOF 这五行一起执行
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://2jakrmvh.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

7.取消sudo运行

sudo usermod -aG docker root # root为当前用户的名字或$USER

二、Docker 安装 InfluDB

  • 1)首先去下载InfluxDB的镜像,下载很简单,直接pull就好,默认为下载最新的镜像:
$ docker pull influxdb

目前最新的influxdb不支持网页端的查看,仅可用命令行的形式,不过没有什么影响,如果真的想要有网页端的显示的话可以尝试下载较前的镜像:tutum/influxdb

  • 2)启动一个容器,并将端口80838086映射出来(本机端口:容器内部端口),如果用的是tutum/influxdb镜像,在访问8083端口时就可以看到网页端的展示,我这里用的是最新的,所以就没有啦:
$ docker run -d -p 8086:8086 --name=jmeterdb influxdb    # 启动influxdb,并命名为jmeterdb
  • 3)进入容器内部,创建名为jmeter的数据库:
    进入jmeter-influx容器
$ docker exec -it jmeterdb bash    # 进入容器

启动infulxdb,进入influxcreate database jmeter创建名为jmeter的数据库,show databases命令查看数据库创建成功

influxd  #启动influxd数据库
influx   # 进入influxdb数据库
create database jmeter;   # 创建jmeter库
show databases;    # 显示所有数据库,显示jmeter库就创建成功
use jmeter;   # 进入jmeter库
select * from jmeter;    # 查询库里面的数据,这时数据是空的正常
  • 4)使用jmeter库,select查看数据,这个时候应该是没有数据的:
$ > use jmeter
Using database jmeter
> select * from jmeter
>

三、JMeter 配置 InfluDB

1.在线程组下添加后端监听器

线程组 > 监听器 > 后端监听器
Thread Group > Listener > Backend Listener

2.配置参数

Backend Listener implementation:org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient
influxdbUrl:http://192.168.21.230:8086/write?db=jmeter	# 这里的IP输自己主机的
application:Order	# 这里的名字自己随意定义即可
measurement:jmeter	# 数据库的名字,jmeter为上面在influxdb中创建的jmeter库
testTitle:JMeter Test	# 这个名字也自己随意定义即可

jellyfin docker安装 docker安装jmeter_linux

配置完之后执行一次脚本,看influxdb中jmeter库里面有没有数据,有数据就没问题

四、Docker 安装 Grafana

1.grafana安装

  • 1)同样,首先我们需要下载grafana的镜像:
$ docker pull grafana/grafana
  • 2)启动一个grafana容器,将3000端口映射出来:
$ docker run -d --name grafana -p 3000:3000 grafana/grafana
  • 3)网页端访问locahost:3000验证部署成功

2.配置数据源

访问http:/localhost:3000,进入登录页,输入账号密码:admin/admin

jellyfin docker安装 docker安装jmeter_数据库_02

点击Skip跳过修改密码

jellyfin docker安装 docker安装jmeter_jmeter_03

在grafana添加数据源,选择Add your first data source

jellyfin docker安装 docker安装jmeter_linux_04

找到 influxdb,单击选择该db

jellyfin docker安装 docker安装jmeter_jmeter_05

配置influxdb数据源:

url: http://192.168.1.138:8086 # 这里的IP输自己influxdb主机的

Access: browser

jellyfin docker安装 docker安装jmeter_linux_06

Database: jmeter

其余参数保持默认值

jellyfin docker安装 docker安装jmeter_数据库_07

点击 Save&Test 按钮

jellyfin docker安装 docker安装jmeter_docker_08

点击左侧加号,选择Import

jellyfin docker安装 docker安装jmeter_linux_09

将json文本复制/粘贴到paste JSON 文本框中,单机Load按钮导入(json文件下载地址:https://grafana.com/api/dashboards/5496/revisions/1/download)

jellyfin docker安装 docker安装jmeter_linux_10

在DB name 中选择 influxDB,单机 Import 按钮完成 Dashboard 导入

jellyfin docker安装 docker安装jmeter_linux_11

自动跳转至监控页面

jellyfin docker安装 docker安装jmeter_数据库_12

JMeter脚本跑起来!!!

jellyfin docker安装 docker安装jmeter_jellyfin docker安装_13