一.Telegraf+InfluxDB+Grafana 性能测试监控
1.InfluxDB
(1)下载:InfluxDB
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.9.x86_64.rpm
yum localinstall influxdb-1.7.9.x86_64.rpm
(2)启动 influxd 数据库:
systemctl t start influxd
(3)创建Influxdb 数据库
influx
create e database telegraf
show databases
exit
(4)默认端口是 8086
2.Telegraf
(1)下载:Telegraf
wget http://get.influxdb.org/telegraf/telegraf-0.12.1-1.x86_64.rpm
yum localinstall telegraf-0.12.1-1.x86_64.rpm
(2)配置:Telegraf
输入 /urls
输入 i
urls = [“http://localhost:8086”] #infulxdb 地址
database = “telegraf” # # 数据库
retention_policy = " " 必须设置为空
输入 :wq
(3)启动:Telegraf
启动 Telegraf
systemctl restart telegraf
检查 f Telegraf 配置
service telegraf status
3.Grafana
(1)下载:Grafana
wget https://dl.grafana.com/oss/release/grafana-6.5.1-1.x86_64.rpm
安装 grafana
urw-fonts is needed by grafana -xxxx ,则需要安装字体。即:
yum l install urw-fonts
yum l install initscripts g fontconfig -y
rpm -ivh grafana-6.5.1-1.x86_64.rpm
(2)启动:Grafana
systemctl start grafana-server
systemctl status grafana-server
(3) 设置开机启动
Systemctl enable grafana-server.service 可以不用
(4) 浏览器访问
http://localhost:3000
4.总结
(1)启动/ 停止/ 状态
systemctl start influxd
systemctl start telegraf
systemctl start grafana-server
停止
systemctl stop influxd
systemctl stop telegraf
systemctl stop grafana-server
状态
systemctl status influxd
systemctl status telegraf
systemctl status grafana-server
(2)安装 grafana 报
urw-fonts is d needed by grafana -xxxx ,则需要安装字体。即:
Yum install urw-fonts
(3)确认数据是否已采集
输入: influx
use telegraf
select * from cpu
如果查询有结果,则表示采集没问题。
注意:从一台电脑访问服务器时,需要关闭防火墙,才能不受端口限制。但是生产环境中,关闭防火墙是一种非常危险的事情,这时可以仅开启指定的端口。
(4)常用命令如下:
firewall-cmd --state ## 查看防火墙运行状态,是否是 running
firewall-cmd --reload ## 重新载入配置 , 比如添加规则之后 , 需要执
行此命令
firewall-cmd --list-ports ## 列出开放的端口
firewall-cmd --add-port=3000/tcp --permanent ## 永久添加3000端口
systemctl stop firewalld ## 关闭防火墙
systemctl start firewalld ## 开启防火墙
systemctl status firewalld ## 查看防火墙状态
systemctl restart firewalld ## 重启防火墙
systemctl disable firewalld ##开机关闭防火墙,即永久关闭
二.Jmeter+Grafana+InfluxDB 性能测试监控
InfluxDB 存储性能测试数据
Granfana 展示监控性能测试数据
Jmeter 进行测试,将测试数据上传至服务器
1.InfluxDB
(1)新建 InfluxDB 下载源
cat << EOF | tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
(2)使用 yum 下载 InfluxDB
yum install -y influxdb
(3)修改 InfluxDB 的配置,主要配置 jmeter 存储的数据库与端口号,还有需要
将 UI 端口开放
[[email protected] ~]# vi /etc/influxdb/influxdb.conf
#找到 graphite 并且修改它的库与端口
[[graphite]]
enabled = true
database = “jmeter”
bind-address = “:2003”
protocol = “tcp”
consistency-level = “one”
#找到 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
(4)启动 InfluxDB
[[email protected] ~]# /etc/init.d/influxdb restart
Stopping influxdb…
influxdb process was stopped [ OK ]
Starting influxdb…
influxdb process was started [ OK ]
(5)打开浏览器,访问虚拟机 IP“http://192.168.245.131:8083”
如果启动成功应该会 InfluxDB 的 web ui 界面。查看有没有 jmeter 库,没有就新建一个。
在输入框中,输入如下,来新建库:
CREATE DATABASE “jmeter”
2.Grafana
(1)使用 yum 下载 Grafana 并且安装
Yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.1-1.x86_64.rpm
(2)启动 Grafana
[[email protected] ~]# /etc/init.d/grafana-server restart
OKopping Grafana Server … [ OK ]
Starting Grafana Server: … OK
(3)打开浏览器,访问虚拟机 IP“http://192.168.245.131:3000”
(4)输入用户名,密码登录系统。用户名与密码都是"admin"
(5)添加需要展示数据的数据库
(6)添加 InfluxDB 数据库配置。
输入帐号密码“admin / admin”,点击 Test & Save 提示“Success”说明成功了
【注意】URL 的端口是 8086,而刚才配置的 8083 是 UI 的端口。
- 8083 端口是 InfluxDB 的 UI 界面展示的端口
- 8086 端口是 Grafana 用来从数据库取数据的端口
- 2003 端口则是刚刚设置的,Jmeter 往数据库发数据的端口
3.Jmeter
(1)jmeter 中,添加“监听器 -> Backend Listener”
(2)配置“Backend Listener”,主要配置 Host,如下图
(3)添加一个 Java 请求,方便测试。
(4)添加“监听器 -> 查看结果树” 运行一下 Jmeter,主要看 Java 请求是否发
送出去了
(5)没有什么问题,这个时候访问 InfluxDB“http://192.168.245.131:8083”
在输入框中输入如下,点击回车:
#可以使用这个,这个是查询所有表,显示 1 条记录
select * from /.*/ limit 1
#也可以使用这个,这个是显示所有表
show measurements
点击回车后,就应该有数据了,会出现下图:
这个时候再回来配置 Grafana,来展示这些数据
(6) 添加一个展示项目,点击“Home -> New”
(7)添加一个图表,点击旁边的绿点“Add Panel -> Graph”
(8)8、配置图表,配置好了,就能看到图了。如果看不到图,请用 Jmeter 多发几次 Java 请求。下图中选择,监控的选项,可以在 Jmeter 的官网上查看到对应的解释。
4.常用的几种监控
名称 描述
jmeter.all.h.count 所有请求的 TPS
jmeter.<请求名称>.h.count 对应<请求名称>的 TPS
jmeter.all.ok.pct99 99%的请求响应时间
jmeter.<请求名称>.ok.pct99 对应<请求名称>99%的请求响应时间
jmeter.all.test.startedT 线程数
5.常用的几种监控
【注意】如果要监控<请求名称>的话,Jmeter 上的“Backend Listener”修改如下参数
(1) 将“summanyOnly”修改成 False,
(2) 将“userRegexpForSamplersList”修改成 True,
(3) 并且要设置“samplersList”的值,“samplersList”是可以支持正则表达式的,
“samplersList”的设置要与请求对应,否则找不到该请求。如图
设置好了,运行一下,在 Grafana 里面,就可以看到自己的请求了。
如果想要了解这些监控都代表什么意思,可以访问 Jmeter 的官网地址去查看阅读
“http://jmeter.apache.org/usermanual/realtime-results.html”