InfluxDB、Grafana、node_exporter、Prometheus搭建压测平台
我们的压测平台的架构图如下:
配置docker环境
1)yum 包更新到最新
sudo yum update
如果有提示,直接输入y,回车。
2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3)设置yum源为阿里云
配置yum源的代理,类似于maven镜像仓库,加速下载软件。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4)安装docker
sudo yum install docker-ce
# 启动
systemctl start docker
5)安装后查看docker版本
docker -v
安装InfluxDB
1)下载InfluxDB的镜像:
docker pull influxdb:1.8
2)启动InfluxDB的容器,并将端口 8083 和 8086 映射出来:
docker run -d --name influxdb -p 8086:8086 -p 8083:8083 influxdb:1.8
3)进入容器内部,创建名为jmeter的数据库:
进入 jmeter-influx 容器
docker exec -it influxdb /bin/bash
- 输入
influx
命令,即可进入 influx 操作界面 - 输入
create database jmeter
命令,创建名为 jmeter 的数据库 - 输入
show databases
命令,查看数据库创建成功
4)使用jmeter库, select 查看数据,这个时候是没有数据的:
- 输入
use jmeter
命令,应用刚才创建的数据库 - 输入
select * from jmeter
命令,查询库中有哪些数据
> use jmeter
> select * from jmeter
设置JMeter脚本后置监听器
添加后置监听器:
设置后端监听器
配置如下:
- influxdbUrl:需要改为自己influxdb的部署ip和映射端口,db后面跟的是刚才创建的数据库名称
- application:可根据需要自由定义,只是注意后面在 grafana 中选对即可
- measurement:表名,默认是 jmeter ,也可以自定义
- summaryOnly:选择true的话就只有总体的数据。false会记录总体数据,然后再将每个transaction都分别记录
- samplersRegex:样本正则表达式,将匹配的样本发送到数据库
- percentiles:响应时间的百分位P90、P95、P99
- testTitle:events表中的text字段的内容
- eventTags:任务标签,配合Grafana一起使用
运行测试
点击运行:
查看数据库中的数据:
表示配置成功。
安装Grafana
1)下载Grafana镜像:
docker pull grafana/grafana
2)启动Grafana容器:
启动Grafana容器,将3000端口映射出来
docker run -d --name grafana -p 3000:3000 grafana/grafana
3)验证部署成功
网页端访问http://安装grafana的ip:3000验证部署成功
默认账户密码:admin\admin
整合数据源
使用admin\admin登录
1)选择添加数据源
2)选择添加数据源
3)配置数据源
配置数据库,数据库名要和创建的数据库、Jmeter连接的数据库保持一致。
导入模板
寻找模板
进入Grafana官网https://grafana.com/
在首页拉到最下方:
搜索Jmeter相关的
我们使用如下两个模板:
- Apache JMeter Dashboard
- dashboad-ID:5496
- JMeter Dashboard(3.2 and up)
- dashboad-ID:3351
导入模板
输入模板id,并load
修改名字和数据源:
可以看到如下的界面
保存
安装node_exporter
# 下载 可以直接下载下来传到服务器
wget -c https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
# 解压
tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz -C /usr/local/sjdwz_test/
# 启动
cd /usr/local/sjdwz_test/node_exporter-0.18.1.linux-amd64
nohup ./node_exporter > node.log 2>&1 &
看到如下界面即可:
安装Prometheus
1)下载解压运行
# 下载 可以下载压缩包传到如武器
wget -c https://github.com/prometheus/prometheus/releases/download/v2.15.1/prometheus-2.15.1.linux-amd64.tar.gz
# 解压
tar zxvf prometheus-2.15.1.linux-amd64.tar.gz -C /usr/local/sjdwz_test/
cd /usr/local/sjdwz_test/prometheus-2.15.1.linux-amd64
# 运行
nohup ./prometheus > prometheus.log 2>&1 &
2)配置prometheus
在prometheus.yml中加入如下配置:
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'sjdwz-Linux'
static_configs:
- targets: ['192.168.225.206:9100']
3)测试Prometheus
重启Prometheus,测试是否安装配置成功
3)在Grafana中配置Prometheus的数据源:
保存即可。
4)Grafana导入Linux展示模板
导入Linux系统dashboard
- Node Exporter for Prometheus Dashboard EN 20201010
- dashboard-ID: 11074
- Node Exporter Dashboard
- dashboard-ID: 16098