tcplstat介绍
      tcplstat是基于libpcap网络嗅探程序包的网络监控工具,它能旁路捕获所有经过网络设备过滤规则的TCP数据,跟踪当前所有TCP连接会话,记录所有经过的TCP分组,当连接断开或到达最大记录数时倒出统计信息,包含但不限于连接两端网络地址、建立时间戳、三步握手各分组延迟、四步分手各分组延迟,数据分组明细、往来分组间延迟和相反方向分组延迟的最小、平均、最大统计值。

   tcplstat在旁路工作,所以不会对应用造成任何影响,也无需侵入应用,即可获得网络数据往来分组明细和统计信息。

   tcplstat在实现基础网络监控功能时还实现了采集分析SQL耗时和HTTP耗时信息,同样也是旁路捕获,不影响应用也无需改造应用,帮助应用优化性能。

   tcplstat是开源的,除了引用了Linux内核的红黑树和链表源码外,自身源码只有1500行左右,源码结构简单易读。

tcplstat跨主流平台Linux、WINDOWS、AIX。
---摘录作者的github  #  https://github.com/calvinwilliams/tcplstat#2-%E5%AE%89%E8%A3%85

部署
   

            理论上tcplstat可以安装在任何有libpcap的环境,包括Linux、WINDOWS、AIX等。

             Linux/AIX上编译安装tcplstat前需先安装libpcap-devel;只运行tcplstat前需先安装libpcap。

             WINDOWS上编译安装tcplstat前需先安装winpcap开发包;只运行tcplstat前需先安装winpcap运行包。

  

    1:root@centos-mysql01:~# git clone https://github.com/calvinwilliams/tcplstat.git

    2:root@centos-mysql01:~#apt-get install libpcap-dev -y

    3:root@centos-mysql01:~# cd tcplstat/

    4:root@centos-mysql01:~/tcplstat# make -f makefile.Linux install

      1.png

  5:需要把/root/bin加入到/etc/profile文件的PATH环境变量
   export PATH=/root/bin:/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/mysql/bin:$PATH

  6:开始使用

      详解

         

  • -v 显示版本信息

  • -l 列出所有网络设备,传递给-i,尤其是在WINDOWS上网络设备名不好猜

  • -i 设置网络设备接口,不设置则默认使用any

  • -f 设置网络过滤规则,比如tcp port 445嗅探所有连接到端口445的往来TCP分组,具体参见pcap-filter(7)

  • -o 一旦捕获到TCP分组,输出数据类型,E表示输出分组事件,S表示连接断开输出会话统计信息,P表示连接断开输出TCP分组统计信息,D表示连接断开输出TCP分组数据信息,d表示输出调试信息

  • --sql 捕获SQL统计耗时信息

  • --http 捕获HTTP统计耗时信息

  • --max-packet-trace-count 针对长连接不释放,总是不能侦测到连接断开也就不能输出会话总结信息,该选项设置TCP分组累积到多少时强制输出并清空TCP分组明细信息,默认为1000,下次输出会话统计信息时前缀从'E |'变成'E -'

  • --log-file 输出到日志文件,不设置文件则输出到屏幕

参考:https://www.oschina.net/p/tcplstat
          https://github.com/calvinwilliams/tcplstat#2-%E5%AE%89%E8%A3%85