[Infra] 로그 분석 - 로그를 읽는 기술
업데이트:
로그 분석
참고링크
syslog는 로그의 기본
- 유닉스 계열에서 로그는 syslog가 기본임.
- 처음에는 단순히 메일 서버 전용 로거(logger) 프로그램이었음.
- 개발자들은 이것이 편리하다고 생각하여 다른 애플리케이션 에서도 로그 정보를 출력하엿고 어느새 표준이 됨
-
이렇게 표준이 된 syslog를 RFC 3164로 체계적으로 정리한 것이 syslog 프로토콜이다.
- 행 수 세기 : wc -l
- grep 결과 세기 : grep -c
- 오류가 있는지 확인 : grep -v
집약해서 갯수 세기 : uniq -c
매시간마다 요청수를 세는 방법은 로그에서 분초를 제외한 일 시 부분을 추출해서 동일한 것을 세면 된다. grep 으로 패턴에 맞는 부분만 추출 하려면 -o 옵션 사용. uniq -c 를 이용하면 센 개수와 일시가 함께 표시됨.
프로세스 치환
- 프로세스 치환 : 명령의 실행 결과를 파일로 다룰 수 있는 기능.
ex1) file1, file2가 있고 각각 정렬한 결과의 차이를 diff로 조사하고자 할 때, 다음과 같이 정렬한 결과를 다른 파일로 저장한 후 이것을 diff로 확인하면 간단함.
$ sort file1 > file1.sorted
$ sort file2 > file2.sorted
$ diff file1.sorted file2.sorted
프로세스 치환을 이용하면 다음과 같이 한번에 실행 가능
$ diff <(sort file1) <(sort file2)
위와같이 “<” 같은 기법으로 명령의 실행 결과를 파일을 이용해 다른 명령으로 전달 할 수 있는데,
로그로 출력해야할 항목
언제(when) : 일시
누가(who) : 사용자 ID
어디서(where) : 소스 IP 주소
무엇을 이용해서(How) : UserAgent
무엇을 하고(what) : 요청 URL
어떻게 됐는지(what) : 처리결과
이용자의 유입 경로 추적 : Referer
관련된 요청/응답을 엮기 : 세션 ID