您的位置:首页 > 运维架构

性能测试监控:Jmeter+Collectd+Influxdb+Grafana

2017-12-06 14:53 971 查看
系统性能指标图示例:



采集数据(collectd)-> 存储数据(influxdb) -> 显示数据(grafana)


InfluxDB 是 Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据

collectd C 语言写的一个系统性能采集工具

Grafana 是纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表、显示图表等

Jmeter是Apache组织开发的基于Java的压力测试工具

一、 Collectd

1. 下载安装

官网下载地址:https://collectd.org/download.shtml

tar xf collectd-version.tar.bz2

cd collectd-version

./configure

make all install

yum安装

先查询是否已安装epel-release ,没有则执行yum install epel-release–y安装;

yum install -y collectd;

2. 修改配置

vi /etc/collectd.conf

确保以下几项的注释(#)是去掉的

Hostname "192.168.1.126" 此处改为安装collectd的机器IP地址

LoadPlugin cpu

LoadPlugin memory

LoadPlugin network

LoadPlugin swap

<Plugin cpu>

ReportByCpu true

ReportByState true

ValuesPercentage true 此处启用cpu的使用率,5.7.*以上才有,低版本的不支持百分百

</Plugin>

<Plugin network>

<Server "192.168.1.222" "25826"> 此处指定将collectd收集的数据发送到的influxdb地址和端口

Interface "enp0s31f6" 通过ifconfig获取网卡的名称

</Server>

</Plugin>

3. 启动

service collectd start

二、 InfluxDB

1. 下载安装

下载地址:https://portal.influxdata.com/downloads

选择InfluxDB最新版本如:v1.4.2,点击进去后选择对应的系统版本,如:

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.4.2-static_linux_amd64.tar.gz
解压:tar xvfz influxdb-1.4.2-static_linux_amd64.tar.gz

2. 修改配置

vi influxdb.conf

找到 [http] 和 [[collectd]] 、 [[graphite]]节点,enabled改为true(默认是开启的),bind-address修改绑定的IP和端口:

[http]

#Determines whether HTTP endpoint is enabled.

enabled= true

# The bindaddress used by the HTTP service.

bind-address= ":8086" 此处配置的IP和端口供grafana连接使用

[[collectd]]

enabled= true

bind-address = ":25826" 此处配置的IP和端口供collectd上传数据使用

typesdb = " /usr/share/collectd/types.db" 可在安装collectd的机器上(yum安装默认在/usr/share/collectd目录)拷贝过来,存储在指定的目录

[[graphite]]

enabled= true Jmeter通过“Backend Listener”,将测试的数据上传到InfluxDB来存储

database= "graphite" 指定jmeter的性能监控数据存储的数据库名称

bind-address= ":2003" 此处配置的IP和端口供jmeter上传数据使用

3. 启动

执行 ./influxd&

启动成功后执行./influx创建collectd 和
graphite 数据库:



同时还要执行create database graphite 创建graphite数据供jmeter上传数据使用;

看到图中会出现httpd的日志,可以修改influxdb.conf 将log-enabled 改为 false,关闭日志打印功能;

influxdb的数据量一多,会非常影响性能,可以设置只保留5天的数据:

use collectd

create retention policy "5_days" on collectd duration 5d replication 1 default

show retention policies on collectd

三、 Jmeter

1. 下载安装

下载地址:http://jmeter.apache.org/download_jmeter.cgi

可选择zip包,如“apache-jmeter-3.3.zip”,下载到windows上直接解压即可。

2. 启动

在bin目录,运行jmeter.bat,可打开图形化界面。

3. 添加测试计划

右击测试计划,指向添加,展开菜单后选择Thread(Users),点击线程组;



右击线程组,添加http请求:



输入请求的域名或IP,添加参数



右击测试计划,选择添加→监听器→Backend Listener(用于将性能数据上传到Influxdb)



如下图填好相应参数:



启动测试后,jmeter会异步将测试的数据上传到InfluxDB;

如果要集群测试,linux上运行“./jmeter-server”,windows上运行jmeter-server.bat,客户端需要在jmeter.properties上配置remote_hosts属性,设置远程机器的IP和端口,然后客户端运行jmeter.bat,打开图形化界面,选择运行→远程启动。

四、 Grafana

1. 下载安装

下载地址:https://grafana.com/grafana/download

选择对应的系统版本,Linux通用的下载地址

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.2.linux-x64.tar.gz
解压:tar -zxvf grafana-4.6.2.linux-x64.tar.gz

2. 修改配置

http_port= 3000 管理界面的访问端口

admin_user= admin 管理界面登录的用户名

admin_password= admin 管理界面登录的密码

type =mysql 可配置mysql、postgres、sqlite3,默认是sqlite3,第一次启动自动创建数据库和初始化表

host =192.168.1.222:3307 数据库的地址和端口

name =grafana 数据库名称

user =root 数据库用户名

# If the password contains # or ; you have to wrap it with triple quotes. Ex"""#password;"""

password= 123456 数据库密码

3. 启动

./grafana-server

浏览器访问:http://ip:3000 ,输入用户名和密码(默认admin)



4. 配置DataSource

登录Granfana管理页面后,点击左上角的图标,展开二级菜单,点击“Data Source”进入数据源管理页面:



点击Add datasource添加数据源:



按实际填好数据好,点击“Add”,成功添加会显示“Data source is working”

5. 配置Dashboard(系统指标)

点击左上角图标,展开二级菜单,鼠标指向Dashboards,展开右侧的菜单,点击New:



进入Newdashboard页面:



点击Graph,进入如下页面:



点击PannelTitle,然后点击Edit,出现Graph的编辑区域:



点击ToggleEdit Mode可看到生成的sql,如下:



点击Add Query,分别添加cpu的idle、system、wait数据;

在General菜单项Title属性,输入“Cpu”;

在Axes菜单项Left Y 的Unit,选择none – percent(0-100) , 修改Y轴单位;

一个机器cpu的监控即可配置完成,如下图:



按CTRL+S,输入监控的机器IP,保存设置。

点击左上角的 “Backto dashboard”返回dashboard页面,点击“+ADDROW”,分别添加网络流量、内存、Swap等监控。



网络流量只能在ToggleEdit Mode模式下输入以上SQL,单位是datarate > bytes/sec



内存的单位是data(IEC)> bytes



Swap的单位是data(IEC)> bytes

如果监控安装collectd的机器与Grafana的机器时间有差异,可以在Time range修改:



6. 配置Dashboard(Jmeter指标)

添加一个新的Dashboards,配置名字Jmeter;

添加响应时间的Graph,Axes的unit设置为none:



添加TPS的Graph,Axes的unit设置为none:



Jmeter监控指标图示例:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息