[AWS EC2] 48. ELB Access Log

2021. 1. 4. 09:15AWS

반응형

ㅇ 액세스 로그

    > ELB의 옵션 기능 중 하나로, 로드 밸런서에 대한 로그를 수집하여 지정한 S3 버킷에 저장

    > 기본적으로 비활성화되어 있으며, 활성화시킬 경우 비용 발생

 

ㅇ 액세스 로그 활성화

    > [EC2 서비스] - [로드밸런서] - [설명] 탭 최하단에 있는 "속성"에서 [속성 편집] 선택

 

    > 액세스 로그 활성화 탭을 통해 활성 여부 선택 가능

 

    > S3의 AWSLogs 폴더 내부에 CloudTrail Log가 저장됨

 

ㅇ 액세스 로그 분석

    > 서버로 액세스 로그 복사

        aws s3 cp s3://(버킷 경로)/ /(로그 저장 경로) --recursive --exclude "*" --include "*(원하는 시간: ex. 20201029T08 - 2020년 10월 29일 08시)*"

 

    > .gz으로 묶인 압축 모두 해제

        gzip -d *.gz

 

    > .log로 끝나는 모든 파일들을 result.txt라는 하나의 텍스트로 저장

        cat *.log > result.txt

 

    1) 서버를 통한 분석

        > 전체 로그를 시간순으로 정렬

            head result.txt | sort -nk 2

 

        > 4XX에러, 5XX에러를 발생시킨 로그 확인

            cat result.txt | awk '$9>399 {print $2, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15}' | sort -nk 1

 

        > 해당 IP가 존재하는 5XX에러를 발생시킨 로그 확인

            egrep '(IP 1)|(IP 2)' result.txt | awk '$9>499 {print $2, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15}' | sort -nk 1 > result.txt

 

    2) 액셀을 통한 분석

        > 앞서 생성한 result.txt를 로컬 PC에 저장


        > 텍스트의 모든 내용을 복사해 액셀에 붙여넣기

 

        > [데이터] - [텍스트 나누기] - [구분 기호로 분리됨] - [공백 선택] - [마침]을 통해 데이터분할

 

        > 다음과 같이 로그가 분할된 것을 확인 가능

 

        > 이 중에서 Ctrl + F를 통해 원하는 기록 검색

        * 액세스로그 포맷은 다음 링크를 통해 확인 가능

 

반응형