参考

参考

如何监控传入的HTTP端口请求80?我已使用DynDNS和在本地计算机上设置了网络托管Nginx我想知道我的服务器每天有多少请求。

目前我正在使用这个命令:

netstat -an | grep 80

答案1

您可以使用tcpdump.

# tcpdump filter for HTTP GET 
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

# tcpdump filter for HTTP POST 
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

有关使用的解决方案,tshark请参阅:

https://serverfault.com/questions/84750/monitoring-http-traffic-using-tcpdump

答案2

我一直在使用tcpflowaws 实例检查传入请求,也许有一种方法可以每天聚合请求。

第 1 步 - 安装

# yum install --nogpgcheck http://pkgs.repoforge.org/tcpflow/tcpflow-0.21-1.2.el6.rf.x86_64.rpm

第 2 步 - 跟踪端口 80 处的 GET/POST 请求

# tcpflow -p -c -i eth0 port 80 | grep -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*'

参考

https://github.com/simsong/tcpflow

答案3

您的服务器是否打开了日志文件?如果您这样做,我建议您安装 AwStats 并使用它运行日志文件以获得准确的报告。

如果您只想监控所有传入/传出流量,可以使用 WireShark。

答案4

运行这个

while true
do
echo -----`date '+%r'` -----:
netstat -ant | grep :8080 | awk '{print $6}' | sort | uniq -c | sort -n
echo httpd processes: [`ps aux | grep httpd | wc -l`]
echo .
sleep 2
done

每2秒监控8080端口的流量

相关内容