web-dev-qa-db-ja.com

着信HTTPリクエストを監視する方法

ポート80への着信HTTPリクエストを監視するにはどうすればよいですか? DynDNSNginxを使用して、ローカルマシンにWebホスティングを設定しました。 毎日、サーバー上でいくつのリクエストが行われるのか知りたいと思っていました。

現在、私はこのコマンドを使用しています:

netstat -an | grep 80
32
user7044

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

44
nad

私はtcpflowを使用してawsインスタンスで受信リクエストをチェックしてきました。おそらく、リクエストを日ごとに集約する方法があるでしょう。

ステップ1-インストール

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

STEP 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

7
prayagupd

サーバーでログファイルが有効になっていますか?その場合は、AwStatsをインストールしてログファイルを実行し、正確なレポートを取得することをお勧めします。

すべての着信/発信トラフィックを監視するだけの場合は、WireSharkを使用できます。

5
djsumdog

ログファイルをテールにすることもできます。

tail -f /path/to/access_log

-fパラメータを指定すると、新しいエントリがログに書き込まれるときに、tailが継続的に画面を更新します。

4
Dave

これを実行

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ポートのトラフィックを監視します

0
vsingh