测试基础 Docker-Compose 轻松搭建 Grafana+InfluxDb 实用 Jmeter 监控面板

花菜 · 2023年05月10日 · 最后由 风子 回复于 2023年11月03日 · 6927 次阅读

1、背景

前几天刚做了一个在 web 端执行 Jmeter 压测的项目

https://github.com/lihuacai168/Jmeter-Toolkit

生成报告使用的 Jmeter 原生的报告,看起来少了点东西,不够高大上

要上档次,那必须是 Grafana

所以,开始搞起来吧

2、Granfana+InfluxDB 配置

2.1 服务搭建

搭建服务最方便的还是 docker-compose

只需要创建一个文件docker-compose.yml,把下面的内容粘贴进去

然后执行docker-compose up -d,就能把服务启动好啦

默认创建一个db叫做jmeter,记住它,下面会用到
为了方便,就没设置账号密码

# docker-compose.yml
version: "3"

services:
  influxdb:
    image: influxdb:1.8
    container_name: influxdb
    ports:
      - "8086:8086"
    volumes:
      - ./influxdb_data:/var/lib/influxdb
    environment:
      - INFLUXDB_DB=jmeter
      # - INFLUXDB_USER=jmeter
      # - INFLUXDB_USER_PASSWORD=jmeter
      # - INFLUXDB_ADMIN_USER=admin
      # - INFLUXDB_ADMIN_PASSWORD=admin

  grafana:
    image: grafana/grafana:8.1.5
    container_name: grafana
    ports:
      - "3000:3000"
    depends_on:
      - influxdb
    volumes:
      - ./grafana_data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin

2.2 配置 Grafana 数据源

服务启动好之后,需要登录到 grafana,地址是http://localhost:3000(默认用户名和密码是 admin/admin)

添加 InfluxDB 数据源:点击左侧菜单中的 “Configuration”(齿轮图标),然后选择 “Data Sources”,点击 “Add data source”,选择 “InfluxDB”,并输入相关信息。

image.png

image.png

image.png

image.png

看到这个就成功啦

image.png

如果写错了,会看到类似这样的报错信息

image.png

2.3 配置 Grafana 面板

数据源配置好之后,就开始配置 Jmeter 面板喽

image.png

image.png

image.png

没有意外的话,就能看到下面这个啦,到这里,Grafana 相关配置已经全部完成

image.png

3、Jmeter 配置

3.1 配置 InfluxDB 监听器

给测试计划增加一个监听器

image.png

这里需要修改的地方有两个,第一个安装下面图片的就好

第二个根据实际情况填写,192.168.199.215是 Influxdb 所在机器的 ip

db 是 2.1 章节中配置的 db 名称

如果你配置了用户密码,那么参考这个文档地址
https://docs.influxdata.com/influxdb/v1.5/query_language/authentication_and_authorization/
image.png

3.2 实际效果

配置完之后,点击开始执行(GUI 不适合真实压测,实际压测请使用非 GUI 模式,导出 jmx 运行即可)

image.png

过一会就能在 Grafana 上看到数据啦

image.png

如果没有,可以看看 log

image.png

公众号原文

共收到 8 条回复 时间 点赞

补充一下

给花总点赞

有没有监控数据库以及其他中间件的模板呢

MBF 回复

这个我就不提供了,自行搜索一下,或者问问 ChatGPT

花菜 怎么部署性能监控平台,大佬指定一下 中提及了此贴 11月01日 19:50


花总,我想问一下我根据你的教程 docker-compose up -d 启动服务,但是只单独启动了 influxdb 服务,docker start grafana 也没办法启动 grafana 服务是为什么,把端口 3000 改成 3001 也不行

看看 grafana 的 logs,大概是文件路径没权限,或者不存在

原因:挂载权限不足。
解决方案:把挂载目录的权限用命令 chmod -R 777 你放置 docker-compose.yaml 文件所在的目录 加上权限就可以了。
比如我这里 docker-compose 所在的目录为/home/grafana_influxdb,我在这个目录的外层给他添加权限就可以了。

最后感谢楼主这么详细的文章,受益良多😁

看您在论坛这么活跃(我遇到问题自己实在解决不了可以询问),我后续要按你这个搭建试试。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册