Liux 는 grep, awk 로 nginx 의 access. log 로 그 를 분석 하고 시간 대 에 따라 로 그 를 캡 처 하 며 특정한 인터페이스 / 키워드 접근 성공 수량 과 평균 응답 시간 을 통계 합 니 다.

1799 단어 linux
파생 글 링크:https://blog.csdn.net/enjoyphp/article/details/100024220
항목 중 직접 측정, 명령 모두 유효
로그 캡 처, 전체 로그 파일 에서 어제 하루 종일 데 이 터 를 캡 처 하여 새 파일 로 덮어 씁 니 다:
 
cat  access.log | awk '$4 >="[14/Mar/2019:00:00:00" && $4 <="[14/Mar/2019:23:59:59"'  > 20190314-access.log

새 파일 을 덮어 쓰 지 않 으 려 면 '>' 을 사용 하 십시오. 대체위의 이 명령 은 직접 측정 하 는 것 이 효과 가 있 으 며, 아래 의 명령 도 시험 해 볼 수 있 지만, 나 는 해 보 았 지만 소 용이 없 으 니, 캡 처 하 는 데 문제 가 있 을 것 이다.
cat  access.log | awk '$4 >="14/Mar/2019:00:00:00" && $4 <="14/Mar/2019:23:59:59"'  > 20190314-access.log
cat  access.log | awk '$4 >="[14/Mar/2019:00:00:00" && $4  20190314-access.log

 
그리고 잘 라 낸 어제 하루 종일 의 로 그 를 분석 합 니 다.
 1. 총 방 문 량:
grep "keyword" access.log | awk "{print $NF}" | wc -l

ip 블랙리스트 를 걸 러 내 려 면 일부 ip 과 일치 하지 않 으 면 이렇게 할 수 있 습 니 다.
grep -vE "ip1|ip2" access.log | grep "keyword" | awk "{print $NF}" | wc -l

 2. 인터페이스 성공 방 문 량:
grep "keyword" access.log | grep -E  "  200  " | awk "{print $NF}" | wc -l
또는 상태 코드 는 20 으로 시작 합 니 다.
grep "keyword" access.log | grep -E  " 20\d?" |  awk "{print $NF}" | wc -l

3. 특정한 경로 의 평균 응답 시간 ($upstream response time 매개 변수) 을 통계 합 니 다.
grep "keyword" access.log | awk '{print  $NF}' | grep -P '\d{3}?$' | awk '{sum += $0;}END {if(sum==0)print 0;else print sum/NR}'
if , , 0, awk division by zero attempted, 0
총 방 문 량 - 인터페이스 성공 접근 량

좋은 웹페이지 즐겨찾기