1. serveragent:需要装在服务器上,它本身消耗的资源很小,支持window,linux
- 先将下载的serveragent.zip上传到服务器上(opt文件夹里面)
- 这里给大家提供链接:https://pan.baidu.com/s/1v0euJjon9zEBFWQZOj_GRQ
提取码:05u9 - 解压:
unzip ServerAgent-2.2.3.zip
(如果提示找不到unzip命令,是没有安装unzip,centos通过:yum install unzip -y
进行安装) - 安装后可以查看到解压的文件夹ServerAgent-2.2.3中存在startAgent.sh(在linux运行的启动文件),和startAgent.bat(在window下运行的启动文件),
./startAgent.sh
这个默认的启动命令的端口是4444,而在一些云服务器上如阿里云服务器4444端口是不开放的,所以在启动时需要手动指定端口
```
./startAgent.sh --tcp-port 8489 --udp-port 0
```
这里–udp-port 0:表示不使用udp传输数据。
运行起来后会看到日志信息的打印,这时我们crtl C会结束运行,如果要在后台运行,并将日志信息输出到文件中需要在开头加上文件名称,结尾加上‘&’符号
nohup ./startAgent.sh --tcp-port 8489 --udp-port 0 &
然后我们就可以在文件夹ServerAgent-2.2.3中找到nohup.out文件,可以通过tail -f nohup.out查看具体的日志信息
-
检查网络:通过你刚刚设置的端口telnet你的服务器ip:
telnet server_ip 8489
,在telnet之前请确定该端口已开放,以阿里云服务器为例,需要在服务器的安全组中新增端口8489的规则,telnet成功就表示serveragent已经运行成功了。
-
在jmeter的图形界面中添加监听器:perfmon metrics conllector
这个监听器中我们首先需要添加hostip:就是我们的server_ip ;然后可以添加cpu,memory,network,磁盘的监控
注意:最好不要把不同的监控类型放在同一个监听器中,因为不同的类型单位可能不一样。比如cpu和network都使用MB为单位时,纵坐标CPU可能达到1800m,而network为4m,那么为了显示出network的曲线,jmeter会自动将network的数值x100达到400m,那么我们实际去看的时候就需要将图中的数据除以100才能得到真正的数据。
2. nmon:
-
使用和下载nmon之前,检查你的被测服务器是什么系统
cat /etc/redhat-release , 这里我的是centsos7,所以来到官网中,找到centsos7的版本下载后上传到服务器上,然后使用:tar -xzvf nmon16m_helpsystems.tar.gz
解压
解压后会看到很多版本的,选择centos7版本的运行
-
nmon有三种运行模式
-
实时屏幕交互模式:这种模式只能实时观察数据,不能保存监控数据
直接执行:./nmon_x86_64_centos7
执行后进入实时的交互模式:即你输什么命令,显示对应的内容,可以多个指令一起输入,这里我们可以看到各种指令的缩写及代表的意思:
常用的指令:cmdU就是查看CPU,内存,磁盘, -
数据收集模式
-
./nmon_x86_64_centos7 -f [-s <seconds>] [-c <count>]
-
-f 代表以数据收集模式运行,会将收集到的数据csv数据表格的形式保存在一个.nmon文件中,存放在当前目录
可选参数:
-s:时间间隔,默认300,单位秒,每隔多少秒收集一次数据
-c:统计次数,默认288,
-m:设置自己想要保存的文件路径
当-f 后面不跟-s,-c时使用默认值,即代表会在24小时内,每隔300s收集一次数据,共收集288次,最后生成一个.nmon文件。 -
文件的分析:
在官网下载nmon_analyser_v66.zip然后解压,注意这里有66,69版本,选择66版本,解压后会有两个文件nmon analyser v66.xlsm和NA_UserGuide v66.pdf
注意:打开nmon analyser v66.xlsm需要使用office,不能使用wps,因为里面使用了宏,然后将服务器生成的.nmon文件下载下来放到xlsm的文件夹里,然后打开nmon analyser v66.xlsm,点击按钮后就可以看到里面统计的各种信息的图表。
-
-
定时执行模式:这个与数据收集模式差别不大,不做详细介绍
-
不是定时任务
-
固定执行时长,我限定时间,你使用我这个参数,就按照我固定的时间运行
-x: Sensible spreadsheet output for one day
Every 15 mins for 1 day ( i.e. -ft -s 900 -c 96)
就是执行一天,每15分钟收集1次
-X:Sensible spreadsheet output for busy hour
Every 30 secs for 1 hour ( i.e. -ft -s 30 -c 120)
就是执行一小时,每30秒收集1次
-z: Like -x but the output saved in /var/perf/tmp assuming root user
就是需要root账户运行,与-x一样,但结果保存在/var/perf/tmp下面 -
linux查看性能命令mapstat,sar
-
3.性能监控平台:
平台:集中多种数据,有统一展示的地方,注意这些平台有些可以不用安装在被测服务器上,自己在window创建一个虚拟机上安装即可使用,因为这些就是起数据收集和展示的作用,数据来源于jmeter或者监听器。
- 展示:grafana —就是一个前端展示平台,没有数据收集的功能
- 数据收集:influxdb,graphite,Prometheus,zabbix收集存储数据
- influxdb,Prometheus:时序数据库,根据时间存储数据,每一个数据都有一个时间,那么我们就可以根据时间绘制数据随时间变化的折线图。
1. grafana+influxdb
-
安装grafana:
rpm -ivh grafana-7.0.3-1.x86_64.rpm
(这个需要已经下载好了包)sudo yum -y install grafana-7.0.3-1.x86_64.rpm
(在线下载安装) 注意:这里直接安装可能报错找不到包,需要跟上网址:
sudo yum -y install https://dl.grafana.com/oss/release/grafana-7.0.3-1.x86_64.rpm
- 启动grafana:
systemctl start grafana-server
- 查看启动进程:
ps -ef |grep grafana
- grafana默认的端口是3000,如果安装的linux主机是云服务器,需要在云服务器安全组中添加3000端口(不知道怎么添加的看上面截图,或者自行百度哈哈),然后在浏览器通过
grafana_ip:3000
可以直接访问grafana,账号密码都是amdin,登录后会提示修改密码。
-
安装infludb:切记安装1.x版本,不要安装2.x版本(2.x版本资料较少,鉴权方式不一样)
sudo yum install https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm
- 启动influxdb:
influxd
注意:这是直接启动,这样启动后,使用的过程中不能ctrl c退出使用,可以使用后台启动的方式:influxd &
,默认端口8086,注意8086端口是否开放 - 使用influxdb:
- 进入命令行模式:
influx
类似于mysql进入命令行的方式 - database 数据库;measurement 表;
- 显示所有的数据库:
show databases;
注意这里是命令包含了分号的哈 - 创建名称为jmeter的数据库:
create database "jmeter";
注意:这里的名称必须使用小写的’jmeter’,不然监控的时候会取不到数据,因为后续配置的都是默认使用的jmeter,当然是大佬的话,可以自行配置哈 - 进入数据库:
use jmeter;
- 显示所有的表:
show measurements;
- 查看表中的数据:
select * from jmeter;
注意:这里没有主动来创建表,在使用的时候,如果表不存在,influxDB会主动去创建
- 进入命令行模式:
-
grafana配合influxdb使用:
-
在grafana中登录后添加数据源,add data source
-
选择influxdb,进入setting配置:
- name:可以自己定义,也可以使用默认的influxDB
- url:http://influxdb_ip:8086,填写你安装influxdb的主机ip:8086
- influxDB Details:Database填写jmeter
-
数据来源:与jmeter集成使用
- jmeter做性能测试,产生数据,写入influxdb数据库中
- 打开jmeter,添加“后端监听器”
- 后端监听器的实现:选择带有“influxdb”的
- influxdbUrl:influxdb的数据的Ip地址,默认数据库名称为:jmeter
-
配置前端:
- grafana左侧的菜单栏中选择“+”号>import
- 模板id:输入5496,这个是模板id,可以在官网grafana>Dashboards中自己查看选择
- 跳转到加载的页面中:DBname选择我们上一步配置的influxdb的name,这里我们设置的默认的就是“influxDB”
- 表名称:也是直接使用jmeter
-
2. grafana+Prometheus
- 安装Prometheus:
- 将安装包上传到监控平台机器(不是被测服务器)
- 解压包:
tar -xzvf prometheus-2.20.1.linux-amd64.tar.gz
进入解压后的文件夹 - 启动:直接启动:
./prometheus
后台启动:nohup ./prometheus &
默认端口9090 - 访问:http://peometheus_ip:9090
- Prometheus收集数据:不与jmeter集成,需要自己安装收集器收集数据
- 安装收集器:收集被测服务器硬件资源的使用情况:在被测服务器上安装node_exporter收集器,需要收集什么信息,就在对应的服务器上安装收集器
- 将收集器node_exporter的包上传到被测服务器
- 解压包:
tar -xzvf node_exporter-1.1.1.linux-amd64.tar.gz
- 启动:直接启动:
./node_exporter
后台启动:nohup ./node_exporter &
默认端口9100 - 访问:http://server_ip:9100
- Prometheus和node_exporter集成
- 在prometheus文件夹中去配置prometheus.yml文件
- job_name: 'node_exporter'
static_configs:
- targets: ['120.26.106.103:9100','']
多个服务器以逗号分割
重启prometheus
- Prometheus和grafana配合使用:
-
在setting中设置添加数据源,选择prometheus
- name:可以自己定义,也可以使用默认的Prometheus
- url:http://prometheus_ip:9090,填写你安装influxdb的主机ip:9090
-
配置前端:
- grafana左侧的菜单栏中选择“+”号>import
- 模板id:输入12884,这个是模板id,可以在官网grafana>Dashboards(https://grafana.com/grafana/dashboards/)中自己查看选择
-
好了,到这里基本使用就介绍完了,欢迎大家在评论区指正!!