goreplay 映象nginx web app流量
阿新 • • 發佈:2019-01-13
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="[email protected]"
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
說明
類似的可以使用nginx 自帶的mirror 指令,或者tcpcopy 。。。,同時goreplay 也支援kafka 的整合,還是很方便的
參考資料
https://github.com/buger/goreplay/wiki/Getting-Started
https://github.com/rongfengliang/goreplay-openresty-demo