zoukankan      html  css  js  c++  java
  • 二十五、JMeter实战-JMeter-InfluxDB-Grafana性能测试监控平台

    前言

    性能测试工具 JMeter 自带的监视器对性能测试结果的实时展示,在Windows系统下的GUI模式运行,渲染和效果不是太好,在linux环境下又无法实时可视化。
    因此如果有一个性能测试结果实时展示的页面,可以提高我们对系统性能表现的掌握程度,另一方面也提高了我们的测试效率。所以我们现在用InfluxDB+Grafana对性能结果进行实时监控,把JMeter的压测结果写入InfluxDB,然后通过Grafana展示出来。

    一、InfluxDB简介与安装

    1、InfluxDB简介

    InfluxDB 是用 Go 语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。
    类似的数据库有 Elasticsearch、Graphite 等。

    主要功能:
    1)基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)
    2)可度量性:你可以实时对大量数据进行计算
    3)基于事件:它支持任意的事件数据

    InfluxDB主要特点:

    1)无结构(无模式):可以是任意数量的列
    2)可拓展的
    3)支持 min, max, sum, count, mean, median 等一系列函数,方便统计
    4)原生的 HTTP 支持,内置HTTP API
    5)强大的类 SQL 语法
    6)自带管理界面,方便使用

    二、InfluxDB安装

    InfluxDB官方文档:

    https://docs.influxdata.com/influxdb/v1.6/

    下载安装包:

    wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm

    下载完之后,直接就可以安装

    yum localinstall influxdb-1.7.0.x86_64.rpm
    

    提示一下信息即表示安装成功了

    启动 influxdb 数据库:

    service influxdb start
    

    停止 influxdb 数据库:

    service influxdb stop
    

    端口说明

    8083:访问 web 页面的地址,8083 为默认端口;
    8086:数据写入 influxdb 的地址,8086 为默认端口;
    8088:数据备份恢复地址,8088 为默认端口;

    开启防火墙:

    firewall-cmd --add-port=8086/tcp --permanent
    firewall-cmd --add-port=8086/udp --permanent 
    firewall-cmd --reload
    

    PS:如果你的服务器是阿里云的话,在阿里云控制台-安全组,开启准入访问的端口,不然访问不了。

    查看InfluxDB端口号:

    ``netstat -nultp```

    提示没找到命令。
    解决办法:

    linux使用netstat或者ifconfig命令时,显示命令未找到。

    yum install net-tools
    

    再重新查看端口号即可

    三、Grafana介绍与安装

    Grafana 是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:

    • 1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
    • 2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
    • 3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
    • 4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
    • 5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
    • 6、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。

    官方文档:
    https://grafana.com/docs/grafana/latest/

    安装Grafana

    wget https://dl.grafana.com/oss/release/grafana-6.2.2-1.x86_64.rpm
    

    下载完成进行安装

    yum localinstall grafana-6.2.2-1.x86_64.rpm

    启动 grafana 服务:
    service grafana-server start

    停止 grafana 服务:
    service grafana-server stop

    设置开机启动:

    systemctl enable grafana-server.service

    启动服务,打开浏览器,输入IP+端口,3000为 Grafana 的默认侦听端口。

    注意一点就是先添加防火墙:

    firewall-cmd --add-port=3000/tcp --permanent
    firewall-cmd --add-port=3000/udp --permanent 
    firewall-cmd --reload
    

    默认账号密码:admin/admin

    还记得前面说的原理吗?InfluxDB数据库存放数据---通过Grafana动态展示出来,那么数据从哪里来?so。。。配置JMeter

    四、JMeter配置

    在监听器中添加后置监听器

    主要是配好url

    五、InfluxDB配置

    1)进入 InfluxDB 数据库:influx

    2)新建一个”jmetertest”数据库:create database jmetertest

    3)查看数据库:show databases;

    4)使用jmetertest数据库:use jmetertest;

    5)显示表:show measurements;

    有两张表,我们主要看jmeter表

    6)去 JMeter 中运行一个准备好的脚本,运行完在jmeter表中查看有没有数据。

    7)查看 JMeter 表:select * from jmeter;

    数据出来了,那么配置Grafana,把这些数据动态展示出来。

    六、配置Grafana

    登录 Grafana,进入首页

    1)创建一个数据源

    2)选择InfluxDB

    3)填写好以下信息,注意填写正确

    4)新建一个import

    5)选择4026模板

    如果要其他模板,去仪表盘中选择:

    https://grafana.com/grafana/dashboards

  • 相关阅读:
    解决:Could not resolve archetype org.apache.maven.archetypes
    Spring MVC配置MyBatis输出SQL
    Spring集成MyBatis 通用Mapper以及 pagehelper分页插件
    关于SpringMVC或Struts2接受参数接收不到的原因
    配置quartz启动时就执行一次
    ajaxFileUpload进行文件上传时,总是进入error
    spring mvc注入配置文件里的属性
    java中将一个文件夹下所有的文件压缩成一个文件
    flume failed to start agent because dependencies were not found in classpath
    ubuntu不能安装pip unable to install pip in unbuntu
  • 原文地址:https://www.cnblogs.com/wwho/p/12580019.html
Copyright © 2011-2022 走看看