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

目录

前言

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

安装Docker地址:安装Docker

一、安装InfluxDB

1.下载influxDB镜像

docker pull influxdb

在这里插入图片描述

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

在这里插入图片描述
重启network服务

systemctl restart network

查看

sysctl net.ipv4.ip_forward

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

4.查看运行中的docker

docker ps

在这里插入图片描述

5.从浏览器中打开InfluxDB

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

6.点击Get Dtarted(开始)

在这里插入图片描述

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

输入Username(用户名):admin,Password(密码):123456789,Confirm Password(确认密码),Initial Organization Name(初始组织名称):org-jmeter,Inital Bucket Name(初始桶名称):jmeter,点击Continue(继续)。注意:Inital Bucket Name(初始桶名称)必须是jmeter。
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

10.创建外部读写Token

点击API Tokens,点击Generate API Token(生成Token令牌),点击Read/Write Token(读/写Token)
在这里插入图片描述
填写Description(描述):jmeter-Tocken,选择Read和Write的桶jmeter,点击Save(保存)。
在这里插入图片描述

11.下载Jmeter

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

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

在这里插入图片描述

13.配置HTTP请求。

在服务器名称或ip输入:www.baidu.com。
在这里插入图片描述

14.配置后端监听器。

在后端监听器实现中选择InfluxdbBackendListenerClient,在influxdbURL中把http://ip:8086/api/v2/write?org=org-jmeter&bucket=jmeter复制进去并修改为自己的influxdb的ip地址,在application 中输入InfluxDB2,点击添加,在左侧输入influxdbToken,右侧输入的内容为 在InfluxDB中配置的外部读写Token:jmeter-Token的值。
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

注意:有时候可能没图,是因为你jmeter设置的线程数太低导致画不出来图,多跑几遍就好了。
在这里插入图片描述

二、安装并配置Grafana

1.下载Grafana镜像

docker pull grafana/grafana

在这里插入图片描述

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(登录)。

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

9.配置数据源

Name填写InfluxDB-jmeter,或者你也可以自己起个名字,Query Language(查询语言)选择InfluxQL,URL输入InfluxDB 地址,开启With Credentials(证书)
在这里插入图片描述
在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(保存和测试)按钮。
在这里插入图片描述
注意:在点击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(返回)

在这里插入图片描述

11.选择模板

进入网址https://grafana.com/grafana/dashboards,搜索jmeter,选择合适的模板并复制ID,咱们选择第一个就好。点击第一个进入。
在这里插入图片描述
点击Copy ID to Clipboard(复制ID到剪贴板)
在这里插入图片描述

12.导入模板

点击+号,点击Import(导入)
在这里插入图片描述
输入ID,点击Load(加载)
在这里插入图片描述
DB name(数据库名称)选择InfluxDB-jmeter,点击Import(导入)。
在这里插入图片描述

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值。
在这里插入图片描述
bucketID:桶的ID。位置在InfluxDB-Data-Buckets。
在这里插入图片描述
database:数据库名称,也就是桶的名称,咱们这里是jmeter
orgID:组织的ID,在InfluxDB的地址栏查看,咱们这里是07c5e203d2f6e65b
在这里插入图片描述
其他保持默认
运行结果:
在这里插入图片描述

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

在这里插入图片描述

三、安装telegraf

1.下载telegraf镜像

docker pull telegraf

在这里插入图片描述

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

docker images

在这里插入图片描述

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(创建桶)
在这里插入图片描述
Name输入telegraf,点击Create(创建)
在这里插入图片描述

5.添加telegraf专用对外Token。

在InfluxDB中,点击Data,点击API Tokens,点击Generate Token(生成Token令牌),点击Read/Write Token(读/写Token)
在这里插入图片描述
填写Description(描述):telegraf-Token,选择Read和Write的桶telegraf,点击Save(保存)。
在这里插入图片描述

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的值。
在这里插入图片描述
bucketID:桶的ID
在这里插入图片描述
database:数据库名称,也就是桶的名称,咱们这里是telegraf
org:组织名称,咱们创建InfluxDB时的组织名是org-jmeter
在这里插入图片描述
其他保持默认
运行结果:
在这里插入图片描述

7.在InfluxDB里面创建telegraf

Data-点击Telegraf,点击Create Configuration(创建配置)按钮。
在这里插入图片描述
Bucket(桶)选择telegraf,选择System,点击Continue(继续)。
在这里插入图片描述
填写名称为telegraf,其他保持默认,点击Create and Verify(创建并验证)
在这里插入图片描述

8.对telegraf进行配置。

在这里插入图片描述
第一步:您可以通过访问扩展数据下载页面安装最新的Telegraf。如果您的系统上已经安装了Telegraf,请确保它是最新的。您将需要1.9.2或更高版本。
咱们这里忽略。
第二步:进入mytelegraf容器

docker exec -it mytelegraf bash

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

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

在这里插入图片描述

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

点击设置图标,选择Data sources(数据源),点击Add data source(添加数据源)
在这里插入图片描述
Time series databases(时间序列数据库)选择InfluxDB。
在这里插入图片描述
Name填写InfluxDB-telegraf,Query Language(查询语言)选择InfluxQL,URL输入InfluxDB 地址,开启With Credentials(证书)
在这里插入图片描述
在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
在这里插入图片描述
在这里插入图片描述
点击Save & Test(保存和测试)按钮,提示Data source is working(数据源正在工作),表示配置已经好了,点击Back(返回)。
在这里插入图片描述

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

在地址栏打开https://grafana.com/grafana/dashboards/3967,复制ID。
在这里插入图片描述
打开Grafana,鼠标移动到+,点击Import(导入)
在这里插入图片描述
输入复制的ID,点击Load(加载)。
在这里插入图片描述
telegraf选择InfluxDB-telegraf,点击Import(导入)
在这里插入图片描述

12.配置完成。

在这里插入图片描述

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值