性能工具之JMeter + Grafana + InfluxDB 性能平台搭建

举报
zuozewei 发表于 2024/08/04 23:06:22 2024/08/04
【摘要】 性能工具之JMeter + Grafana + InfluxDB 性能平台搭建

一、准备

  • 环境:Linux环境
  • grafana-4.5.2-1.x86_64.rpm
  • influxdb-1.2.2.x86_64.rpm
  • JMeter 5.x 及以上

1、CentOS 6

重启防火墙:service iptables rstart
查看状态:service iptabes status
关闭防火墙:service iptables stop
关闭防火墙(重启生效):chkconfig iptables  off(关闭)/on(开启)
查看自启动状态列表  chkconfig  iptables --list 

2、CentOS 7

使用如下:

关闭防火墙:systemctl stop firewalld.service
查看状态:systemctl status firewalld.service
           绿的running表示防火墙开启
禁用防火墙(系统启动时不启动防火墙服务):systemctl disable firewalld
systemctl is-enabled firewalld

二、安装

1、离线安装

安装文件上传工具:

yum install -y lrzsz

在这里插入图片描述

上传安装包:

grafana-4.5.2-1.x86_64.rpm、influxdb-1.2.2.x86_64.rpm

本机上传路径:
在这里插入图片描述

提示:
在这里插入图片描述

安装方法:

wget et https://dl.influxdata.com/influxdb/releases/influxdb-1.6.2.x86_64.rpm
rpm -ivh influxdb-1.2.0.x86_64.rpm

在这里插入图片描述
提示:
在这里插入图片描述

执行命令:

[root@localhost ~]# rpm -ivh influxdb-1.2.2.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:influxdb-1.2.2-1                 ################################# [100%]
Created symlink from /etc/systemd/system/influxd.service to /usr/lib/systemd/system/influxdb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/influxdb.service to /usr/lib/systemd/system/influxdb.service.

2、在线安装

yum下载Grafana并且安装:

https://grafana.com/docs/installation/rpm/
yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.1-1.x86_64.rpm

结果:
在这里插入图片描述

提示:

[root@localhost ~]# rpm -ivh grafana-4.5.2-1.x86_64.rpm 
warning: grafana-4.5.2-1.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 24098cb6: NOKEY
error: Failed dependencies:
        fontconfig is needed by grafana-4.5.2-1.x86_64
        urw-fonts is needed by grafana-4.5.2-1.x86_64

在这里插入图片描述
执行:

[root@localhost ~]# yum install -y urw-fonts
rpm -ivh grafana-4.5.2-1.x86_64.rpm

在这里插入图片描述
执行命令:

root@localhost ~]# rpm -ivh grafana-4.5.2-1.x86_64.rpm 
warning: grafana-4.5.2-1.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 24098cb6: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:grafana-4.5.2-1                  ################################# [100%]
### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd
 sudo /bin/systemctl daemon-reload
 sudo /bin/systemctl enable grafana-server.service
### You can start grafana-server by executing
 sudo /bin/systemctl start grafana-server.service
POSTTRANS: Running script
[root@localhost ~]#

三、配置

1、InfluxDB的配置

主要配置jmeter存储的数据库与端口号,还有需要将UI端口开放。

修改配置influxdb.conf:

[root@localhost ~]# vi /etc/influxdb/influxdb.conf
# 找到graphite并且修改它的库与端口
[[graphite]]
enabled = true
bind-address = ":2003"
database = "jmeter"
retention-policy = ""
protocol = "tcp"
batch-size = 5000
batch-pending = 10
batch-timeout = "1s"
consistency-level = "one"
separator = "."
udp-read-buffer = 0 

如图:
在这里插入图片描述

修改配置:
找到admin,将前面的#号去掉,开放它的UI端口

# 找到admin,将前面的#号去掉,开放它的UI端口
[admin]
  # Determines whether the admin service is enabled.
  enabled = true
  # The default bind address used by the admin service.
  bind-address = ":8083"
  # Whether the admin service should use HTTPS.
  # https-enabled = false
  # The SSL certificate used when HTTPS is enabled.
  # https-certificate = "/etc/ssl/influxdb.pem

如图:
在这里插入图片描述

保存并推出:【:wq】
在这里插入图片描述
启动InfluxDB:

[root@localhost ~]# /etc/init.d/influxdb restart
Stopping influxdb...
influxdb process was stopped [ OK ]
Starting influxdb...
influxdb process was started [ OK ]

如图:
在这里插入图片描述

CentOS7启动方式:

[root@localhost ~]# service influxd.service start                               
Redirecting to /bin/systemctl start influxd.service  / systemctl restart influxd.service
[root@localhost ~]#
[root@localhost ~]# influx
Connected to http://localhost:8086 version 1.2.2
InfluxDB shell version: 1.2.2
> exit
##启动后TCP端口:8083 为InfluxDB 管理控制台
##TCP端口:8086 为客户端和InfluxDB通信时的HTTP API

检查:端口是否启动[netstat -ntlp]
在这里插入图片描述
查看防火墙:
在这里插入图片描述
页面访问:
在这里插入图片描述
创建数据库:

CREATE DATABASE "jmeter"

在这里插入图片描述
创建成功提示:
在这里插入图片描述
验证数据数据:
在这里插入图片描述

2、Grafana配置

启动Grafana:

/etc/init.d/grafana-server restart

在这里插入图片描述
CentOS7:

 service grafana-server start/ systemctl restart grafana-server

在这里插入图片描述
查看相关服务:

[root@localhost ~]# ps -ef | grep grafana
grafana   1751     1  0 06:52 ?        00:00:00 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins
root      1786  1507  0 07:00 pts/0    00:00:00 grep --color=auto grafana
[root@localhost ~]# ps -ef | grep influxd
influxdb  1775     1  0 06:55 ?        00:00:00 /usr/bin/influxd -config /etc/influxdb/influxdb.conf
root      1849  1507  0 07:00 pts/0    00:00:00 grep --color=auto influxd
[root@localhost ~]#
[root@localhost ~]# netstat -nlp | grep 1751
tcp6       0      0 :::3000                 :::*                    LISTEN      1751/grafana-server 
[root@localhost ~]#

在这里插入图片描述
通过进程查看端口:netstat -nlp | grep 1751
在这里插入图片描述

验证 http://IP:3000/login
在这里插入图片描述
输入用户名,密码登录系统。用户名与密码都是"admin"

配置相关数据:

添加InfluxDB数据库配置。输入帐号密码“admin / admin”,点击Test & Save 提示“Success”说明成功了

  • 8083端口是InfluxDB的UI界面展示的端口
  • 8086端口是Grafana用来从数据库取数据的端口
  • 2003端口则是刚刚设置的,Jmeter往数据库发数据的端口

【注意】URL的端口是8086,而刚才配置的8083是UI的端口。
在这里插入图片描述

配置连接成功:
在这里插入图片描述
配置:

选择导入模板
在这里插入图片描述
下载模板:

https://grafana.com/grafana/dashboards

在这里插入图片描述
或者选择:
在这里插入图片描述

导入下载模板:
在这里插入图片描述
选择数据源:
在这里插入图片描述

或者选择:

在这里插入图片描述
显示成功:
在这里插入图片描述

调试整个显示:
在这里插入图片描述

相关说明:

线程数/用户相关指标

  • test.minAT-Min active threads:最小活跃线程数
  • test.maxAT-Max active threads:最大活跃线程数
  • test.meanAT-Mean active threads:活跃线程数
  • test.startedT-Started threads:启动线程数
  • test.endedT-Finished threads:结束线程数

响应时间指标

  • .ok.count:采样器的成功响应数
  • .h.count:每秒点击数
  • .ok.min:采样器成功最短响应时间
  • .ok.max:采样器成功最长响应时间
  • .ok.avg:采样器成功平均响应时间
  • .ok.pct:采样器成功响应百分比
  • .ko.count:采样器失败响应数
  • .ko.min:采样器失败的响应最短时间
  • .ko.max:采样称失败最长响应时间
  • .ko.avg:采样器失败平均响应时间
  • .ko.pct:采样器失败响应百分比
  • .a.count:采样器响应数(ok.count和ko.count的总和)
  • .a.min:采样器最小响应时间(ok.count和ko.count的最小值)
  • .a.max:采样器最大响应时间(ok.count和ko.count的最大值)
  • .a.avg:采样器平均响应时间(ok.count和ko.count的平均值)
  • .a.pct:采样器响应百分比(根据和失败样本的总数计算)

Backend Listener的默认百分位设置为“90;95;99”,即百分位数为90%,95%和99%。

Graphite使用点(“.”)去拆分的元素,这可能与十进制百分位值混淆。JMeter转换任何此类值,用下划线(“ - ”)替换点(“.”)。例如,“99.9 ”变为“99_9 ”。

默认情况下,JMeter发送在samplerName“all”下累计的所有采样器的指标。如果配置了 BackendListenerSamplersList,那么JMeter还会发送匹配样本名称的指标,前提是配置 summaryOnly=true

3、JMeter参数文件设置

创建线程组:
在这里插入图片描述
选择监听器backend Listener

  1. 将“summanyOnly”修改成False,
  2. 将“userRegexpForSamplersList”修改成True,
  3. 并且要设置“samplersList”的值,“samplersList”是可以支持正则表达式的,“samplersList”的设置要与请求对应,否则找不到该请求。

【注意】如果要监控<请求名称>的话,Jmeter上的“Backend Listener”修改如下参数

如图:
在这里插入图片描述

配置项 配置内容
influxdbMetricsSender org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender
influxdbUrl http://192.168.7.129:8086/write?db=jmeter
application Jmeter_test
measurement jmeter
summaryOnly FALSE
samplersRegex ^[^#_].*
percentiles 50;90;95;99
testTitle test
eventTags

简单介绍:

名称描述

  • jmeter.all.h.count所有请求的TPS
  • jmeter.<请求名称>.h.count对应<请求名称>的TPS
  • jmeter.all.ok.pct9999%的请求响应时间
  • jmeter.<请求名称>.ok.pct99对应<请求名称>99%的请求响应时间
  • jmeter.all.test.startedT线程数

四、运行效果

验证结果:
在这里插入图片描述

实战数据显示:
在这里插入图片描述
实战数据:
在这里插入图片描述

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。