前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能测试-Grafana+InfluxDB+Prometheus实现Jmeter压测监控

性能测试-Grafana+InfluxDB+Prometheus实现Jmeter压测监控

作者头像
打铁读书郎
发布2024-04-11 21:11:50
2400
发布2024-04-11 21:11:50
举报
文章被收录于专栏:暴走的程序质检员

202305_性能测试-Grafana+InfluxDB+Prometheus实现Jmeter压测监控

参照: https://www.cnblogs.com/juno3550/p/15846151.html

实现逻辑

关于 InfluxDB

时序数据库, 主要用于储存时间戳为主键的时间序列信息, 提供高性能的储存和检索

维度

InfluxDB

Mysql

Mongo

储存数据

TimeSeries Data

表格数据

Json数据

结构

database-measurement

database-table

database-collection

timestemp(唯一主键)、tag(带索引的,非必须,分类依据)、field(数据, 不带索引)

column

关于Prometheus

Prometheus(官网)是一套开源的监控&报警&时序数据库的组合,适合监控 Docker 容器,服务器及程序

代码语言:javascript
复制
graph LR 
监控对象对应的Endpoint--端口交互-->监控-->存储数据
监控-->预警
实现逻辑
代码语言:javascript
复制
graph LR
Jmeter--BackendListener收集客户端数据-->InfluxDB-->Grafana
Server--nodeExporter收集服务器数据-->Prometheus-->Grafana

部署InfluxDB

部署容器

代码语言:javascript
复制
docker network create grafana
docker run -d --name=influxdb --network grafana -p 8086:8086 -v /home/loadTest/influxdb/:/home/loadTest/influxdb influxdb:1.7.10  # -V部分需要自定义
docker exec -it influxdb influx

数据库设置

代码语言:javascript
复制
create database jmeters;
use jmeters;

部署grafana

代码语言:javascript
复制
docker run -d --name grafana --network grafana -p 3000:3000 grafana/grafana:9.5.3  # 不要直接拉latest, 会拉取旧版本

# 部署容器时指定配置文件*
docker run  -d --name grafana --network grafana -p 3000:3000 -e "GF_USERS_DEFAULT_LANGUAGE=zh-CN" grafana/grafana  # 我这里尝试将语言改成中文,配置文件改成功了,但是页面还是英文

配置文件示例:https://github.com/grafana/grafana/blob/main/conf/defaults.ini 格式 -e “GF__ = $自定义值”, 一切都应为大写,“.”和“-”应替换为“_”。

登录

  • 访问 ip:3000, 默认账密admin/ admin

组装InfluxDB+grafana

登录grafana, setting模块选择InfluxDB进行配置以下内容后, 点击save& test

manage模块点击import

设置刷新频率

  • 右上角循环icon, 设置刷新频率

组装InfluxDB+Jmeter

Jmeter 配置 Influxdb 监听器

添加Backend Listener 监听器

  • Backend Listener Implementation:org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient
  • influxdbUrl: http://192.168.2.111:8086/write?db=jmeters
  • application:app_1 自定义应用名称,可在 grafana 仪表盘中筛选区分。
  • measurement:jmeter 在写入数据时会自动创建名为jmeter的measurement
  • summaryOnly:false 在 grafana 仪表盘中显示详细 Error 信息。
  • testTitle:test_demo_1 在 influxdb 表数据中作区分。
Jmeter压测

进行Jmeter压测, 查看grafana数据展示

部署Prometheus

下载配置文件
部署Prometheus
代码语言:javascript
复制
docker run -d --name prometheus --network grafana -p 9090:9090 -v /home/loadTest/prometheus/prometheus.yml:/home/loadTest/prometheus/prometheus.yml prom/prometheus:v2.16.0 --config.file=/home/loadTest/prometheus/prometheus.yml

Prometheus登录测试

  • 浏览器输入http://${ip}:9090/graph, 可以进入Prometheus 监控页面
部署主机监控node_exporter
代码语言:javascript
复制
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz   # 注意这是2022年的教程,可以到github下载最新版 -- https://github.com/prometheus/node_exporter

tar -zxvf node_exporter-1.6.0.linux-amd64.tar.gz 
cd node_exporter-1.6.0.linux-amd64/
nohup ./node_exporter --web.listen-address=":9102" & # 我再这里不限定了监听IP
组装Prometheus+node_exporter
代码语言:javascript
复制
vim /home/loadTest/prometheus/prometheus.yml

---- 添加
 # node_exporter config
  - job_name: "235 node_exporter"
    static_configs:
      - targets: ["192.168.2.235:9102"]  # 设置监听监听IP

docker restart prometheus

访问测试

  • 访问Premetheus, Status->Targets, 可以看到Endpoint: 134 node_exporter

组装Prometheus+Grafana

Grafana, 点击设置新增DataSource->Prometheus

Create->Import

如果要更换dashboard,要注意模板和grafana的兼容问题

如果还要监控Mongo

参照: https://www.cnblogs.com/zqyx/p/10107233.html

附录

Reference

修改grafana配置文件 : 以Docker方式安装的Grafana如何修改配置 - 初心 (mayanpeng.cn)

安装docker : centos7安装Docker详细步骤(无坑版教程)-腾讯云开发者社区-腾讯云 (tencent.com)

权限隔离: https://www.jianshu.com/p/aac0cef668e6

可能会用到的命令

InfluxDB Sql

代码语言:javascript
复制
show databases;
use jmeters;

SELECT * FROM jmeter ORDER BY time DESC LIMIT 10 offset 100; # 查询数据库跳过100个显示10条数据
DROP MEASUREMENT jmeter;

用到的linux命令

代码语言:javascript
复制
lsof -i:9090  # 查看端口占用
sudo firewall-cmd --zone=public --add-port=9102/tcp --permanent
sudo firewall-cmd --reload  # 开放防火墙端口
Docker版Grafana
  • 如果要配置grafana, 使用docker 环境变量进行配置 (-e参数)
  • 环境变量 只能修改配置,无法新增配置
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 202305_性能测试-Grafana+InfluxDB+Prometheus实现Jmeter压测监控
    • 实现逻辑
      • 部署InfluxDB
        • 部署grafana
          • 组装InfluxDB+grafana
            • 组装InfluxDB+Jmeter
              • 部署Prometheus
                • 组装Prometheus+Grafana
                  • 如果还要监控Mongo
                    • 附录
                    相关产品与服务
                    Grafana 服务
                    Grafana 服务(TencentCloud Managed Service for Grafana,TCMG)是腾讯云基于社区广受欢迎的开源可视化项目 Grafana ,并与 Grafana Lab 合作开发的托管服务。TCMG 为您提供安全、免运维 Grafana 的能力,内建腾讯云多种数据源插件,如 Prometheus 监控服务、容器服务、日志服务 、Graphite 和 InfluxDB 等,最终实现数据的统一可视化。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档