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
답변
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: .*'
참고
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 포트의 트래픽을 모니터링합니다.