性能测试阶段6之行业流行性能监控工具

http://t.csdn.cn/FcpOt

01流行性能监控工具

  1. Linux自带命令:Vmstat,Top
  2. 机器监控工具: Nmon
  • 物理机监控:Collectd + InfluxDB + Grafana
  1. Docker +Mysql+ Redis一体化监控∶Prometheus + Grafana(node exporter, mysqld_exporter,redis_exporter,自定义exporter,全家桶)
  2. 全链路Tracing 监控:Zipkin

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
系统级分析/调试工具
在这里插入图片描述
在这里插入图片描述

02InfluxDB + Grafana 搭建

2.1 ubuntu docker方式部署

2.1.1 influxDB部署
  1. 安装docker:先切到顶级目录
  • sudo su
  • cd ../..
    	# 关闭docker
    	sudo systemctl stop docker
    	
    	# 卸载旧版本:
    	sudo apt-get purge docker-ce
    	
    	# 安装新版本
    	sudo apt update
    	sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    	curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    	sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    	sudo apt-cache madison docker-ce
    
    	# 根据终端显示的版本选择一个
    	sudo apt install docker-ce=5:19.03.1~3-0~ubuntu-bionic
    	systemctl start docker
    	sudo systemctl start docker
    	sudo systemctl enable docker
    	sudo docker info
    	
    	# 安装nvidia-docker 看业务
    	sudo apt update 
    	sudo apt install nvidia-docker2
    
  1. 下载influxDB镜像:docker pull influxdb

  2. 启动influxDB容器:docker start container id

  3. 将新influxDB容器命名为jmeterdb,执行docker创建容器命docker run -d -p 8086:8086 -p 8083:8083 --name=jmeterdb influxdb

  4. 执行如下命令进入容器内部:docker exec -it jmeterdb bash

  5. 在容器内部创建jmeter数据库,用于收集JMeter发送的压测数据

  6. 执行influx命令进入命令台

  7. 执行类sql语句创建jmeter数据库:create database jmeter;

  8. 创建完jmeter数据库之后执行如下命令验证数据库已经创建成功:show databases;

  9. docker基础命令

    	列出已下载docker镜像: 			|							docker images
    	列出运行中的docker容器: 			|							docker ps
    	列出运行中+已停止docker容器:		|							docker ps -a
    	停止容器:						|							docker stop [docker container id]
    	启动容器:						|							docker start [docker container id]
    	删除容器: 						|							docker rm [docker container id]
    

在这里插入图片描述

2.1.2 Grafana 配置
  1. 部署方法:Docker 部署
  2. 下载镜像: docker pull grafana/grafana
  3. 启动镜像: docker run -d -p 3000:3000 --name=jmeterGraf grafana/grafana
  4. 访问Grafana的控制台链接,验证它已经运行正常
  5. 默认用户名/密码:admin / admin,登录之后请跳过修改密码
  6. 在Grafana中添加数据源
  7. 选择Add data source
  8. 找到InfluxDB
  9. 单击选择该DB
  10. 配置InfluxDB数据源
    - 输入URL : http://[hostname or IP]:8086
    - Access: browser
    - Database:jmeter
    - 其余参数保持默认
  11. 在Grafana内导入JMeter Dashboard
  12. 输入Home Dashboard页面,选择Import
  13. 网上下载jmeter_dashboard.json文件
  14. 将json文本复制/粘贴到 paste JSON文本框中
  15. 单击Load按钮导入
  16. DB name中选择InfluxDB
  17. 单击Import 按钮完成 Dashboard 导入
  18. 打开导入的JMeter Dashboard查看结果

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

2.2 centos docker方式部署

2.2.1 安装docker
2.2.2 influxDB部署
  • InfluxDB是一个用Go语言开发的开源分布式时序数据库,特别适合处理和分析资源监控数据,用于存储压测数据

1. 下载镜像:docker pull influxdb:1.7.10
在这里插入图片描述

2. 新建容器网络:docker network create grafana
在这里插入图片描述

3. 运行容器:

 docker run -d --name=influxdb --network grafana -p 8086:8086 -v ${PWD}/influxdb/:/var/lib/influxdb/ influxdb:1.7.10

在这里插入图片描述

4. 创建数据库

  • 方式1:
    curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE jmeter"
    
  • 方式2:
    • 进入容器:docker exec -it influxdb influx
    • 执行语句:create database jmeter;
      在这里插入图片描述

5. 创建数据库

  • show databases;
  • use jmeter;
  • show measurements;
  • select * from jmeter limit 3;
2.2.2 Grafana 配置
  • 官网:https://hub.docker.com/r/grafana/grafana
  • 度量分析与可视化图标展示工具,可以支持不用种类的数据源,用于将存储于InfluxDB中的数据以图表的形式展示出来

1. 下载Grafana镜像:docker pull grafana/grafana:6.6.2
在这里插入图片描述
2. 运行容器:

docker run -d --name grafana --network grafana -p 3000:3000 grafana/grafana:6.6.2

在这里插入图片描述

  • 查看容器ip:
    docker exec -it influxdb sh
    cat /etc/hosts
    
    在这里插入图片描述
    在这里插入图片描述

3. 默认登陆账号: admin,密码: admin。
在这里插入图片描述在这里插入图片描述
4. 配置数据源

URL: http://influxdb:8086
Database: jmeter
Min time interval: 5

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5. 导入dashboard

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

2.3 jmeter配置

在JMeter中添加Backend Listener组件,用于收集数据并发送给influxdb

  • Backend Listener implementation中选择
    InfluxdbBackendListenerClient(注意:必须使用jmeter 5.0以上版本,否则需要单独装插件才可以看到这个组件)
  • influxdbURL中将实际的influxdb hostname填写进去
  • 在application中填写应用名称
  • testTitle中填写测试标题
  • 其余配置保持不变
  • 运行JMeter,然后在influxdb中检验是否已经能够接受到数据
  • 在influxdb命令台中使用查询语句,检查是否已经能够收到数据
    在这里插入图片描述
    在这里插入图片描述

2.4 执行jmeter脚本

  1. 方式1:gui运行
    在这里插入图片描述
  2. 命令行方式运行
    jmeter.sh -n -t /home/centos7/Desktop/jmeter_scripts/HTTP请求.jmx
    在这里插入图片描述

2.5 报告查看

1. 查看结果树
在这里插入图片描述
2. 聚合报告
在这里插入图片描述
2. grafana报告
在这里插入图片描述

03Prometheus + Grafana

3.1 安装java和配置环境变量

参考链接1:https://www.jb51.net/article/184780.htm
参考链接2:https://blog.csdn.net/slw213106/article/details/121854308

3.1.1 查看CentOS自带JDK是否已安装
  • yum list installed |grep java
    在这里插入图片描述
3.1.2 卸载CentOS系统自带Java环境
  • 卸载JDK相关文件输入:yum -y remove java-1.8.0-openjdk*
    在这里插入图片描述
  • 卸载tzdata-java输入:yum -y remove tzdata-java.noarch
    在这里插入图片描述
3.1.3 yum方式安装jdk
  • 查看yum库中的Java安装包:yum -y list java*
    在这里插入图片描述

  • 将java-1.8.0的所有相关Java程序都安装上:yum -y install java-1.8.0-openjdk*
    在这里插入图片描述
    在这里插入图片描述

3.1.4 查看刚安装的Java版本信息
  • java -version
  • javac -version
    在这里插入图片描述
3.1.5 查看java安装路径
[root@centos7 centos7]# which java
/usr/bin/java
[root@centos7 centos7]# ls -lrt /usr/bin/java
lrwxrwxrwx. 1 root root 22 Oct 23 23:26 /usr/bin/java -> /etc/alternatives/java
[root@centos7 centos7]# ls -lrt /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 Oct 23 23:26 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el7_9.x86_64/jre/bin/java

在这里插入图片描述

3.1.6 配置环境变量(可跳过)
  • ls /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el7_9.x86_64/
    在这里插入图片描述
  • vi /etc/profile
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el7_9.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

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

3.2 安装docker

1. 查看是否已安装docker:yum list installed |grep docker
在这里插入图片描述

2. 设置 stable 镜像仓库

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

在这里插入图片描述

3. 更新 yum 软件包索引

yum makecache fast

在这里插入图片描述

4. 列出docker ce的版本

yum list docker-ce.x86_64  --showduplicates | sort -r

在这里插入图片描述

4. 安装docker ce版本(默认最新版本)

yum install docker-ce

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

5. 启动docker

systemctl start docker
docker info # 查看镜像信息

在这里插入图片描述

3.3 配置node_exporter

3.3.1 下载:
wget -c https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
3.3.2 解压:
tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 /usr/local/
/usr/local/node_exporter-0.18.1.linux-amd64/node_exporter --help

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

3.3.3 启动
/usr/local/node_exporter-0.18.1.linux-amd64/node_exporter &

在这里插入图片描述

3.3.4 查看启动进程和端口号
  • ps -ef |grep node_exporter
  • netstat -naop |grep 9100 或 netstat -lnp |grep 9100
  • kiss -9 pid # 杀进程(第二列值)
    在这里插入图片描述
    在这里插入图片描述

3.4 安装和配置promethus

3.4.1 下载
wget -c https://github.com/prometheus/prometheus/releases/download/v2.15.1/prometheus-2.15.1.linux-amd64.tar.gz
3.4.2 解压
 tar zxvf prometheus-2.15.1.linux-amd64.tar.gz
mv prometheus-2.15.1.linux-amd64 /usr/local/

在这里插入图片描述

3.4.3 修改prometheus.yml配置
  • vi /usr/local/prometheus-2.15.1.linux-amd64/prometheus.yml
  - job_name: 'centos7'
    static_configs:
    - targets: ['192.168.88.133:9100']

在这里插入图片描述

3.4.4 启动prometheus
  • 进入prometheus目录:
cd /usr/local/prometheus-2.15.1.linux-amd64/
  • 启动:
./prometheus --config.file="prometheus.yml" &

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

3.4.6 prometheus启动常见报错

1. 报错信息:“opening storage failed: lock DB directory: resource temporarily unavailable”

  • 解决方案:直接删除lock目录
    rm -rf /data/lock
    在这里插入图片描述
    在这里插入图片描述

2. 报错信息:“error starting web server: listen tcp 0.0.0.0:9090: bind: address already in use”
在这里插入图片描述

  • 解决方案:
    • 安装lsof:yum install lsof -y
    • 获取9090端口pid:lsof -i:9090
    • 强制杀死进程:kill -9 pid
      在这里插入图片描述

3.5 安装&配置grafana

3.5.1 安装grafana
1. docker 方式安装
  • 拉取镜像并启动容器

    docker run -d --name=grafana -p 3000:3000 grafana/grafana
    

    在这里插入图片描述

  • 访问:http://192.168.88.133:3000/login

    • 初始账号密码:admin/admin
      在这里插入图片描述
2. 本地安装
# yum localinstall grafana-6.5.2-1.x86_64.rpm
# /sbin/chkconfig --add grafana-server        # 配置开机启动
# systemctl daemon-reload						# 重载所有修改过的配置文件
# systemctl start grafana-server				     # 启动grafana-server
# systemctl status grafana-server				# 查看状态
# sudo systemctl enable grafana-server.service	# 设置开机启动
# rpm -e --nodeps # 删除grafana
3.5.2 配置grafana数据源

1. 点击Add data source
在这里插入图片描述

2. 配置数据源
在这里插入图片描述
在这里插入图片描述

3.5.3 导入dashboard
  • ID:11074/8919
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.6 安装redis

3.6.1 docker方式(本文采用此方式)
docker search redis
docker run -d --name redis -p 6379:6379 redis # 拉取镜像并启动容器
docer exec -it redis redis-cli # 进入容器并连接

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

3.6.2 源码包方式

1. 下载

wget -c http://download.redis.io/releases/redis-5.0.7.tar.gz

2. 解压

tar zxvf redis-5.0.7.tar.gz

3. 编译

cd redis-5.0.7
make

3.7 安装nginx

# docker search nginx
# docker pull nginx
# docker run -d -p 80:80 --name d7group-nginx -v /usr/local/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/dockerfile/nginx/logs:/var/log/nginx:rw f7bb5701a33c

安装centos image

docker pull centos:7.2.1511

在这里插入图片描述

3.8 安装mysql

3.8.1 下载镜像

docker pull mysql
在这里插入图片描述

3.8.2 启动镜像
docker run  --name mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf/conf.d:/etc/mysql/conf.d \
-p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

在这里插入图片描述

3.8.3 用户授权

1. 登录已启动的MySQL容器
docker exec -it mysql bash
在这里插入图片描述
2. 使用启动命令中-e MYSQL_ROOT_PASSWORD设置的密码,登录MySQL
mysql -uroot -p
在这里插入图片描述

3. 执行权限命令

  • 方案1:
    create user root@'192.168.88.133' identified by '123456';
    grant all privileges on databas_name.* to root@'192.168.88.133';
    ALTER USER 'root'@'192.168.88.133' IDENTIFIED WITH mysql_native_password BY '123456';
    
  • 方案2:
    alter user 'root'@'%' identified by '123456'; # 修改root用户密码
    alter user 'root'@'%' identified with mysql_native_password by '123456'; # 创建用户
    grant all on *.* to 'root'@'%';  # 并给root用户分配权限
    flush privileges; # 配置生效
    

在这里插入图片描述

3.8.4 连接校验

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

3.9 安装tomcat

1. 解压:tar zxvf tomcat.tar.gz
在这里插入图片描述
在这里插入图片描述
2. 编辑application.yaml文件修改mysql和redis

  • vi vi /usr/local/tomcat/blog/ROOT/WEB-INF/classes/application.yaml
    在这里插入图片描述
    在这里插入图片描述

3. 修改dockerfile文件

  • vi /usr/local/tomcat/tomcat8/Dockerfile
    在这里插入图片描述

4. 构建tomcat imagess
在这里插入图片描述
5. 启动容器

docker run -d -p 9004:8080 -p 9995:9995 --name 7dgroup-tomcat -v /usr/local/tomcat/blog/ROOT/:/apache-tomcat-8.5.9/webapps/ROOT/ -v /usr/local/tomcat/blog/logs:/apache-tomcat-8.5.9/logs:rw -e CATALINA_OPTS="-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=9995 
-Djava.rmi.server.hostname=192.168.88.135 -Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.rmi.port=9995" 5bd17a80d903

在这里插入图片描述
5. 进入容器
docker exce -it 58221ba31525 /bin/bash
在这里插入图片描述

3.10 创建influxdb

3.10.1 docker方式

1. 拉取镜像
docker pull influxdb
在这里插入图片描述
2. 启动容器
docker run -d --name=influxdb -p 8086:8086 -v /usr/local/influxdb/:/var/lib/influxdb/ influxdb:1.8.6
在这里插入图片描述
3. 进入容器
docker exec -it influxdb influx
在这里插入图片描述
4.
创建数据库:create database jmeter;
在这里插入图片描述

3.10.2 RPM方式
# yum localinstall influxdb-1.7.9.x86_64.rpm
# systemctl start influxdb				     #启动grafana-server
# systemctl status influxdb				#查看状态

3.11 安装jmeter&配置数据源

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值