一,cpu、mem、net、io性能数据收集
1,Prometheus搭建
-
Prometheus是一种由go语言(golang)开发的开源监控、报警系统
-
部署方法: Docker 部署
-
准备prometheus.yml配置文件
-
下载docker 镜像: docker pull prom/prometheus
-
启动docker容器: docker run -d --name prometheus -p 9090:9090 -v
:/etc/prometheus prom/prometheus -
访问验证 http://:9090/targets
2,部署node-exporter工具(收集cpu、mem、net、io性能数据)
下载安装
- node-exporter是一款用于采集系统指标的工具,由Prometheus官方提供
- 部署方法:docker 部署
- 拉取镜像: docker pull quay.io/prometheus/node-exporter
- 启动脚本:
docker run -d --name node_exporter -p 9100:9100 \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
quay.io/prometheus/node-exporter
配置 prometheus.yml
-
node-exporter 容器启动之后,配置prometheus.yml,将node-exporter的实际位置设定到prometheus.yml配置文件中
-
配置完成后,重启prometheus系统,检查node-exporter targets数据是否显示正常
3,将Prometheus作为数据源添加到Grafana中
4,在Grafana中添加node exporter for prometheus dashboard
5,检查系统监控面板展示内容
二,实时压测结果收集
1,压测监控平台组成
- JMeter:压测工具, 产生压测数据
- InfluxDB: 开源时序数据库, 特别适合用于处理和分析资源监控数据,用于存储压测数据
- Grafana:度量分析与可视化图标展示工具,可以支持不同种类的数据源,用于将存储于InfluxDB中的数据以图表的形式展示出来
2,监控平台部署 - influxDB
- 部署方法: Docker 部署
事先准备:
- 安装Docker
- 下载influxDB镜像: docker pull influxdb:1.8
启动 influxDB 容器
- 将新 influxDB 容器命名为 jmeterdb, 执行docker创建容器命令:
- docker run -d -p 8086:8086 -p 8083:8083 --name=jmeterdb influxdb:1.8
- 执行如下命令进入容器内部 : docker exec –it jmeterdb bash
在容器内部创建jmeter数据库,用于收集JMeter发送的压测数据
- 执行 influx命令进入命令台
- 执行类sql语句 创建jmeter数据库:create database jmeter;
- 创建完jmeter数据库之后执行如下命令验证数据库已经创建成功: show databases;
3,监控平台部署 - JMeter
在JMeter中添加 Backend Listener 组件,用于收集数据并发送给influxdb
- 在Backend Listener implementation 中选择 InfluxdbBackendListenerClient (注意:必须使用jmeter 5.0以上版本,否则需要单独装插件才可以看到这个组件)
- 在influxdbURL中将实际的influxdb hostname填写进去
- application中填写 baidu (根据项目自定义)
- 在testTitle中填写 Baidu Testing (根据项目自定义)
- percentiles 中填写 50;90;95;99(默认是90,95,99,也可以自行添加)
- 将 summaryOnly 设置为false (为true则只会把汇总数据发送给fluxDB)
- 其余配置保持不变
运行JMeter , 然后在 influxdb中检验是否已经能够接受到数据
- 在influxdb 命令台中使用查询语句,检查是否已经能够收到数据
4,监控平台部署 -Grafana
安装部署
-
部署方法: Docker 部署
-
下载镜像: docker pull grafana/grafana
-
启动镜像: docker run -d -p 3000:3000 --name= -v :/var/lib/grafana grafana/grafana
-
访问 Grafana 的控制台链接, http://localhost:3000/ 验证它已经运行正常
-
默认用户名/密码:admin / admin,登录之后请跳过修改密码
在Grafana中添加数据源
- 选择 Add data source
- 找到 InfluxDB,单击选择该DB
配置InfluxDB 数据源
-
输入 URL : http://[hostname or IP]:8086 (这里填写influxDB所在服务器ip地址)
-
Access : browser
-
Database : jmeter
-
其余参数保持默认值
-
单击 Save & Test 按钮,确认返回消息提示正确确认信息
在Grafana 内导入JMeter Dashboard
-
进入Home Dashboard 页面,选择Import
-
打开事先准备好的URL :https://grafana.com/grafana/dashboards/4026
-
单击Load按钮导入
-
DB name 中选择 InfluxDB
- 单击 Import 按钮完成 Dashboard 导入
- 单击 Import 按钮完成 Dashboard 导入
-
打开刚刚导入的JMeter Dashboard 查看结果