goreplay 镜像nginx web app流量

冲天香阵透长安,满城尽带黄金甲。这篇文章主要讲述goreplay 镜像nginx web app流量相关的知识,希望能为你提供帮助。
goreplay 是一个很不错的流量拷贝,复制工具,小巧,支持一些扩展,当然也提供了企业版,企业版
功能更强大,支持二进制协议的分析
备注: 演示使用docker-compose 运行,测试镜像流量到其他的两个web app (openresty)
环境准备 docker-compose 文件 

version: "3"

services:

    nginx:

      build: ./

      ports:

      - "8080:80"

    app:

      image: openresty/openresty:alpine-fat

      ports:

      - "8090:80"

    app2:

      image: openresty/openresty:alpine-fat

      ports:

      - "8091:80"

包含goreplay 的docker 配置
  • dockerfile
    使用了一个tini 的工具,方便后台任务运行,同时因为wget 二进制包太慢,所以直接下载add 了
 
FROM openresty/openresty:alpine-fat

LABEL author="1141591465@qq.com"

COPY gor_0.16.1_x64.tar.gz .

RUN apk add --update & & apk add --no-cache tini \\

    & & tar xzf gor_0.16.1_x64.tar.gz -C /usr/local/bin \\

    & & rm gor_0.16.1_x64.tar.gz

ENV PATH=$PATH:/usr/local/bin

ADD entrypoint.sh /entrypoint.sh

ADD goreplay.sh /goreplay.sh

ENTRYPOINT ["/sbin/tini","-s", "--", "/entrypoint.sh"]

 
  • entryppint.sh
#!/bin/sh

sh goreplay.sh

exec /usr/local/openresty/bin/openresty -g "daemon off; " 

  • goreplay.sh
    goreplay 的运行命令,主要是进行流量的拷贝
 
#!/bin/sh

nohup goreplay --input-raw :80 --output-http "http://app" --output-http "http://app2" &

运行& & 效果 运行
docker-compose up -d

  效果我们访问nginx 8080 端口,其他端口的也会有数据流量,通过查看日志即可,从下边的日志我们可以看出
nginx 日志较早,然后是app app2 请求时间是一样的
 
docker-compose logs -f

 
goreplay 镜像nginx web app流量

文章图片

说明【goreplay 镜像nginx web app流量】类似的可以使用nginx 自带的mirror 指令,或者tcpcopy 。。。,同时goreplay 也支持kafka 的集成,还是很方便的
参考资料https://github.com/buger/goreplay/wiki/Getting-Started
https://github.com/rongfengliang/goreplay-openresty-demo

    推荐阅读