Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台

目录

  • 前言
  • 一、安装InfluxDB
    • 1.下载influxDB镜像
    • 2.查看下载的镜像
    • 3.后台启动influxDB镜像
    • 4.查看运行中的docker
    • 5.从浏览器中打开InfluxDB
    • 6.点击Get Dtarted(开始)
    • 7.配置登录账号、密码、组织、桶
    • 8.点击Configure Later(稍后配置)
    • 9.点击Load your data(加载数据)
    • 10.创建外部读写Token
    • 11.下载Jmeter
    • 12.打开Jmeter,在测试计划中添加:线程组,HTTP请求,察看结果树,聚合报告,后端监听器。
    • 13.配置HTTP请求。
    • 14.配置后端监听器。
    • 15.在jmeter的线程组中更改线程数为500,点击运行。
    • 16.点击Explore(浏览),选择桶jmeter,选择表jmeter,选择count字段,点击Submit(提交)。
  • 二、安装并配置Grafana
    • 1.下载Grafana镜像
    • 2.查看所有下载的镜像
    • 3.后台启动grafana镜像
    • 4.从浏览器中打开Grafana
    • 5.输入默认用户名:admin,默认密码:admin,点击Log in(登录)。
    • 6.点击Skip(跳过)。如果你想要设置新的密码的话,需要输入新密码和确认密码,点击Submit(提交),这里咱们跳过就好。
    • 7.点击Add your first data source(添加第一个数据源)
    • 8.Time series databases(时间序列数据库)选择InfluxDB。
    • 9.配置数据源
    • 10.再次点击Save & Test(保存和测试)按钮,提示Data source is working(数据源正在工作),表示配置已经好了,点击Back(返回)
    • 11.选择模板
    • 12.导入模板
    • 13.映射jmeter的buckets到database。
    • 14.再次运行jmeter,然后点击Grafana的刷新按钮或者刷新页面。
  • 三、安装telegraf
    • 1.下载telegraf镜像
    • 2.查看所有下载的所有下载的镜像
    • 3.后台启动telegraf镜像
    • 4.添加telegraf专用bucket。
    • 5.添加telegraf专用对外Token。
    • 6.映射telegraf的buckets到database
    • 7.在InfluxDB里面创建telegraf
    • 8.对telegraf进行配置。
    • 9.点击Explore(浏览),选择桶telegraf,选择表cpu,点击Submit(提交),已经有数据了。
    • 10.在Grafana里面创建Data sources(数据源)
    • 11.Grafana导入系统监控模板。
    • 12.配置完成。

前言

Jmeter:开源性能压测工具
安装位置:自己电脑
作用:并发测试、压测测试、稳定性测试
InfluxDB:开源时序型数据库
安装位置:性能服务器
作用:按时间标签的方式存放各种性能测试指标
Grafana:开源可视化监控工具
安装位置:性能服务器
作用:生成各种漂亮的性能指标图,方便插入性能测试报告中
telegraf:收集服务器性能代理程序
安装位置:性能服务器
作用:收集性能服务器的各种系统资源指标

安装Docker地址:安装Docker

一、安装InfluxDB

1.下载influxDB镜像

docker pull influxdb

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第1张图片

2.查看下载的镜像

docker images

在这里插入图片描述

3.后台启动influxDB镜像

docker run --name myinfluxdb -p 8086:8086 -p 8083:8083 -d influxdb

–name myinfluxdb 启动镜像后就是个容器,给容器起个名字叫myinfluxdb
-p 8086:8086 -p 8083:8083 指定宿主机(Linux)的8086、8083端口与myinfluxdb容器的8086、8083端口对应
-d 后台运行
Influxdb 启动的镜像名
在这里插入图片描述
遇到的问题:Docker追加端口映射时报错WARNING: IPv4 forwarding is disabled. Networking will not work
在这里插入图片描述
解决方法:
编辑/etc/sysctl.conf文件

vim /etc/sysctl.conf

在最后面加上如下代码,按ESC,输入:wq保存并退出

net.ipv4.ip_forward=1

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第2张图片
重启network服务

systemctl restart network

查看

sysctl net.ipv4.ip_forward

在这里插入图片描述
使用docker ps命令查看运行中的容器,使用docker rm -f 容器的CONTAINER ID/NAMES删除之前生成的错误容器,然后重新启动容器就可以了(从头执行3.后台启动influxDB镜像)

4.查看运行中的docker

docker ps

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第3张图片

5.从浏览器中打开InfluxDB

地址:http://ip地址:8086/
例如:http://192.168.0.104:8086/

6.点击Get Dtarted(开始)

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第4张图片

7.配置登录账号、密码、组织、桶

输入Username(用户名):admin,Password(密码):123456789,Confirm Password(确认密码),Initial Organization Name(初始组织名称):org-jmeter,Inital Bucket Name(初始桶名称):jmeter,点击Continue(继续)。注意:Inital Bucket Name(初始桶名称)必须是jmeter。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第5张图片

8.点击Configure Later(稍后配置)

在这里插入图片描述

9.点击Load your data(加载数据)

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第6张图片

10.创建外部读写Token

点击API Tokens,点击Generate API Token(生成Token令牌),点击Read/Write Token(读/写Token)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第7张图片
填写Description(描述):jmeter-Tocken,选择Read和Write的桶jmeter,点击Save(保存)。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第8张图片

11.下载Jmeter

注意:必须使用5.2以上版本
参考链接:后续补充

12.打开Jmeter,在测试计划中添加:线程组,HTTP请求,察看结果树,聚合报告,后端监听器。

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第9张图片

13.配置HTTP请求。

在服务器名称或ip输入:www.baidu.com。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第10张图片

14.配置后端监听器。

在后端监听器实现中选择InfluxdbBackendListenerClient,在influxdbURL中把http://ip:8086/api/v2/write?org=org-jmeter&bucket=jmeter复制进去并修改为自己的influxdb的ip地址,在application 中输入InfluxDB2,点击添加,在左侧输入influxdbToken,右侧输入的内容为 在InfluxDB中配置的外部读写Token:jmeter-Token的值。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第11张图片
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第12张图片

15.在jmeter的线程组中更改线程数为500,点击运行。

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第13张图片

16.点击Explore(浏览),选择桶jmeter,选择表jmeter,选择count字段,点击Submit(提交)。

注意:有时候可能没图,是因为你jmeter设置的线程数太低导致画不出来图,多跑几遍就好了。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第14张图片

二、安装并配置Grafana

1.下载Grafana镜像

docker pull grafana/grafana

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第15张图片

2.查看所有下载的镜像

docker images

在这里插入图片描述

3.后台启动grafana镜像

docker run --name mygrafana -p 3000:3000 -d grafana/grafana

–name mygrafana启动镜像后就是个容器,给容器起个名字叫mygrafana
-p 3000:3000 指定宿主机(Linux)的3000端口与mygrafana容器的3000端口对应
-d 后台运行
grafana/grafana 启动的镜像名
在这里插入图片描述

4.从浏览器中打开Grafana

地址:http://ip地址:3000/
例如:http://192.168.0.104:3000/

5.输入默认用户名:admin,默认密码:admin,点击Log in(登录)。

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第16张图片

6.点击Skip(跳过)。如果你想要设置新的密码的话,需要输入新密码和确认密码,点击Submit(提交),这里咱们跳过就好。

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第17张图片

7.点击Add your first data source(添加第一个数据源)

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第18张图片

8.Time series databases(时间序列数据库)选择InfluxDB。

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第19张图片

9.配置数据源

Name填写InfluxDB-jmeter,或者你也可以自己起个名字,Query Language(查询语言)选择InfluxQL,URL输入InfluxDB 地址,开启With Credentials(证书)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第20张图片
在Custom HTTP Headers(自定义HTTP头)栏,点击+Add header,Header输入:Authorization, Value:Token +空格+在InfluxDB 的Data-API Tokens中配置的外部访问token:jmeter-Token的值,Database为jmeter(也就是InfluxDB设置的桶的名称),user为InfluxDB的账号admin,密码为InfluxDB的密码123456789,HTTP Method(HTTP方法)选择Get,点击Save & Test(保存和测试)按钮。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第21张图片
注意:在点击Save & Test(保存和测试)按钮后,可能会出现InfluxDB Error,Bad Gateway(坏网关)。
主要原因在服务器屏蔽从docker内部的访问, 修改服务器的防火墙设置即可。

# 添加端口(--permanent永久生效,没有此参数重启后失效) 
firewall-cmd --zone=public --add-port=8086/tcp --permanent
# 更新防火墙规则
firewall-cmd --reload

在这里插入图片描述

10.再次点击Save & Test(保存和测试)按钮,提示Data source is working(数据源正在工作),表示配置已经好了,点击Back(返回)

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第22张图片

11.选择模板

进入网址https://grafana.com/grafana/dashboards,搜索jmeter,选择合适的模板并复制ID,咱们选择第一个就好。点击第一个进入。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第23张图片
点击Copy ID to Clipboard(复制ID到剪贴板)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第24张图片

12.导入模板

点击+号,点击Import(导入)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第25张图片
输入ID,点击Load(加载)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第26张图片
DB name(数据库名称)选择InfluxDB-jmeter,点击Import(导入)。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第27张图片

13.映射jmeter的buckets到database。

由于InfluxDB2.0升级,使用新方式查询数据,不直接支持2.0之前的版本查询,而dashboard模板使用的还是旧方式查询,如果不进行新旧版本映射,则dashboard无法显示数据。
在命令行输入以下内容(需修改为自己的,下面有解释,建议把内容复制到.txt中,修改为自己的,然后再复制粘贴到命令行中)

curl --request POST http://localhost:8086/api/v2/dbrps \
  --header "Authorization: Token YourAuthToken" \
  --header 'Content-type: application/json' \
  --data '{
        "bucketID": "00oxo0oXx000x0Xo",
        "database": "example-db",
        "default": true,
        "orgID": "00oxo0oXx000x0Xo",
        "retention_policy": "example-rp"
      }'

命令解释:
请求方法:POST
Token YourAuthToken:InfluxDB的对外读写Token:jmeter-Token,注意:需输入Token+空格+jmeter-Token值。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第28张图片
bucketID:桶的ID。位置在InfluxDB-Data-Buckets。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第29张图片
database:数据库名称,也就是桶的名称,咱们这里是jmeter
orgID:组织的ID,在InfluxDB的地址栏查看,咱们这里是07c5e203d2f6e65b
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第30张图片
其他保持默认
运行结果:
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第31张图片

14.再次运行jmeter,然后点击Grafana的刷新按钮或者刷新页面。

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第32张图片

三、安装telegraf

1.下载telegraf镜像

docker pull telegraf

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第33张图片

2.查看所有下载的所有下载的镜像

docker images

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第34张图片

3.后台启动telegraf镜像

docker run --net=container:myinfluxdb --name mytelegraf -d telegraf

–net=container:myinfluxdb:设置与myinfluxdb容器在同一网络中
–name mytelegraf 启动镜像后就是个容器,给容器起个名字叫mytelegraf
-d 后台运行
telegraf 启动的镜像名
在这里插入图片描述

4.添加telegraf专用bucket。

在InfluxDB中,Data-Buckets点击Create Bucket(创建桶)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第35张图片
Name输入telegraf,点击Create(创建)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第36张图片

5.添加telegraf专用对外Token。

在InfluxDB中,点击Data,点击API Tokens,点击Generate Token(生成Token令牌),点击Read/Write Token(读/写Token)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第37张图片
填写Description(描述):telegraf-Token,选择Read和Write的桶telegraf,点击Save(保存)。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第38张图片

6.映射telegraf的buckets到database

在命令行输入以下内容(需修改为自己的,下面有解释,建议把内容复制到.txt中修改为自己的,然后再复制粘贴到命令行中):

curl --request POST http://localhost:8086/api/v2/dbrps \
  --header "Authorization: Token YourAuthToken" \
  --header 'Content-type: application/json' \
  --data '{
        "bucketID": "00oxo0oXx000x0Xo",
        "database": "telegraf",
        "default": true,
        "org": "org-jmeter",
        "retention_policy": "example-rp"
      }'

命令解释:
请求方法:POST
Token YourAuthToken:InfluxDB的对外读写Token:telegraf-Token,注意:Token+空格+telegraf-Token的值。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第39张图片
bucketID:桶的ID
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第40张图片
database:数据库名称,也就是桶的名称,咱们这里是telegraf
org:组织名称,咱们创建InfluxDB时的组织名是org-jmeter
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第41张图片
其他保持默认
运行结果:
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第42张图片

7.在InfluxDB里面创建telegraf

Data-点击Telegraf,点击Create Configuration(创建配置)按钮。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第43张图片
Bucket(桶)选择telegraf,选择System,点击Continue(继续)。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第44张图片
填写名称为telegraf,其他保持默认,点击Create and Verify(创建并验证)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第45张图片

8.对telegraf进行配置。

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第46张图片
第一步:您可以通过访问扩展数据下载页面安装最新的Telegraf。如果您的系统上已经安装了Telegraf,请确保它是最新的。您将需要1.9.2或更高版本。
咱们这里忽略。
第二步:进入mytelegraf容器

docker exec -it mytelegraf bash

在这里插入图片描述
复制第二步的命令,运行。注意:粘贴命令后可能在命令行显示错乱,不影响命令的运行,不用管。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第47张图片
在这里插入图片描述
复制第三步的命令,在最后面加&,意思是后台运行。注意:粘贴命令后可能在命令行显示错乱,不影响命令的运行,不用管,直接添加&即可。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第48张图片
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第49张图片
按Enter键,查看进程ps -ef,看到已经启动
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第50张图片
点击Listen for Data(监听数据)。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第51张图片
显示Connection Found!(找到连接!),点击Finish(完成)。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第52张图片

9.点击Explore(浏览),选择桶telegraf,选择表cpu,点击Submit(提交),已经有数据了。

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第53张图片

10.在Grafana里面创建Data sources(数据源)

点击设置图标,选择Data sources(数据源),点击Add data source(添加数据源)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第54张图片
Time series databases(时间序列数据库)选择InfluxDB。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第55张图片
Name填写InfluxDB-telegraf,Query Language(查询语言)选择InfluxQL,URL输入InfluxDB 地址,开启With Credentials(证书)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第56张图片
在Custom HTTP Headers(自定义HTTP头)栏,点击+Add headers,在Header输入:Authorization, Value:Token +空格+在InfluxDB 中配置的外部访问token:telegraf-Token的值,Database为telegraf,user为InfluxDB的账号admin,密码为InfluxDB的密码123456789,HTTP Method(HTTP方法)选择Get
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第57张图片
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第58张图片
点击Save & Test(保存和测试)按钮,提示Data source is working(数据源正在工作),表示配置已经好了,点击Back(返回)。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第59张图片

11.Grafana导入系统监控模板。

在地址栏打开https://grafana.com/grafana/dashboards/3967,复制ID。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第60张图片
打开Grafana,鼠标移动到+,点击Import(导入)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第61张图片
输入复制的ID,点击Load(加载)。
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第62张图片
telegraf选择InfluxDB-telegraf,点击Import(导入)
Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第63张图片

12.配置完成。

Jmeter+Docker+InfluxDB+Grafana+telegraf性能监控平台_第64张图片

你可能感兴趣的:(性能测试,jmeter,docker)