Grafana+Influxdb(Prometheus)+Apache Jmeter搭建可视化性能测试监控平台

此性能测试监控平台,架构可以是:

  • Grafana+Influxdb+Jmeter
  • Grafana+Prometheus+Jmeter
    Influxdb和Prometheus在这里都是时序性数据库

在测试环境中,压测数据对存储和持久化的要求不高,所以这里的组件可以都通过docker-compose.yml文件或docker容器的方式进行安装,这样更加简明高效,不用逐个二进制的方式去安装服务。

docker、docker-compose的部署流程这里不过多赘述。

通过docker-compose部署

通过docker-compose部署grafana和Influxdb的docker-compose文件如下:

复制代码
version: '3.1'

services:
 influxdb:
   image: influxdb:latest
   container_name: influxdb
   ports:
     - "8083:8083"
     - "8086:8086"
     - "8090:8090"
   environment:
     - INFLUXDB_DB=influxdb
     - INFLUXDB_ADMIN_USER=${INFLUXDB_USERNAME}
     - INFLUXDB_ADMIN_PASSWORD=${INFLUXDB_PASSWORD}
   volumes:
     - influxdb-storage:/var/lib/influxdb

 grafana:
   image: grafana/grafana:latest
   container_name: grafana
   ports:
     - "3000:3000"
   environment:
     - GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
     - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
   depends_on:
     - influxdb
   user: "0"
   volumes:
     - grafana-storage:/var/lib/grafana
     - ./grafana-provisioning/:/etc/grafana/provisioning
volumes:
  influxdb-storage:
  chronograf-storage:
  grafana-storage:

设置环境文件.env,设置influxdb和grafana的用户名和密码:

复制代码
cat .env 
INFLUXDB_USERNAME=admin
INFLUXDB_PASSWORD=influxdb

GRAFANA_USERNAME=admin
GRAFANA_PASSWORD=grafana

运行docker-compose,安装influxdb和grafana,容器正常启动后如图:

复制代码
# 启动容器
docker-compose up 

注意:如果docker-ce没有正常安装,则执行docker-compose up -d会提示iptables的报错:

复制代码
Failed to program FILTER chain: iptables failed: iptables --wait -I FORWARD -o br-fe155984ff4c -j DOCKER: iptables v1.4.21: Couldn't load target `DOCKER':No such file or directory

这个错误信息表明iptables无法加载目标DOCKER,因为没有找到该文件或目录。这通常是由于缺少所需的iptables插件或模块引起的。确保系统上已正确安装了Docker和iptables,且版本兼容。

还可以尝试更新iptables和Docker的版本,以解决这个问题。

grafana访问方式:http://172.16.108.119:3000

初始登录用户为:admin

初始登录密码为:grafana

登录到grafana主页后,创建新的Data Source:

配置Database,选择InfluxDB:

填写IP地址及8086端口:

输入InfluxDB信息,user和password按照env文件中设定的自行修改:

grafana dashboard导入Jmeter模板

到dashboard去下载:Grafana dashboards | Grafana Labs

或者直接访问grafana:Apache JMeter Dashboard using Core InfluxdbBackendListenerClient | Grafana Labs

复制该模板的ID 或者URL

到我们登录的grafana主页去粘贴

可以进行命名,填写之前建好的DataSource名字,设置发送时间,保存即可。

转到刚刚建好的主页,如上图,右上角可以设置:

通过Docker Images安装

安装Influxdb

复制代码
# 搜索influxdb
docker search influxdb
# 拉取influxdb镜像
docker pull influxdb
# 查看镜像images
docker images
# 运行influxdb容器
docker run --name my_influxdb -p 8086:8086 influxdb:1.8-alpine 
# 查看运行的容器container
docker ps -a
# 进入容器
docker exec -it 容器ID /bin/bash
influx
# 创建数据库jmeterDB
show databases;
create database jmeterdb;

my_influxdb容器运行成功

安装grafana

复制代码
# 搜索grafana
docker search grafana
# 拉取grafana镜像
docker pull grafana/grafana
# 运行容器
docker run --name my_grafana -p 3000:3000 grafana/grafana
# 查看状态
docker ps -a
# 退出来再次启动即可
docker start ContainerID

接下来就是使用http://172.16.108.119:3000去登陆grafana并进行配置了。

步骤如上文docker-compose的方式。

Prometheus(测试在本地配置)

需要在Jmeter下装一个插件,用于监听。
https://search.maven.org/remotecontent?filepath=com/github/johrstrom/jmeter-prometheus-plugin/0.6.0/jmeter-prometheus-plugin-0.6.0.jar

下载jmeter-prometheus-plugin-0.6.0.jar之后放到Jmeter/lib/ext下,重启Jmeter即可。

更多设置参考这篇文章: JMeter, Prometheus, and Grafana Integration - QAInsights

总结

搭建其实不难,一个配置文件就搞定,但是想要更好地应用到实践中则需要对Grafana Dashboard做更多的优化和设置。

Grafana+Prometheus+Jmeter这种方式不过就是换一个DataBase,将InfluxDB换成Prometheus,理念大体一样,很细微的差别。

Grafana+Prometheus/influxDB模式可以用到其他地方的监控,也是个不错的选择。

这是我整理的**《2024最新Python自动化测试全套教程》** ,以及配套的接口文档/项目实战**【网盘资源】** ,需要的朋友可以下方视频的置顶评论获取。肯定会给你带来帮助和方向。

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)

相关推荐
云计算老刘1 天前
Keepalived + LVS(DR)+ Apache + NFS
apache·lvs
洒满阳光的午后1 天前
我做了一个“能理解业务语义”的可观测性 MCP Server:统一接入 Prometheus、OpenObserve 和 SkyWalking
人工智能·ai·prometheus·skywalking·openobserve·mcp
羑悻的小杀马特1 天前
工业时序数据库选型:从数据模型与存储引擎看 Apache IoTDB
apache·时序数据库·iotdb
Jermy Li1 天前
HugeGraph 正式晋升 Apache 顶级项目:重塑「图 + AI」底座
数据库·人工智能·apache·知识图谱·database·hugegraph·knowledge graph
可涵不会debug1 天前
时序数据库选型深度指南:Apache IoTDB——大数据时代的优选方案
apache·时序数据库·iotdb
切糕师学AI1 天前
Apache Solr 详解:企业级搜索平台的核心特性与架构
架构·apache·solr
凉云生烟1 天前
我在旅途中看监控:用 Grafana + 内网穿透把数据看板装进手机里
grafana
梵得儿SHI1 天前
SpringCloud 实战落地:可观测性建设(SkyWalking + Prometheus + Grafana)从 0 到 1 生产级部署
grafana·prometheus·springcloud·skywalking·微服务可观测性·线上问题排查
大白菜和MySQL2 天前
apache服务器部署简记
运维·服务器·apache
却话巴山夜雨时i2 天前
互联网大厂Java面试场景:Spring Boot、微服务与Redis实战解析
spring boot·redis·微服务·kafka·prometheus·java面试·电商场景