grafana+influxdb2+jmeter5.4搭建服务监控平台

一. grafana+influxdb2安装

通过docker的方式,创建个目录,写docker-compse
1. docker-compse.yml

version: "3"
services:
  influxdb:
    image: influxdb:2.2.0
    container_name: influxdb
    ports:
      - "8086:8086"
  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - "3000:3000"

2. 执行

sudo docker-compose up -d

3. 访问
grafana:grafana-IP:3000 默认账户密码:admin/admin
点击Log in之后,不想修改默认密码可以点击左下边的skip跳过
image

influxdb:influxdb-IP:8086

点击Get Started后,根据提示填写内容:

image

二. telegraf安装

在想要被监控的机器上安装telegraf

#下载:
wget https://dl.influxdata.com/telegraf/releases/telegraf_1.26.1-1_amd64.deb
#安装:
sudo dpkg --install telegraf_1.26.1-1_amd64.deb

#说明:到此安装已经完成。后面再执行UI export和telegraf --config上面的命令即可监测【按第三 1的最后部分】。

三.用influxdb2监控

1. 只想监控被测服务器硬件资源使用率

在UI点击telegraf,
image
选择System
image

image
点击创建之后,这个页面别着急关。
image

#复制出这两个到想要被监控的机器上执行一下
export INFLUX_TOKEN=H9FdZDFirBDiNZRvfm-IA-uneO_CiWyGeQXJm0EVxJMyyQwdRZu_tUeNeBRj7pvOB3qHumhiMkJrJe3FuasyAA==

telegraf --config http://localhost:8086/api/v2/telegrafs/0b07a41bcd92b000

打开就可以看到被测系统的监控平台
image

image

2、grafana+influxdb2 监测

grafana:登录之后,
1、点击DATA sources,选择influxDB
image

2、选择influxDB
image

3、按内容填写信息
image
【注意:如果是本地IP,不能填写localhost或者127.0.0.1,要填写成IP。(因为是装在docker)不然后面test的时候会报错:connection refused】
image

4、grafana引入模板
grafana模板下载地址:https://grafana.com/grafana/dashboards 查找到对应的内容模板
image
image
点击inport,输入influxdb2的数据源ID,点击导入。
image

image

image

3、grafana+influxdb2+jmeter集成监控平台监控性能

部分一:把 jmeter 性能测试数据写入 influxdb2 库

  • jmeter版本:5.4以上
  • 添加后端监听器
    image
    - 运行报错 no dbrp mapping found
    error writing metrics to influxDB Url: http://192.168.1.9:8086/write?db=jmeter&org=yz&bucket=yz_bucket, responseCode: 404, responseBody: {"code":"not found","message":"no dbrp mapping found"}
  • 解决:安装influx-cli并创建jmeter数据库
#创建个文件目录
mkdir influx-cli
#下载influx-cli包  【自行选择版本】
wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.3.0-linux-amd64.tar.gz
#解压
tar -xzvf influxdb2-client-2.3.0-linux-amd64.tar.gz
#创建config
#这里用到的是influxdb访问的IP、org、token
./influx config create --config-name influx-cli-config \
--host-url http://127.0.0.1:8086 \
--org yz > \
--token koOvYPbBaDpEXiD00kYOYxE-9rUCrUqXnL9-GW8VGZNqmgnCssNt0XW-NFoptvsGTUG1ZIgPt9eeWLLCmUOSRg== \
--active

#创建数据库
# 可以通过
./influx v1 dbrp create \
  --db jmeter \
  --rp jmeter \
  --bucket-id dc99a9b26dab277f \
  --default

官网资料influx CLI:https://docs.influxdata.com/influxdb/v2.3/tools/influx-cli/
之后jmeter运行正常无报错信息。数据已可以正常写入influxdb2中。
image

  • 如何查看写入成功与否?
#在客户端执行 【IP、Token 要改】
curl http://192.168.1.9:8086/query \
--header "Authorization: Token koOvYPbBaDpEXiD00kYOYxE-9rUCrUqXnL9-GW8VGZNqmgnCssNt0XW-NFoptvsGTUG1ZIgPt9eeWLLCmUOSRg==" \
--data-urlencode "q=select * from jmeter.jmeter.jmeter order by time desc limit 2;"

有信息输出:
image

部分二:. grafana集成显示jmeter在influxdb2的测试数据

- 手动的方式

Influxdb界面>explore,
选择Bucket名称,measure搜索jmeter(数据库中的表),filed你可以选择要展示/查询的数据,点击submit,点击script editor
image
复制
image
回到grafana,
image

image
点击右上角的保存。
image

- 导入模板的方式
  1. 原来mport模板 5496,是基于influxdb1.x版本的,不支持influxdb2版本。所以没有数据,需要进行修改。image
  2. 参照 jmeter-plugin-influxdb2-listener-2.6的方式
  1、下载jdk11  
  2、下载jmeter-plugins-influxdb2-listener-2.6.jar 包,把它放到jmeter的lib\ext文件夹中
  3、解压安装jdk11,不需要配置系统环境变量
  4、修改jmeter的bin文件夹中 jmeter启动文件,添加
  export JAVA_HOME='/home/hww/Applications/jdk-11'  
  5、重新启动jmeter 

1、jmeter 后端监听器设置
image
2、在jmeter执行性能测试

3、grafana中import模板13644,选择对应的数据库
image

image

数据显示
image

参考:http://testingpai.com/article/1651213047335

posted @ 2023-04-12 13:31  ranh  阅读(826)  评论(0编辑  收藏  举报