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
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
转载于:https://blog.51cto.com/9025736/2316786