본문 바로가기
리눅스

[log분석 2] 톰캣 Accesslog 통계 count 추출 (feature awk grep)

by 파워킴 2021. 7. 14.
반응형

톰캣 Accesslog 추출

shell console에서는 보통 grep, awk 를 사용하여 access call 유입량에 대한 통계를 진행한다.
awk 만으로도 통계를 위한 log 추출이 가능하지만 grep과 함께라면 더욱 다양한 사용이 가능하다.

 

이번시간에는 실질적인 예제를 가지고 grep과 awk 를 다뤄보고자 한다.

 

* AWK 사용법 <==

 

* 지난번과 동일한 예제 샘플파일.

awk 테스트를 위한 accesslog 샘플파일

https://github.com/elastic/examples/blob/master/Common%20Data%20Formats/apache_logs/apache_logs 여기 있는 파일을 기준으로 테스트 및 예제진행.

apache_logs.txt
2.26MB

 

 

 

ex1 특정시간대 로그 추출하기.

* 로그를 보면 시간대가 [17/May/2015:10:05:03 +0000] ~ [20/May/2015:21:05:15 +0000] 까지이다.

이중 19/May/2015 날짜의 오전 10 ~ 12시 특정시간을 추출하고자 한다.

 

* 특정일을 추출하려면 아래와 같다. 

 $> cat apache_logs.txt| grep -E "19/May/2015"

* 그러나 측정시간대를 추출하려면 10:00 ~ 12:59 분까지의 모든 로그를 추출해야 한다.

$> cat apache_logs.txt| grep -E "19/May/2015:1[0-2]"

 

ex2 특정시간대 별 count 


$> cat apache_logs.txt | grep -oE "[0-3][0-9]/May/2015:[0-1][0-2]" | sort | uniq -c | awk '{print $2"\t"$1}' | sort

 

 

ex3 IP별 count

$> cat apache_logs.txt| awk '{ print $1 }' | sort | uniq -c | sort -nr

 

ex4 IP별 초당 count

* 간혹  부하가 발생하는 IP를 찾고자 하는경우가 있다. 유독 많은 량의 트래픽을 호출하는 IP를 찾을때 ..

$> cat apache_logs.txt | awk -F" " '{ print $1"\t"$4 }' | sort | uniq -c | sort -nr | more

 

ex5 경로별(인터페이스별) count

$> cat apache_logs.txt | awk -F" " '{ print $7 }' | sort | uniq -c | sort -nr

 

 

마무리

많은 다양한 경우의 유입량에 대한 추출을 서버 유지보수시 요구된다.

이때에는 두가지만 알면 된다. grep, awk ..

 

반응형

'리눅스' 카테고리의 다른 글

[jstat] 메모리 모니터링.  (0) 2021.07.14
[로그분석 1] awk 기본사용법  (0) 2021.07.13
[ CentOS 7 ]최소 설치 하기  (0) 2017.03.18
[CentOS] 사용자 계정 다루기.  (1) 2017.02.22
리눅스 소스 받아 인스톨 하기.  (0) 2016.03.28

댓글