如何监控传入的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
我一直在使用tcpflow
aws 实例检查传入请求,也许有一种方法可以每天聚合请求。
第 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: .*'
参考
答案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端口的流量