Tcpcopy获取:https://github.com/session-replay-tools/tcpcopy

服务器说明

所需机器:三台linux服务器,一台作为线上环境机器A,一台作为测试机B,一台作为辅助服务器C(各台机器具体用法说明《tcpcopy参考架构选型调研》)

线上环境机器A--------192.168.57.125

测试机B -------192.168.57.126

辅助服务器C ---------192.168.57.128

文档后续内容中用ABC分别标识相关服务器

总体安装步骤:

Ø 在服务器C上安装 intercept

Ø 在服务器A和B上安装tcpcopy

Ø 对服务器B进行相关路由设置

Ø 测试tcpcopy是否正常运行

在服务器C上安装 intercept

² intercept获取路径

1、 git路径:

git clone git://github.com/session-replay-tools/intercept.git

2、 download the v1.0.0:

https://codeload.github.com/session-replay-tools/intercept/tar.gz/1.0.0

² intercept安装过程

1、 依赖包:gcc cpp gcc-c++ libgcc libstdc++ libstdc++-devel libpcap libpcap-devel

依赖包安装:yum install –y gcc cpp gcc-c++ libgcc libstdc++ libstdc++-devel libpcap libpcap-devel

2、 Intercept安装:

./configure

make && make install

² intercept启动及验证

1、进入intercept安装路径的sbin目录

cd /usr/local/intercept/sbin (以自己本地实际的安装路径为准)

2、启动并设置监听端口:

./intercept -i eth0 -F 'tcp and src port 8090' -d

在服务器A和B上安装tcpcopy

1、tcpcopy安装:

./configure (注:离线版用./configure --offline)

make && make install

2、tcpcopy启动

进入tcpcopy安装路径(以本地实际安装路径为准):cd /usr/local/tcpcopy/sbin

执行:./tcpcopy -x 8090-192.168.57.126:8090 -s 192.168.57.128 -c 10.5.214.x

注意:离线版和在线版不能同时使用,建议现网装在线版,测试服务器装离线版

对服务器B进行相关路由设置

添加路由:route add -net 10.5.214.0 netmask 255.255.255.0 gw 192.168.57.128

设置所有到10.5.214.x的响应转移到服务器C上

备注:

1、删除路由:route del -net 10.5.214.0 netmask 255.255.255.0 gw 192.168.57.128

2、辅助服务器要确保没有开启路由模式,为0表示没有开启:

cat /proc/sys/net/ipv4/ip_forward

测试tcpcopy是否正常运行

1、 在192.168.57.125 和 192.168.57.126上搭建nginx+php环境

2、 在服务器192.168.57.125和服务器192.168.57.125上写一个info.php文件

<?php

Phpinfo();

?>

注:测试info.php时注意端口

3、 在其他机器上访问一次服务器A上的info.php文件,检查服务器B上的nginx日志是否存在一次请求记录,若存在则tcpcopy运行正常,否则运行失败

访问服务器A上的info.php文件:http://192.168.57.125:8090/lyadmin/info.php (注意以自己本地实际部署为准)

查看nginx日志:tail -f access.log (注意以本地实际路径为准)

附录:tcpcopy工具集中模式说明

tcpcopy安装步骤:

  1. cd tcpcopy
  2. ./configure

    • choose appropriate configure options if needed
  3. make
  4. make install

模式编译说明:

Configure Options for tcpcopy

--offline 离线回放模式

--pcap-capture 链路层用pcap方式抓包

--pcap-send 在数据链路层发包

--set-protocol-module=PATH 设置tcpcopy为外部协议模块工作

--single 如果intercept和tcpcopy都设置为单机模式,只有一个tcpcopy和一个intercept一起工作,将会获得更好的性能

--with-debug 以debug模式编译tcpcopy(保存在日志文件中)


travel
12 声望1 粉丝

好记性不如烂笔头


引用和评论

0 条评论