通过grafana监控web展示,prometheus收集exporter提供的应用资源监控信息。通过influxdbs收集jmeter性能测试脚本结果信息。对性能测试及应用环境监控的效果。
一、监测服务部署
1.1 yum源及基础环境
# yum更新到最新
yum update
# 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
# yum源为阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.2 docker安装
# 安装docker
yum install docker-ce
# 启动docker
systemctl start docker
# 查看docker版本
docker -v
1.3 influxdb安装
# 下载influxdb
docker pull influxdb
# 创建名为influxdb的容器并运行
docker run -d --name influxdb -p 8086:8086 -p 8083:8083 influxdb
influxdb初始化并申请token
通过网页打开http://ip:8086 ip是安装docker的服务器地址
进入后创建Token并复制这个Token
influxdb命令行
# 进入容器内容
docker exec -it influxdb /bin/bash
# influx命令行配置
influx config create --active -n config-name -u http://10.80.31.170:8086 -t rTxMYOEV97Aa4IuYmEokQs3Dvm0-bSgBPEVgIYfrEHVelOpQnOxpXV2tDHdL8VTtoCMVy2MVcY2VubOu742vuQ== -o admin
# 进入命令行操作
influx v1 shell
influxdb中库表字段和mysql数据中不同,对比如下:
ID |
influxdb |
mysql |
备注 |
1 |
bucket |
database |
库 |
2 |
measurement |
table |
表 |
3 |
point |
column |
数据列 |
创建数据库jmeter
1.4 Grafana安装
# 下载镜像
docker pull grafana/grafana
# 创建容器并启动
docker run -d --name grafana -p 3000:3000 grafana/grafana
浏览器访问验证 http://IP:13000 ip安装grafana的服务器
访问后需要登录账号密码,默认都是admin,登录后配置influxdb数据源
进入grafana官网下载对应模板,比如influxdb2的模板可以使用下面
https://grafana.com/grafana/dashboards/13644-jmeter-load-test-org-md-jmeter-influxdb2-visualizer-influxdb-v2-0-flux/
导入模板文件
1.5 prometheus监控系统安装
docker pull prom/prometheus
mkdir /usr/local/prometheus
cd /usr/local/prometheus
mkdir data
cd data
vim prometheus.yml
prometheus.yml配置内容如下:
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
static_configs:
targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
targets: ['localhost:9090']
运行docker
docker run -d -p 9090:9090 --name prom -v /usr/local/prometheus/data:/data prom/prometheus --config.file=/data/prometheus.yml
访问http://ip:9090 ip软件安装服务器地址
二、压力机部署(Jmeter安装)
2.1 安装Jmeter
压力机主要部署的是Jmeter压力测试工具,访问Jmeter官网 https://jmeter.apache.org/
Jmeter需要jdk环境,所以压力机上还要安装JDK。
设置环境变量 %JMETER_HOME%libextApacheJMeter_core.jar; %JMETER_HOME%libjorphan.jar;
在取样器http请求下增加一个查看结果树的监听器
2.2 集成influxDB + Jmeter
在Jmeter中添加后端监听器并进行配置
配置好再运行压测,在influxdb中jmeter库下很自动创建表字段和填充数据
2.3 集成influxdb和grafana到jmeter
Jmeter包下载解压缩即可。安装Grafana中模板中提到的插件
https://github.com/mderevyankoaqa/jmeter-influxdb2-listener-plugin/releases
拷贝插件内容到Jmeter安装目录下的lib/ext下。
设置jmeter的后端监听器并配置
运行测试脚本,查看grafana统计图表,就发现有数据了
三、资源服务安装
3.1 应用服务器
3.1.1 安装node_exporter
//github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz :
tar zxvf node_exporter-1.5.0.linux-amd64.tar.gz
mv node_exporter-1.5.0.linux-amd64 /usr/local/node_exporter
cd /usr/local/node_exporter/
# 启动服务
nohup ./node_exporter &
http://ip:9100 ip应用服务器IP地址,默认端口9100
3.1.2 集成prometheus + node_exporter
修改prometheus.yml配置文件,增加下面内容
# 脱敏系统服务器
- job_name: 'tmd'
static_configs:
- targets: ['10.80.31.179:9100'] #安装node_exporter的主机IP
重启prometheus容器
docker restart prom
查看集成结果
3.1.3 集成grafana和prometheus
增加prometheus的数据源
导入模板
编辑导入模板
效果查看
3.2 Mysql数据库
3.2.1 mysqld-exporter安装
docker pull prom/mysqld-exporter
docker run -d --name mysqld_exporter -p 9104:9104 -e DATA_SOURCE_NAME="root:123456@(10.80.31.102:3306)/" prom/mysqld-exporter
查看启动情况
http://ip:9104/metrics IP安装mysqld-exporter的机器
3.2.2 集成prometheus
prometheus.yml文件修改内容如下:
job_name: mysqld
static_configs:
targets: ['10.80.31.170:9104']
labels:
instance: mysqld
启动服务器
docker restart prom
3.2.3 集成grafana+prometheus+ mysqld-exporter
导入模板
查看效果
原文始发于微信公众号(数据安全治理技术):基于grafana+influxdb+prometheus+jmeter性能监控环境的搭建
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论