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

업데이트:

1.1 로그의 기본을 파악하자

참고링크

운영체제 프론트엔드 백엔드 데이터베이스 인프라
리눅스구조 js필터 아파치에러로그 행삭제 아파치스쿱
프로세스 헬로월드 웹서버개념 ES기초 로그분석
네임스페이스 프로젝트생성 아파치설치 MySQL기초 beeline
디렉토리 헤더생성 flask연동 큐브리드 하둡기초
리다이렉션 async-get 장고MsSQL연결 null공백 나이파이
쓰레드 async-post 장고MySQL연결 MySQL설치(win) 백본
라즈베리파이설치 로그인페이지 장고inpectdb MySQL테이블생성 제플린
OSI7계층소개   장고read   SSL인증
OSI1계층   장고insert   커버로스
OSI2계층   장고put   도커개념
OSI3계층   장고del   도커설치
OSI4계층   flask한글요청   도커기초
OSI5,6,7계층       도커이미지
DNS서버       컨테이너네트워크
DHCP       도커API
bashrc       도커컴포즈
bash       도커볼륨
ifconfig       장고이미지
소켓프로그래밍       도커postgre
리눅스유저생성       도커이미지삭제
netstat포트열기       도커Redis
컴파일러       k8s구조
운영체제vs커널       k8s설치
작업스케쥴링       k8s서비스배포
디스크추가       POD네트워크
aws유저추가       퍼시스턴트볼륨
기초명령어       k8s에러
포트번호        

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