Yesterday I saw a lion kiss a deer, turn the page maybe we'll find a brand new ending. Where we dancing in our tears. __<Lost Stars>
半个月前,研究了Jmeter里面添加HTTP2.0的插件,因为2.0时代已经到来。配置HTTP 2.0也是非常方便的,至少在最新安装的Nginx配置文件里,默认是把HTTP2.0打开的,HTTP 2.0 只能支持和HTTPS一起使用,如果用的是HTTP,是无法用到HTTP2.0。
nginx.conf配置文件
- 这次实验目的有3个:
- 尝试用docker镜像运行服务;
- 学会docker里的文件mount到宿主机器上; 例如服务的一些配置文件和日志信息需要从docker里映射到宿主机上,一方面便于配置和查看,另外一方面避免docker的消失,而失去一些重要的日志信息等等;
- 在搭建好的nginx集群基础上,用Jmeter HTTP 2.0 访问该Nginx集群,同时启动Jmeter的Backend Listener, 它将测试结果实时送往时序数据库Influxdb, 同时用Grafana将数据库Influxdb的数据实时展示出来。
准备工作
我在阿里云的一台ECS上创建了一个由4个nginx docker 作为后端 + 1个nginx作为负载均衡的小小集群。配置负载均衡的nginx的通信为默认的HTTP2.0。
具体步骤完全可以参照这篇写的很好的文章: 使用Nginx + Docker配置HTTPS的负载均衡
小贴士:在nginx的html文件下,一定要创建属于自己的index.html文件,不然,在你搭建好集群后,会遇到403的错误,你可以在nginx的access.log里找到相应的日志信息来进行对应的解决方法。在这里,我为4个nginx的服务(html1~4)都分别创建了index.html.
创建index.html文件
在这台ECS上安装Influxdb和Grafana,因为这台机器的系统是CentOS,所以这里只能以该系统的安装方法简单讲讲,其他系统其实网上也有很多的方法。
安装和配置Influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.4.x86_64.rpm
sudo yum localinstall influxdb-1.2.4.x86_64.rpm
在启动influxdb服务之前,我们先去修改下influxdb的配置文件,打开8083端口让它可以通过网页的形式访问到,同时开启默认的8086端口,用http的方式对数据库进行读和写的操作。
小贴士:这里有一个非常好用的命令,划下重点 rpm -ql influxdb, 该命令可以很轻松到的找到关于influxdb的相关文件信息。
修改influxdb.conf文件,打开8083和8086的端口;
打开8083和8086端口
在同样的文件里,修改graphite指定database和开启端口,方便等会儿Jmeter测试结果的数据往influxdb发送。
Influx.conf的graphite配置
这个时候,你肯定会问,我都没有创建名为"jmeter"的数据库,为什么你就知道指定"jmeter"的数据库?
是的,是的,我只是把步骤提前了,你的确需要创建一个名为"jmeter"的数据库。不管怎样,先把配置文件改好,然后启动influxdb的服务:
service influxdb start // 启动
接下来,我们要把刚刚配置文件里提到的名为"jmeter“数据库创建起来,输入influxdb, 然后 CREATE DATABASE "jmeter", 这样就创建好了。
以上关于Influxdb的部分就搞定了,接下来是安装Grafana.
Jmeter配置Backend Listener
在讲Grafana之前,我们先把Jmeter的HTTP 2.0 访问Nginx集群的脚本写好,并把Backend Listener配置好,这样可以把实时测试结果发送到Influxdb。
配置HTTP 2 Request到你的服务:
配置HTTP2 Request如果不知道,HTTP2 Request的插件怎么安装和配置,可以先看我写的这篇文章:Jmeter 如何配置 HTTP 2.0
然后添加Backend Listener的监听器:
配置Backend Listener关于这个监听器得到的测试结果,比如percentiles: 90;95;99 等等数据的含义,需要参考Jmeter的官方解释:Jmeter Real-time Result Metrics
安装和配置Grafana
在同样的机器上,继续安装Grafana.
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.5.1-1.x86_64.rpm
sudo yum localinstall grafana-4.5.1-1.x86_64.rpm
启动服务:
service grafana-server start
登陆Grafana进行配置,访问http://your_ip_address:3000/, 就会看到你的grafana的登陆界面,输入默认的用户名:admin和密码:admin,即可开始配置。
先配置数据库的源,刚刚在influxdb开放的8086端口这里需要用到,如图:
配置数据源.png接着配置名为Jmeter数据库的metrics信息,如图:
配置Graph
最后,通过jmeter不间断发送消息到nginx的集群,那么关于访问该集群的测试结果的信息就会插入到influxdb的jmeter数据库,并在grafana得到展示:
TP99的延时展示,以毫秒为单位以上。
周末不定期更新:Nginx集群 + Jmeter + Influxdb + Grafana
网友评论