[Linux] access_log 분석[220.23.175.93]

공정위 광고 문구 Ver 2.0

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

  • [Linux] ip 명령어 : 네트워크 인터페이스 및 설정 관리

    ip 명령어는 리눅스에서 네트워크를 관리할 때 사용되는 주요 도구로, 다양한 네트워크 작업을 수행할 수 있습니다. ip 명령어는 네트워크 인터페이스의 상태를 확인하거나 활성화 및 비활성화 할 수 있으며, IP 주소를 확인하거나 수동으로 추가 및 삭제하는 작업도 가능합니다. 또한 라우팅 테이블을 조회하고 경로를 추가하거나 제거하는 등의 라우팅 관리, ARP 테이블 확인 및 수정, 터널링 설정…

  • 리눅스 리다이렉션(Redirection)

    웹 상에서 리다이렉션(Redirection)은 웹 브라우저가 특정 URL을 요청했을 때, 미리 지정된 다른 URL로 재요청하게 하는 것을 말합니다. 재 연결의 사전적인 의미를 가진 Redirection은 리눅스에서 입력과 출력을 다루는 방식으로, 데이터를 파일로 보내거나 파일에서 읽어오는 작업을 수행할 수 있게 해줍니다. 리눅스 리다이렉션은은 키보드로 입력, 화면으로 출력을 하는 것이 아니라 파일로 출력하는 것을 의미합니다. 리다이렉션에는 표준…

  • certbot 명령어(인증서 관리 및 삭제)

    Alma Linux에서 이 사이트에 Certbot 설치 및 갱신 설치를 해 진행하는 중 인증서 삭제 후 재설치를 할 이유가 생겨 삭제와 함께 나머지 Certbot 명령어 사용법에 대해 체크하게 되었습니다. certbot 명령어는 다음 페이지에서 확인했습니다. ✅ certbot 명령어: 인증서 관리 사용 중인 인증서 목록을 보려면 다음 명령어를 입력합니다. ✅ 기존 인증서 재생성 및 업데이트 certonly…

  • WAS와 WEB 서버 차이

    웹서버는 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에 요청을 하면 요청을 받아 정적 콘텐츠를 제공하는 서버입니다. 정적 콘텐츠는 HTML, CSS, 이미지, 파일 등의 콘텐츠가 제공됩니다. WAS란 DB 조회 또는 다양한 로직의 처리가 요구되는 동적 콘텐츠를 제공하기 위해 만들어진 Application 서버입니다. 웹서버란 무엇인가? WAS(Web Application Server)란? ※서블릿(Servlet) 서블릿(Servlet)은 자바로 작성된 웹 애플리케이션의 구성 요소 중 하나입니다….

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

    ✅ 리눅스 SSH 정의 SSH(Secure Shell)란 원격 호스트 컴퓨터로 접속하기 위해 사용되는 인터넷 프로토콜입니다. 보안 쉘은 기존 유닉스 시스템의 텔넷은 암호화가 이루어지지 않아 계정 정보가 해킹에 노출되는 위협이 있었기 때문에, 1995년 암호화 기능을 추가해서 나온 프로토콜입니다. 리눅스 SSH는 암호화 기법을 사용하며, 쉘로 원격 접속 후 리눅스 커멘드 라인에서 작업을 하게 되며, 기본 포트…

  • PHP-FPM이란 | PHP-FPM 설치 및 설정

    PHP-FPM을 시작하기 전에 CGI에 대해 알아야 합니다. CGI(Common Gateway Interface)는 웹 서버와 외부 프로그램 사이의 상호작용을 위한 표준 프로토콜이며, 웹 서버는 사용자 요청에 따라 동적으로 콘텐츠를 생성하거나 데이터를 처리할 수 있습니다. 요청이 들어올 때 마다 각각의 요청으로 CGI가 생성되게 되어 서버의 속도는 느려질 수 밖에 없습니다. CGI(Common Gateway Interface)의 업그레이드 버전으로 서버의 성능을…

답글 남기기

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

Prove your humanity: 2   +   10   =