반응형
톰캣 Accesslog 추출
shell console에서는 보통 grep, awk 를 사용하여 access call 유입량에 대한 통계를 진행한다.
awk 만으로도 통계를 위한 log 추출이 가능하지만 grep과 함께라면 더욱 다양한 사용이 가능하다.
이번시간에는 실질적인 예제를 가지고 grep과 awk 를 다뤄보고자 한다.
* 지난번과 동일한 예제 샘플파일.
awk 테스트를 위한 accesslog 샘플파일
https://github.com/elastic/examples/blob/master/Common%20Data%20Formats/apache_logs/apache_logs 여기 있는 파일을 기준으로 테스트 및 예제진행.
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 |
댓글