性能监控

性能监控

一、ServerAgent

1、性能监控是监测性能测试过程中,服务器资源使用情况

2、ServerAgent监控范围:linux服务器、windows服务器

  2.1 一般用于监控服务器的硬件资源使用情况

  2.2 serveragent的服务,可以使用tcp、udp两种方式来传递监控数据

    2.2.1 两种协议的端口:默认为 4444

3、使用方法

  3.1 上传ServerAgent到被测服务器

  3.2 unzip ServerAgent-2.2.3.zip解压缩,如果没有安装,则执行命令yum install unzip -y安装解压插件 ---》cd ServerAgent-2.2.3 ----》./startAgent.sh启动

  3.3 看网络是否联通:本地cmd----》输入telnet ipaddress 4444

  3.4 在jmeter的图像界面中添加 监听器> PerfMon Metrics Collector

注意:当你想监控 不同的硬件资源使用情况时,请使用多个监听器,不要合并在一个监听器里面。

4、自定义端口:4444这个端口,在一些云服务器中,是不被允许开放,所以我们需要启动服务时,指定端口,修改端口后,jmeter中新建监听器时端口也要跟着变化

  4.1 ./startAgent.sh --tcp-port 自定义端口 --udp-port 0

    4.1.1 --tcp-port 端口, 自己指定一个tcp协议的端口,端口范围 1024~65535 (一般用四位数的端口)

    4.1.2 --udp-port 0 不开放端口服务,不使用upd数据传输方式

 

二、nmon

1、简介:nmon 本身是一个个人用于监控linux系统资源使用情况的软件。nmon只能监控linux机器

2、nmon工具,本身与jmeter没有强关联

3、工具使用:

  3.1 获取linux系统的类型:centos、Ubuntu

    3.1.1 centos类型服务器输入命令: cat /etc/redhat-release

    3.1.2 其他类型:cat /etc/os-release

  3.2 获取版本后下载对应的nmon版本:Download nmon for Linux from SourceForge.net

  3.3 下载nmon放到被监控的机器上,解压获取帮助:tar -xzvf nmon16m_helpsystems.tar.gz 

 

  3.4 nmon的使用有三种模式

    3.4.1 On-screen Stats:实时屏幕交互模式nmon_x86_64_centos7

    3.4.2 Data Collection: 数据收集模式nmon_x86_64_centos7 -f [-s ] [-c ] [-t|-T] ,中括号中的数据可传可不传

    3.4.3 Capacity Plan: 定时计划模式nmon_x86_64_centos7 -x

  3.5 实时屏幕交互模式

    3.5.1 默认2s秒钟刷新异常数据

    3.5.2 快捷键: cmdn分别为CPU,内存,磁盘,网络

    3.5.3 实时屏幕交互模式,可以直接看到服务器硬件资源使用情况,但是,这个过程数据不能保存

 

 

 

 

   3.6 数据收集模式

    3.6.1 -f 参数 会把数据保存到一个.nmon结尾的csv文件中:-f 默认时候,-s300 -c288;-f 如果后面没有-s -c设置的话,默认会执行24个小时

    3.6.2 -s 间隔时间;-c 总共收集的次数;如果想自定义执行时长:nmon_x86_64_centos7 -f -s3 -c80

    3.6.3 写入一个 hostname_yyMMdd_hhmm.nmon格式的文件 ---  待测试结束之后,下载nmon文件  ---  下载Nmon-Analyser(解压,有一个xlsm文件,这是一个带有宏的文件,使用微软office打开,不能用wps打开(wps不支持宏))

    

 

   

  3.7 定时计划模式

    3.7.1 -x -ft -s 900 -c 96 每隔15分钟收集一次,总共收集96次,一天

    3.7.2 -X -ft -s 30 -c 120 每隔30s收集一次,总共收集120, 一小时

    3.7.3 -z 类似-x 但是,它保存文件路径/var/perf/tmp

 

三、influxdb与jmeter集成

1、简介:influxdb 是一个时序数据库,根据时间顺序来存储数据,jmeter可以直接把数据存入influxdb数据库,在测试过程中,可以一边测试,一边把测试数据存入 influxdb数据库

2、版本:influxdb目前有两个大版本,1.x版本,2.x版本,这两个版本不兼容,jmeter常用版本,是可以直接与1.x版本的influxdb兼容使用,2.x版本,使用比较复杂。

3、grafana:一个监控平台的前端可以用来展示数据,可以使用不同的模板来让相同数据,展示成不同的效果。它获取的是后端数据库,而后端数据,一般使用的是时序数据库,所以grafana + influxdb1.x + jmeter解决方案组成一套监控平台

4、influxdb安装(1.7版本)与使用

  4.1 上传influxdb包到非测试服务器,执行yum install influxdb-1.7xx.rpm -y安装influxdb

  4.2 启动influxdb:执行命令influxd,服务端口:8086

  4.3 再开启另外一个终端,执行influx,Enter an InfluxQL query这样我们就可以开始执行 InfluxQL脚本

  4.4 show databases查看数据库  ---  创建库:create database jmeter 

  4.5 jmeter把测试数据写入库:添加后端监听器,实现选择:org apache imeter visualizers.backend influxdb.InfluxdbBackendListenerc,修改URL为监控服务器的IP地址

  4.6 时序数据库命令行模式中执行:“use jmeter;”:进入jmeter库;查看数据“select * from jmeter;”;exit 退出

5、grafana 与 influxdb集成

  5.1 简介:grafana是一个前端展示平台,获取后端数据库中的数据,通过不同的模板,把数据展示成为不同的效果。

    5.1.1 后端数据库,可以选择用不同的数据库,比如influxdb或者prometheus数据库

    5.1.2 模板:把数据展示成为不同的效果。

    5.1.3 grafana的服务端口: 3000 登录账户:admin   密码:admin

  5.2 安装命令:yum install grafana-7.4.3-1.x86_64.rpm -y

    5.2.1 安装后这个工具,就成为了系统工具,有一个系统命令 grafana-server

    5.2.2 启动命令1:systemctl start grafana-server   启动命令2:service grafana-server start

    5.2.3 停止命令:systemctl stop grafana-server

  5.3 启动后浏览器访问:http://grafana安装服务器IP:3000  登录名:admin  密码:admin

    5.3.1 加数据源点击: add your data source

    5.3.2 选择: influxdb

    5.3.3 信息编辑界面:

        5.3.3.1 name:自定义

        5.3.3.2 query language:选择InfluxQL;

        5.3.3.3 URL: http://you_influxdb_ip:8086

        5.3.3.4 Database: jmeter

        5.3.3.5 save & test 出现两个绿色提示,说明你填写的信息正确

  5.4 引入模板:页面点击左侧菜单“+”号 --> import

    5.4.1 访问 grafana.com 网站,下拉页面,点击dashboard模板,找到合适的模板,查看ID

    5.4.2 输入 5496 -> load (因为这个grafana.com网站是国外的,在国内某些地区因为网络原因,可能不能访问

    5.4.3 name: 只要不重复

    5.4.4 DB name: 选择我们上面配置influxdb数据源的名称 ---点击import

 

 

 注意事项:监控平台中没有数据(5496)

  1、看右侧的时间范围。 因为我们的服务器时间可能不一致,可能存在时差。因为时差导致界面看不到数据,把时间范围调整大于等于1天

  2、左侧顶部的配置信息,不正确,会出现没有数据情况。

 

6、grafana+prometheus

  6.1 prometheus普罗米修斯,也是一个时序数据库,只是存数据

  6.2 用prometheus有非常多的扩展exporter来收集监控

  6.3 prometheus不需要与jmeter集成,只需要用exporter来收集你响应监控的内容。

    6.3.1 如果你想要监控硬件资源使用情况,你就用 node_exporter 收集,然后,把数据存放到prometheus就可以

    6.3.2 如果你想要监控tomcat、nginx、mysql、redis、docker..... 都使用他们对于exporter来收集,然后,把数据存放到prometheus就可以

    6.3.3 你要收集什么, 那么对于exporter就放在你收集的对象的机器上。exporter放在被收集对象的服务一起

  6.4 搭建:prometheus+ grafana +xxxx_exporter

    6.4.1 prometheus:安装在非被测服务器

    6.4.2 grafana: 非被测服务器

    6.4.3 xxxx_exporter: 被测服务器

  6.5 prometheus的安装

    6.5.1 prometheus-2.20.1.linux-amd64.tar.gz包上传到非被测服务器

    6.5.2 解压

    6.5.3 prometheus.yml 配置文件

     

- job_name: 'node_export'
    static_configs:
    - targets: ['被测服务器地址:9100']

 

 

 

  6.6 node_exporter安装

    6.6.1 node_exporter-1.1.1.linux-amd64.tar.gz包 上传到 被测服务器上

    6.6.2 解压,进入解压后的文件夹

    6.6.3 ./node_exporter 端口 9100 nohup ./node_exporter &

  6.7 修改prometheus的配置文件

    6.7.1 prometheus.yml 配置文件

    6.7.2 启动prometheus,prometheus的端口 9090

  6.8 配置grafana 

添加数据源,prometheus
URL:http://prometheus_ip:9090
save & test
引入模板:import 12884
选择正确数据源

 

  

 

四、zabbix

1、简介:它是一个 企业级成熟的服务器监控平台,它自身就是一个监控平台。可以独立于我们性能测试,可以单独用它来监控应用服务器,通常运维人员也会拿它来监控服务器。

2、zabbix的组成:

  2.1 zabbix-server: 后端服务

    2.1.1 数据库:多种数据库可选,我们选用 MySQL

    2.1.2 front: 前台展示数据,也是使用模板

  2.2 zabbix-agent:收集器,放到被监控机器上,可以收集几乎所有数据

  2.3 proxy:网络代理

3、zabbix的安装

  3.1 登录网站:https://www.zabbix.com/cn/download 

  3.2 zabbix appliance 选择合适的ovf文件下载,导入虚拟机,也可以自己自己准备一个空centos7的系统

  3.3 zabbix packages:版本---5.0LTS;OS---centos;os版本---7;dbms---mysql;webserver---nginx;

  3.4 修改配置文件:vim /etc/selinux/config,修改后退出:ESC后输入:wq退出

    3.4.1 修改SELINUX=permissive

    3.4.2 centos的安全策略配置 默认配置,高安全度,做一些不够安全的事情时候,会进 行拦截。 改成 permissive 之后,降低安全度,只会记录我们的操作,不会拦截我们的操作。

  3.5 重启系统:reboot now

  3.6 执行安装命令:

  

1、Install Zabbix repository:
  (1)rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
  (2)yum clean all
2、
Install Zabbix server and agent:
  (1)获取mysql:wget https://dev.mysql.com/get/mysql80-community-release-el7- 5.noarch.rpm;rpm -Uvh mysql80-community-release-el7-5.noarch.rpm
  (2)修改文件使其可以安装5.x版本:vim /etc/yum.repos.d/mysql-community.repo 修改:[mysql57-community] enable=1 [mysql80-community] enable=0
  (3)安装mysql:yum install mysql-community-server -y
  (4)重启mysql:systemctl restart mysqld
  (3)yum install zabbix-server-mysql zabbix-agent


性能测试中,一定要有监控,不管你用哪个(ServerAgent、nmon、grafana+influxdb、 grafana+prometheus、 zabbix) 为什么? 因为,监控,才能有数据(性能测试数据、服务器资源使用情况数据、中间件的数据。)有这些数据,才能进行性能分析。

posted @ 2022-06-12 10:07  无名。。。  阅读(519)  评论(0编辑  收藏  举报