Gatling实战(四)- 实时监控配置与Grafana视图整合

阅读更多

背景

最近在研究Gatling,这是一款发布很久但在国内使用范围不是很广泛的压测工具。研究这款工具的理由很简单,很喜欢生成的html报告,本文会提供几张截图给大家一个直观感受,但这不是本文的重点,Gatling官网下载的版本不支持实时监控,只有在simulations结束后,打开html报告才能看到数据图表,这不符合我们边压测边看图表的习惯。

实时监控

官网说明文档中有关于实时监控章节的介绍,有兴趣的同学可以直接去官网看Realtime monitoring,本文要介绍的部署方式:influxdb + grafana采用docker部署,更方便便捷。

博主服务器环境为centos7,如为ubuntu、mac等环境,请自行研究,应该大致上差不多

部署

安装镜像

在安装influxdb和grafana镜像前,先安装docker环境和docker-compose环境。Docker-Compose是一个部署多个容器的简单但是非常必要的工具 

  • docker安装 
# yum -y install docker

 

  • docker-compose安装

安装Docker-Compose之前,请先安装 python-pip。 

1、首先检查linux有没有安装python-pip包,终端执行 pip -V

# pip -V
-bash: pip: command not found

 2、没有python-pip包就执行命令 yum -y install epel-release

# yum -y install epel-release

 3、执行成功之后,再次执行yum -y install python-pip 

# yum install python-pip

 4、对安装好的pip进行升级 pip install –upgrade pip

# pip install --upgrade pip

 至此,pip安装好了,执行pip -V 再次检查pip环境。

# pip -V
pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)

 

安装Docker-Compose

pip install docker-compose

 

检查docker-compose 安装:docker-compose -version

# docker-compose -version
docker-compose version 1.18.0, build 8dd22a9

 

  • influxdb镜像 
# docker pull influxdb;

 

  • grafana镜像 
# docker pull grafana/grafana;

 

 

配置文件

在服务器/usr/local目录下创建monitor目录,并在monitor下创建两个目录influxdb和grafana

# ls monitor
grafana  influxdb

 

在influxdb目录下新建docker-compose.yml文件,文件内容如下:

# cat docker-compose.yml 
version: "2"
services:
  influxdb:
    image: influxdb
    ports:
      - 8086:8086
      - 2003:2003
    environment:
      - INFLUXDB_GRAPHITE_ENABLED=true

8086端口为influxdb的监听端口,2003端口为gatling的监听端口

 

在grafana目录下新建docker-compose.yml文件,文件内容如下:

# cat docker-compose.yml 
version: "2"
services:
  influxdb:
    image: grafana/grafana
    ports:
      - 3000:3000
    environment:
      - GF_SERVER_ROOT_UR=http://127.0.0.1
      - GF_SECURITY_ADMIN_PASSWORD=passwd

3000端口为grafana的监听端口

 

配置完influxdb和grafana后,我们再配置gatling内容,进入gatling的conf目录下,打开gatling.conf,按照实际情况修改如下内容: 

Gatling实战(四)- 实时监控配置与Grafana视图整合_第1张图片

配置文件配置完成后,然后就是依次启动influxdb和grafana服务

 

服务启动

influxdb启动

进入/usr/local目录下,执行如下命令:

# docker-compose -f monitor/influxdb/docker-compose.yml up -d

 

检查influxdb启动结果,运行命令docker ps

# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                            NAMES
ffa5f8edeea6        influxdb            "/entrypoint.sh influ"   2 hours ago         Up 2 hours          0.0.0.0:2003->2003/tcp, 0.0.0.0:8086->8086/tcp   influxdb_influxdb_1

 

进入influxdb容器,修改配置文件

# docker exec -it ffa5f8edeea6 bash
root@ffa5f8edeea6:/#

 

安装vim编辑器

apt-get update
apt-get install -y vim

 

修改influxdb配置文件,添加如下内容:

root@ffa5f8edeea6:/# vim /etc/influxdb/influxdb.conf 
[meta]
  dir = "/var/lib/influxdb/meta"

[data]
  dir = "/var/lib/influxdb/data"
  engine = "tsm1"
  wal-dir = "/var/lib/influxdb/wal"

[[graphite]]
  enabled = true
  database = "gatlingdb"
  templates = [
                "gatling.*.*.*.* measurement.simulation.request.status.field",
                "gatling.*.users.*.* measurement.simulation.measurement.request.field"
        ]

 influxdb配置文件修改后,需要重启容器,操作步骤如下: 

 

1、退出influxdb容器 
2、进入到/usr/local/monitor/influxdb目录下,执行命令docker-compose restart

 

grafana启动

进入/usr/local目录下,执行如下命令:

# docker-compose -f monitor/grafana/docker-compose.yml up -d

 

grafana管理后台操作

启动成功后,访问http://10.200.143.10:3000即可打开grafana管理页面,进入登录页面: 

Gatling实战(四)- 实时监控配置与Grafana视图整合_第2张图片
 

用户名默认为admin,密码为前面grafana目录下docker-compose.yml配置的密码,登录成功后看到的页面 

Gatling实战(四)- 实时监控配置与Grafana视图整合_第3张图片
 

配置数据源Data Sources,如 
Gatling实战(四)- 实时监控配置与Grafana视图整合_第4张图片
 

配置完成后,点击保存,这里可能会遇到如下问题 


 

解决方法: 
1、进入influxdb控制台

# influx
Connected to http://localhost:8086 version 1.4.2
InfluxDB shell version: 1.2.4

 

2、查看influxdb数据库

> show databases;
name: databases
name
----
_internal

    确实没有gatlingdb数据库,但我们可能新建gatlingdb数据库

 

3、新建gatlingdb数据库

> create database gatlingdb;
> show databases;
name: databases
name
----
_internal
gatlingdb

 

说明gatlingdb数据库创建好了,然后就是导入实时监控模板,模板地址:https://github.com/gatling/gatling/blob/master/src/sphinx/realtime_monitoring/code/gatling.json

实时监控模板附件:gatling.json.zip 

 

将模板json import到监控面板即可 

Gatling实战(四)- 实时监控配置与Grafana视图整合_第5张图片
 


Gatling实战(四)- 实时监控配置与Grafana视图整合_第6张图片
 

终于弄好了,现在见证奇迹的时候到了,执行gatling的scala脚本,实时监控压测情况 

Gatling实战(四)- 实时监控配置与Grafana视图整合_第7张图片
 

实时监控图表 

Gatling实战(四)- 实时监控配置与Grafana视图整合_第8张图片
 

 

  • Gatling实战(四)- 实时监控配置与Grafana视图整合_第9张图片
  • 大小: 28.6 KB
  • Gatling实战(四)- 实时监控配置与Grafana视图整合_第10张图片
  • 大小: 23 KB
  • Gatling实战(四)- 实时监控配置与Grafana视图整合_第11张图片
  • 大小: 41.2 KB
  • Gatling实战(四)- 实时监控配置与Grafana视图整合_第12张图片
  • 大小: 121.9 KB
  • Gatling实战(四)- 实时监控配置与Grafana视图整合_第13张图片
  • 大小: 22.4 KB
  • Gatling实战(四)- 实时监控配置与Grafana视图整合_第14张图片
  • 大小: 26.1 KB
  • Gatling实战(四)- 实时监控配置与Grafana视图整合_第15张图片
  • 大小: 20.1 KB
  • Gatling实战(四)- 实时监控配置与Grafana视图整合_第16张图片
  • 大小: 32.7 KB
  • Gatling实战(四)- 实时监控配置与Grafana视图整合_第17张图片
  • 大小: 118.3 KB
  • gatling.json.zip (2.1 KB)
  • 下载次数: 2
  • 查看图片附件

你可能感兴趣的:(Gatling,Grafana,influxdb)