인프라 엔지니어의 교과서 ch01-01 요약
업데이트:
1.1 로그의 기본을 파악하자
참고링크
1.1.1 로그는 언제, 누가, 어디에 수집하는가
로그(log)
- 소프트웨어를 실행한 후 나타나는 경과 정보를 출력한 것,
- 즉, 프로그램이 실행되었을 때 사전에 정해진 출력위치에 프로그램의 처리정보를 기록한 것.
- 로그는 컴퓨터의 행동 기록
CentOS에서 로그 출력 위치
$ cd /var/log/
웹서버 아파치(Apache)에서 로그 출력 주요 흐름
- OS에서 아파치 실행
- 아파치가 실행시점에 설정 파일 정보 읽음. 여기서 로그 출력 위치 확인.
- 로그 출력 위치에 아파치가 실행되었을때의 로그 정보 출력
- (아파치가 실행되어 사용자가 웹사이트에 액세스한다고 가정.)
- 사용자가 웹사이트에 액세스하면 아파치는 이를 감지하여 사용자가 요청한 페이지를 응답하고, 그와 동시에 언제, 누가, 무엇을 했는지 로그 정보로 출력함.
1.1.2 syslog는 로그의 기본
- syslog는 로그 애플리케이션으로 개발됨.
syslog의 기본 기능
- 로그 쓰기
- 로그 수집
1.1.3 syslog 명령으로 출력해 보자
$ ls -al
- -l : 리스트 출력
- -a : 모든 것(all)
$ ps ax | grep syslog
- ps : 프로세스의 현재 상태 출력
- x : 호출한 사용자가 소유한 모든 프로세스 출력
- a : 단말(tty)을 갖는 모든 프로세스를 목록으로 출력
- |(파이프) : 이어서 명령을 실행
- grep : 파일이나 명령으로 출력한 문자열 정보에서 매개변수로 지정한 문자열을 검색해서 검색된 행을
$ tail -f /var/log/messages
- tail : 파일의 끝부분을 출력하는 명령
- -f : 파일 내용을 감시하다 갱신된 내용이 생기면 실시간으로 표시한다는 의미
$ logger -p mail.info mail-log
- 위와 같은 명령은 로그메시지 mail-log의 facility를 mail로, priority를 info로 설정한 로그정보를 syslog에 전달
- logger : syslog에 로그 정보를 전달하는 명령
- p : 해당 로그 정보의 facility와 priority를 지정할 수 있음.
1.1.4 syslog의 설정 확인
- rsyslog 설정파일 : /etc/rsyslog.conf
1.1.5 로그에서 필요한 정보 찾아보자
- 로그를 볼 때 방대한 양의 로그파일을 열어 차례를 보는 일은 거의 없음.
- 문제가 있을때는 로그 파일에서 필요한 데이터를 뽑고 필요한 정보를 확인(이를 위해, grep 명령 사용)
- cat : 지정한 파일 내용을 모두 출력
예)
$ cat /var/log/messages | grep 'May 25 09'
$ grep 'May 25 09' /var/log/messages
1.2.2 로그를 출력해보자 - 아파치
- 아파치 기본설정 : /etc/httpd/conf/httpd.conf
- 기본 사이트 설정 :