前言
之前写过一篇《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)启动一个容器,并将端口
8083
和8086
映射出来(本机端口:容器内部端口),如果用的是tutum/influxdb
镜像,在访问8083端口时就可以看到网页端的展示,我这里用的是最新的,所以就没有啦:
$ docker run -d -p 8086:8086 --name=jmeterdb influxdb # 启动influxdb,并命名为jmeterdb
- 3)进入容器内部,创建名为jmeter的数据库:
进入jmeter-influx
容器
$ docker exec -it jmeterdb bash # 进入容器
启动infulxdb,进入influx
,create 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 # 这个名字也自己随意定义即可
配置完之后执行一次脚本,看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
点击Skip跳过修改密码
在grafana添加数据源,选择Add your first data source
找到 influxdb,单击选择该db
配置influxdb数据源:
url: http://192.168.1.138:8086 # 这里的IP输自己influxdb主机的
Access: browser
Database: jmeter
其余参数保持默认值
点击 Save&Test 按钮
点击左侧加号,选择Import
将json文本复制/粘贴到paste JSON 文本框中,单机Load按钮导入(json文件下载地址:https://grafana.com/api/dashboards/5496/revisions/1/download)
在DB name 中选择 influxDB,单机 Import 按钮完成 Dashboard 导入
自动跳转至监控页面
JMeter脚本跑起来!!!