首页 > 其他分享 >Grafana+Influxdb(Prometheus)+Apache Jmeter搭建可视化性能测试监控平台

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

时间:2023-09-07 11:22:26浏览次数:42  
标签:iptables compose influxdb grafana Prometheus Influxdb docker Grafana Jmeter

本文参考链接:
https://cloud.tencent.com/developer/article/1624720

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

  • 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去下载:https://grafana.com/grafana/dashboards

或者直接访问grafana:https://grafana.com/grafana/dashboards/5496
复制该模板的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即可。

更多设置参考这篇文章: https://qainsights.com/jmeter-prometheus-and-grafana-integration/

总结

搭建其实不难,一个配置文件就搞定,但是想要更好地应用到实践中则需要对Grafana Dashboard做更多的优化和设置。
Grafana+Prometheus+Jmeter这种方式不过就是换一个DataBase,将InfluxDB换成Prometheus,理念大体一样,很细微的差别。
Grafana+Prometheus/influxDB模式可以用到其他地方的监控,也是个不错的选择。

标签:iptables,compose,influxdb,grafana,Prometheus,Influxdb,docker,Grafana,Jmeter
From: https://www.cnblogs.com/even160941/p/17684339.html

相关文章

  • Prometheus+Alertmanager集成免费告警电话、短信
    Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是GoogleBorgMon监控系统的开源版本。 https://www.ccloudalarm.com账号后,选择Prometheus监控集成CCloudAlarm告警平台支持参数自定义,可针对自定义参数做告警处理~首先提供Prometh......
  • node_exporter+Prometheus+Grafana 的数据展示
    对性能测试来说,操作系统资源的监控也是必不可少的。以node_exporter+Prometheus+Grafana为例来说下。结构图: 一、node_exporterhttps://kgithub.com/prometheus/node_exporter/releases下载安装包,解压运行即可。默认监听9100端口,注意端口冲突! 二、Prometheus下载解压Pr......
  • JMeter+InfluxDB+Grafana 的数据展示
    一般情况下,用JMeter做压力测试时,都是使用JMeter的控制台来查看结果,或者安装一些插件查看结果,这样看都没有问题。不过采取以上三种方式有几个方面的问题。整理结果时比较浪费时间。在GUI用插件看曲线,做高并发时并不现实。用JMeter的BackendListener帮我们实时发送......
  • prometheus远程永久存储方案VictoriaMetrics 部署单机版
    1、单机版下载地址:https://github.com/VictoriaMetrics/VictoriaMetrics注:集群版选择cluster版本2、下载解压得到二进制文件tar-xfvictoria-metrics-linux-amd64-v1.93.1.tar.gz3、配置服务启动文件cat/etc/systemd/system/victoria-metrics.service[Unit]Description=V......
  • 搭建JMeter 5.0 + InfluxDB + Grafana 性能测试监控平台(Windows平台)
    前言JMeter往往需要执行完之后拼凑完测试报告,才能看到结果。命令行里的内容也不够详细。那么如何在执行过程中实时监控执行效果呢?使用InfluxDB+Grafana 这个组合可以解决我们的痛点,那就是性能测试过程中的不透明。InfluxDB和Grafana是什么InfluxDB是一种时序数据库,用来存放......
  • Prometheus监控实战系列十二:配置告警规则
    在上篇的文章中,我们通过Grafana实现了监控可视化。而对于运维监控而言,除了监控展示以外,另一个重要的需求无疑就是告警了。良好的告警可以帮助运维人员及时的发现问题,处理问题并防范于未然,是运维工作中不可或缺的重要手段。 在Prometheus的架构中,告警功能由PrometheusServer和A......
  • Prometheus监控实战系列八:标签重写
    标签重写(Relabeling)是Prometheus一个非常有用的功能,它可以在任务拉取(scraping)阶段前,修改target和它的labels。该功能在日常的监控中常常会使用到,值得我们好好了解。 一. 默认标签 默认情况下,Prometheus加载targets后,都会包含一些默认的标签,其中以__作为前置的标签是在系......
  • Prometheus监控实战系列九:主机监控
    前面我们介绍了Prometheus的基础概念,包括数据格式、PromQL语法等,本节我们将讲解如何通过Prometheus实现主机的监控。 Prometheus使用各种Exporter来监控资源。Exporter可以看成是监控的agent端,它负责收集对应资源的指标,并提供接口给到Prometheus读取。不同资源的监控对应不同......
  • Prometheus监控运维实战十: 主机监控指标
    在上一篇文章中我们学习了如何通过node-exporter获取主机监控信息。但安装好监控只是第一步,我们还需要知道哪些监控指标是我们需要关注的。本文将对Prometheus相关的主机监控指标进行介绍。一.CPU监控CPU负载node_load1node_load5node_load15 以上三个指标为主机的CPU平均......
  • Prometheus监控实战系列七:任务与实例
    一. 功能概述 任务与实例,是Prometheus监控中经常会提到的词汇。在其术语中,每一个提供样本数据的端点称为一个实例(instance),它可以是各种exporter,如node-exporter、mysql-exporter,也可以是你自己开发的一个服务。只要提供符合prometheus要求的数据格式,并允许通过HTTP请求获取......