[unix] 들어오는 http 요청을 모니터링하는 방법

HTTP포트로 들어오는 요청을 어떻게 모니터링 할 수 80있습니까? 나는 내 로컬 컴퓨터 사용에 웹 호스팅을 설정 DynDNS하고 Nginx. 매일 서버에서 얼마나 많은 요청이 이루어지고 있는지 알고 싶었습니다.

현재이 명령을 사용하고 있습니다 :

netstat -an | grep 80



답변

을 사용할 수 있습니다 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


답변

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


답변

서버에 대한 로그 파일이 설정되어 있습니까? 그렇다면 정확한보고를 위해 AwStats를 설치하고 로그 파일을 실행하는 것이 좋습니다.

모든 들어오는 / 나가는 트래픽 만 모니터링하려면 WireShark를 사용할 수 있습니다.


답변

로그 파일을 테일링 할 수도 있습니다.

tail -f /path/to/access_log

-f 매개 변수는 새 항목이 로그에 기록 될 때 tail이 화면을 계속 업데이트하도록합니다.


답변

이것을 실행

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 포트의 트래픽을 모니터링합니다.


답변