性能测试 (1)收集监控系统
收集监控系统
influxdb+grafana+telegra
监控系统的简单理解:telegraf
收集系统cpu
等数据,并写入数据到influxdb
中,jmeter
运行脚本,也写入测试数据到influxdb
中,最终由grafana
以图形化实时展示系统和测试数据。
influx
官方文档:https://docs.influxdata.com/platform/getting-started/
或者https://docs.influxdata.com/influxdb/v1.6/
InfluxDB
是用Go
语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。类似的数据库有Elasticsearch
、Graphite
等。
主要功能:
1)基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)
2)可度量性:你可以实时对大量数据进行计算
3)基于事件:它支持任意的事件数据
InfluxDB主要特点:
1)无结构(无模式):可以是任意数量的列
2)可拓展的
3)支持min
, max
, sum
, count
, mean
, median
等一系列函数,方便统计
4)原生的HTTP
支持,内置HTTP API
5)强大的类SQL
语法
6)自带管理界面,方便使用
下载influx
安装包:
mkdir /usr/local/influx
cd /usr/local/influx
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm
下载完之后,直接就可以安装
yum localinstall influxdb-1.7.0.x86_64.rpm
启动influxdb
数据库:
service influxdb start
停止:service influxdb stop
inlufxdb
各个服务的默认端口:
8083:访问web页面的地址,8083为默认端口;
8086:数据写入influxdb的地址,8086为默认端口;(这个端口很重要)
8088:数据备份恢复地址,8088为默认端口;
防火墙添加端口:
firewall-cmd --add-port=8086/tcp --permanent
firewall-cmd --add-port=8086/udp --permanent
firewall-cmd --reload
查看8086
端口:
grafana
Grafana
是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
- 1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
- 2、数据源:
Graphite
,InfluxDB
,OpenTSDB
,Prometheus
,Elasticsearch
,CloudWatch
和KairosDB
等; - 3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过
Slack
、PagerDuty
等获得通知; - 4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
- 5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
- 6、过滤器:
Ad-hoc
过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
官方文档:https://grafana.com/docs/grafana/latest/
grafana安装
下载安装包:
mkdir /usr/lccal/gragana
cd /usr/local/grafana
wget https://dl.grafana.com/oss/release/grafana-6.2.2-1.x86_64.rpm
安装grafana
:
yum localinstall grafana-6.2.2-1.x86_64.rpm
启动grafana
服务:
service grafana-server start
停止: service grafana-server stop
若是centos7,建议使用systemctl命令,如 systemctl start grafana-server
防火墙添加3000
端口,3000
为Grafana
的默认侦听端口:
firewall-cmd --add-port=3000/tcp --permanent
firewall-cmd --add-port=3000/udp --permanent
firewall-cmd --reload
浏览器访问grafana
,http://ip:3000,初始账号和密码都是admin
,初次登录需要修改密码。
grafana使用
1、添加Data Source
,并选择inlufxDB
数据源
选择influxDB
:
2、设置数据源Data Source
:
3、创建dashboard
,有两种创建方式。
第一种,根据别人保存分享的模板来进行创建,可到grafana
官网找别人分享的模板来创建dashboard
:https://grafana.com/grafana/dashboards,官网上的每个dashboard
都一个唯一的dashboard id
,随便点击一个dashboard
都可以看到,如:
想要导入模板,只需要把ID
复制下来,根据下面步骤导入即可:
第二种,自己新建一个dashboard
,步骤如下:
telegraf
安装telegraf
官方学习文档:https://docs.influxdata.com/telegraf/v1.9/introduction/getting-started/
telegraf
是一个可收集系统和服务的统计数据,比如说cpu
使用率等,并写入到InfluxDB
数据库的程序。通过telegraf
,我们可将系统cpu
、内存、磁盘等使用数据实时地写入InfluxDB
数据库,从而在grafana
的web
页面中以图表形式展示出来。
在opt
目录使用wget
获取安装包:
cd /opt
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.0.1.x86_64.rpm
yum
本地安装telegraf
:
yum localinstall telegraf-1.0.1.x86_64.rpm
修改配置文件 telegraf.conf
(此步根据自身情况修改)
vi /etc/telegraf/telegraf.conf
配置文件里可设置收集的数据要存放到telegraf
的哪个库:
查看官方文档:
可以知道,在启动telegraf
服务之前,需要先编辑或者初始化创建一个配置文件(其实这步可以跳过),这个配置文件包含了一些信息,如:
- 统计的指标从哪里来
- 统计的指标存放到哪里去
配置telegraf
:
telegraf -sample-config -input-filter cpu:mem:disk -output-filter influxdb > telegraf.conf
解释:
-input-filter cpu:mem:disk 代表获取cpu、内存、磁盘的指标
-output-filter influxdb 代表这些指标存放到influxdb数据库里面
> telegraf.conf 代表这些配置信息将会存放到当前所在路径的telegraf.conf文件中,运行这行后会自动生成这个conf文件
启动telegraf
:
service telegraf start
经过观察,发现telegraf启动时默认读取的/etc/telegraf路径下的telegraf.conf,而不是前面一步配置生成的。
因此,如果要修改要搜集的指标时,建议直接cd到/etc/telegraf,再生成新的telegraf.conf文件,覆盖掉原来的就行。
进入influxdb
,查看存在的库,会发现多了一个telegraf
库:
查看telegraf
库存在的表:show measurements;
查看telegraf
库的表的所有字段:show field keys;
查看某个表的某些内容:SELECT usage_idle FROM cpu WHERE cpu = 'cpu-total' LIMIT 5
实时监控cpu等信息
接下来要在grafana
上以图表形式实时查看telegraf
收集的存放在influxdb
中的指标和数据。
第一步:添加Data Sources
设置的关键信息如下(其它默认即可):
第二步:新建Dashboard
第三步:添加query
查询
第四步:设置query
:
举个例子:
添加多个query
后的显示效果:
telegraf plugins
查看telegraf
支持的plugins
: https://docs.influxdata.com/telegraf/v1.15/plugins/#input-plugins
打开上面的网页后,可以看到telegraf
支持的input
和output
等各种plugins
,举个例子:
可以看到,CPU
的pugin id
为inputs.cpu
,点击View
:
因此,如果我们要使用telegraf
收集cpu
相关指标时,就直接在telegraf.conf
配置文件中的input plugins
下添加一下内容即可:
所以说,修改要收集的指标时,有两种方法:
- 直接
vi
修改配置文件telegraf.conf
,想要添加收集什么指标,直接把[[inputs.xxx]]
等内容追加到input plugins
里面即可。 - 使用配置命令来修改
telegraf.conf
配置文件:telegraf -sample-config -input-filter cpu:mem:disk -output-filter influxdb > telegraf.conf
常见的plugins
:
mem
:系统内存信息,如物理、虚拟、交换内存量等等。disk
:磁盘占用信息。diskio
:磁盘IO
性能。net
和netstat
:网卡和网络信息。system
:当前系统负载信息,类似uptime
信息。file
:每个时间周期读取文件所有信息。cpu
swap
processes
我自己的dashboard
我自己在grafana
官网上id
为dashboard
模板的基础上,修改完善了后,个人认为还不错的,大致效果如下,可以监控linux
系统的cpu
、内存、磁盘、负载、网络等系统运行信息。
完成dashboard
修改后,可点击分享:
分享方法1:别人可根据我的link
链接来创建dashboard
:http://192.168.239.135:3000/d/OrznxYOMk/influxdb_centos7_info?orgId=1&refresh=5s&from=1600511376487&to=1600514976487&var-host=Jimmy
分享方法2:snapshot
:
分享方法3:json
信息,别人可以根据我分享的json
信息创建dashboard
(将dashboard
的json
信息文件下载保存到本地可以是我们保存dashboard
的一种方法)
pannel
的查看技巧:
单击某个指标名称可仅查看单个指标信息:
双击其它名称时又可查看全部指标信息: