[Linux] access_log 분석[220.23.175.93]

access_log 분석을 통해 웹 로그가 들어오는 것을 파악.

✅ access_log 분석 기본

httpd.conf에 이미 설정되어 있는 값에 대한 필드 분석.

www.domain.com $1  211.243.123.105$2 - - [24/Mar/2017:10:35:16$5 +0900]$6 "GET$7 /layout/header/default/image/header_img_01.png$8
 HTTP/1.1"$9(접속방식)  200$10(요청에대한 상태-403등등) 1103$11(용량) "https://gddfca.or.kr/index.php"$12접속 경로 "Mozilla/5.0$13 (compatible; MSIE 9.0; Windows$14 NT$15 6.1; WOW64; Trident/5.0; ; rv
 :11.0) like Gecko" KR$NF     <= $필드들은  틀릴  있음. 

✅ 명령어 조합을 통한 access_log 분석

cat /usr/local/apache/logs/access_log | grep '\[07/Jul/2021' | awk '{print $2, $NF}' | sort -r  | uniq -c | sort -r  | head 

cat /usr/local/apache/logs/access_log-20201007 | grep '\[01/Sep' | awk '{print $2, $NF}'  | grep KR | wc -l 
cat /usr/local/apache/logs/access_log-20201007  | grep '\[01/Sep' |  grep -v KR  | wc -l 
cat /usr/local/apache/logs/access_log-20201007  | grep '\[01/Sep' | awk '{print $2, $NF}'    | wc -l 

1.1 access_log 분석: 날짜+시간대,  awk $IP,국가

cat /usr/local/apache/logs/access_log | grep '\[07/Jul//2021' | sed -n '/2021:10:00/,/2021:14:20/p' | awk '{print $2 , $NF}' | sort -r  | uniq -c | sort -r | head 

cat /usr/local/apache/logs/access_log | grep '\[07/Jul/2021' | sed -n '/2021:10:05/,/2020:10:13/p' | awk '{print $2, $12, $NF}' | sort -r  | uniq -c | sort -r | head

1.2 sed 시간대 활용

# 1.2.1 - sed 명령어 - 15시 00~05분까지의 시간 
sed -n  '/2021:15:00/,/2020:15:05/p' /usr/local/apache/logs/access_log | grep '\[07/Jul/2020'
# 1.2.2 위 명령어의 변형
cat /usr/local/apache/logs/access_log | sed -n '/2020:18:00/,/2020:18:05/p' > 00.txt
# 1.2.3
cat   /usr/local/apache/logs/access_log | grep '\[07/Jul/2021' | sed -n  '/2021:10:30/,/2021:14:00/p' | awk '{print  $2,  $NF}' | sort -r  | uniq -c | sort -r | head -20

1.3 [ ] 정규식 및 cut 활용

# 1.3.1 정규식 활용  
tail -n 10 /usr/local/apache/logs/access_log | grep '\[01/Jul/2020:1[0-5]' <= [0~5까지의 숫자가 포함된 모든] 
# 1.3.2 cut 명령어 활용
tail -10000  /usr/local/apache/logs/access_log | grep '\[20/Jul/2020' | cut -d":" -f  2,3 | sort | uniq -c | sort -r
# 1.3.3 cut 명령어 활용 - 당일 하루 중 접속이 제일 많은 시간대를 구한다.  / -f 필드를 2만 한다면 당연히 하루 중 접속이 많은 시간대를 알수 있겠다.
cat /usr/local/apache/logs/access_log | grep '\[07/Jul/2021' | cut -d":" -f  2,3 | sort | uniq -c | sort -r | head

cat /usr/local/apache/logs/access_log | grep '\[19/Oct/2020' | cut -d":" -f  2 | sort | uniq -c | sort -r | head

✅ 활용

cat   /usr/local/apache/logs/access_log | grep '\[07/Jun/2021' | sed -n   '/2021:13:00/,/2021:15:30/p' | awk '{print $1, $NF}' | sort -r  | uniq -c | sort -r | head -20

grep testdomain.com /usr/local/apache/logs/access_log | grep '\[24/May/2021' | sed -n   '/2021:13:00/,/2021:15:30/p' | awk '{print $1, $NF}' | sort -r  | uniq -c | sort -r | head -20

lsof -p 119164 | awk '{print $NF}' | sort -r | uniq -c | sort -r > mylog.txt

✅ HTTP 상태 코드

HTTP 상태 코드[RFC 2616 http/1.1] RFC 2068은 개정판이다.

Similar Posts

  • Apache&Nginx에 Varnish Cache 설치 및 설정

    기존 Apache와 Nginx 조합의 서버에 Varnish Cache를 추가로 설치하고 적용 해 보도록 하겠습니다. Nginx에 Varnish Cache를 추가로 설정하는 작업이기 때문에 기존의 서버에 적용된 사항을 체크 해 보겠습니다. AlmaLinux release 9.4 버전에 Apache/2.4.57, nginx/1.28.0 , PHP 8.3.22를 사용하기 때문에, 설치는 varnish, collectd-varnish, varnish-modules 총 3개의 모듈 설치를 진행합니다. 목차✅ access_log 분석 기본✅ 명령어 조합을…

  • 리눅스 SSH 정의 및 기본 설정

    목차✅ access_log 분석 기본✅ 명령어 조합을 통한 access_log 분석1.1 access_log 분석: 날짜+시간대,  awk $IP,국가1.2 sed 시간대 활용1.3 [ ] 정규식 및 cut 활용✅ 활용✅ HTTP 상태 코드✅ 리눅스 SSH 정의 SSH(Secure Shell)란 원격 호스트 컴퓨터로 접속하기 위해 사용되는 인터넷 프로토콜입니다. 보안 쉘은 기존 유닉스 시스템의 텔넷은 암호화가 이루어지지 않아 계정 정보가 해킹에 노출되는…

  • 리눅스 chgrp 명령어

    리눅스 chgrp 명령어는 파일 및 디렉토리의 그룹을 변경할 수 있는 명령어이며, Change Group의 약자입니다. 목차✅ access_log 분석 기본✅ 명령어 조합을 통한 access_log 분석1.1 access_log 분석: 날짜+시간대,  awk $IP,국가1.2 sed 시간대 활용1.3 [ ] 정규식 및 cut 활용✅ 활용✅ HTTP 상태 코드✅ 리눅스 chgrp 명령어 기본 사용법 chgrp 명령어에서 옵션은 거의 사용되지 않습니다. ✅…

  • echo 명령어: From 확장과 인용

    echo 명령어는 문자열을 그대로 출력해 주는 명령어이다. echo 명령어는 프롬프트에서 사용하는 일은 거의 없으며, 쉘 스크립트 작성 시에 자주 사용하는 명령어이다. 표준 출력 상에 해당 텍스트 인자를 표시한다. 목차✅ access_log 분석 기본✅ 명령어 조합을 통한 access_log 분석1.1 access_log 분석: 날짜+시간대,  awk $IP,국가1.2 sed 시간대 활용1.3 [ ] 정규식 및 cut 활용✅ 활용✅ HTTP…

  • Apache MPM Module: Prefork, Worker, Event 3가지 방식 비교 및 Event Module 최적화 설정

    Apache MPM Module은 Apache HTTP Server의 중요한 부분으로, 서버의 요청 처리 방식을 결정합니다. MPM(Multi-Processing Module)은 서버의 성능과 확장성에 큰 영향을 미치는 역할을 합니다. 목차✅ access_log 분석 기본✅ 명령어 조합을 통한 access_log 분석1.1 access_log 분석: 날짜+시간대,  awk $IP,국가1.2 sed 시간대 활용1.3 [ ] 정규식 및 cut 활용✅ 활용✅ HTTP 상태 코드 ✅ MPM Module(Multi-Processing…

  • 리눅스 서버 시간 동기화: timedatectl(CentOS7 이상)

    리눅스에서 날짜 및 시간 설정이 필요한 이유는 서버 운영 중 시간이 잘못되면, 입력되는 DB데이터, 로그 데이터, 웹 서버에 접속한 기록 등의 시간이 맞지 않는 경우가 발생할 수 있기 때문입니다. 리눅스 서버 시간 동기화를 사용하는데 있어 OS는 두 개의 시계를 가지고 있습니다.시스템 시계(소프트웨어 시계), 하드웨어 시계(실시간 시계, BIOS 시계)입니다. 목차✅ access_log 분석 기본✅ 명령어…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 9   +   3   =