使用nsenter 解决tcpcollect容器网络捕捉问题
属于一个实际的问题,因为mysql 基于容器运行,但是需要实时追踪mysql 的执行情况,tcpcollect 是一个特别好的选择
一些问题
因为容器隔离的特性造成我们捕捉的流量会有问题,无法完整的捕捉mysql 的请求
解决方法
此时我们可以直接基于nsenter 直接挂载容器网络namespace,然后捕捉就很简单了,可以直接使用tcpcollect 的命令了
参考命令
sudo nsenter --target <containerpid> --uts --ipc --net --pid
一个参考案例
因为需要开发dremio 集成dorisdb ,但是发现了sql 语法问题,此时我们也可以利用tcpcollect解决
参考实例
./mysqlpcap -p 9030
参考资料
https://man7.org/linux/man-pages/man1/nsenter.1.html
https://github.com/nicolaka/netshoot
https://github.com/hoterran/tcpcollect