인프라 엔지니어의 교과서 ch01-01 요약

업데이트:

1.1 로그의 기본을 파악하자

1.1.1 로그는 언제, 누가, 어디에 수집하는가

로그(log)

  • 소프트웨어를 실행한 후 나타나는 경과 정보를 출력한 것,
  • 즉, 프로그램이 실행되었을 때 사전에 정해진 출력위치에 프로그램의 처리정보를 기록한 것.
  • 로그는 컴퓨터의 행동 기록


CentOS에서 로그 출력 위치

$ cd /var/log/

웹서버 아파치(Apache)에서 로그 출력 주요 흐름

  1. OS에서 아파치 실행
  2. 아파치가 실행시점에 설정 파일 정보 읽음. 여기서 로그 출력 위치 확인.
  3. 로그 출력 위치에 아파치가 실행되었을때의 로그 정보 출력
  4. (아파치가 실행되어 사용자가 웹사이트에 액세스한다고 가정.)
  5. 사용자가 웹사이트에 액세스하면 아파치는 이를 감지하여 사용자가 요청한 페이지를 응답하고, 그와 동시에 언제, 누가, 무엇을 했는지 로그 정보로 출력함.

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
  • 기본 사이트 설정 :