728x90

로그 아키텍처

 

로그란

 

- 시스템에서 발생한 이벤트를 기록한 파일

- 로그는 시스템에서 발생된 문제의 원인 파악 또는 침입 경로 조회가 가능함

- systemd 시스템에서 로그는 rsyslogd와 systemd-journald 두 데몬에 의해 관리됨

- systemd에서는 systemd-journald를 통해 시스템에서 발생한 모든 로그를 수집하고 데이터 형식으로 관리함

- 따라서 원하는 내용의 로그를 쉽고 빠르게 검색이 가능함

 

 

로그 파일 저장 흐름도

 

 

 

로그 파일의 위치: rsyslogd

 

1) syslogd: rsyslogd에 의해서 수집되는 로그

2) /var/log 디렉토리: 로그 종류 별로 텍스트 파일의 형태로 저장됨

 

파일 설명
/var/log/messages 대부분의 로그 기록
(인증, 메일, cron, 부팅, 디버깅과 관련된 로그 제외)
/var/log/secure 인증과 관련된 로그 기록
/var/log/maillog 메일과 관련된 로그 기록

 

 

 

 

 

rsyslogd

 

1) 유닉스나 리눅스 계열 시스템에서 로그를 기록하기 위한 표준 프로토콜인 syslog를 사용하여 로그를 저장하는 프로세스

2) syslog에 비해 로그 전송 시 암호화 옵션 등을 사용하여 보안이 강화되었고 로그 처리 및 저장 성능이 우수함

3) /etc/rsyslog.conf 파일을 사용하여 저장할 로그의 종류 및 우선 순위를 설정함

4) 수신한 로그는 /var/log 디렉토리에 각 파일로 저장함

 

 

5) syslog-facility 설명

 

facility 설명
* 모든 서비스
auth 로그인과 같이 사용자 인증에 관한 메시지
authpriv 보안 및 승인에 관한 메시지
cron crond 데몬과 atd 데몬에 의해 발생하는 메시지
 daemon telnet, ftp 등과 같은 데몬에 의한 메시지
kern kernel에 의한 메시지로서 커널 메시지라고 함
lpr 프린터 데몬인 lpd에 의해 발생되는 메시지
mail sendmail 또는 qmail 등의 메일에 의해 발생되는 메시지
news innd 등과 같은 뉴스 시스템에 의해 발생되는 메시지
uucp UUCP 하위 시스템
user 사용자에 의해 생성된 프로세스
syslog syslogd에 의해 발생되는 메시지
local0 ~ local7 시스템 부팅 메시지 기록, 기타 여분 서비스에 사용하기 위함

 

 

systemd-journald

 

저널 데이터 조회: journalctl [옵션] [인자 값]

 

1. 기본 사용: journalctl

 

- 현재 저장된 저널 데이터를 순차적으로 출력

- 시간 순으로 출력됨

- 가장 먼저 출력되는 데이터는 시스템이 부팅 될 때 발생하는 이벤트

 

 

2. 최근에 발생한 저널 데이터 출력: journalctl -r

 

- 최근의 저널 데이터부터 역순으로 로그를 조회할 경우

 

 

3. 저널 데이터 조회

 

1) 시스템 재부팅으로 분리된  저널 데이터 조회: journalctl --list-boots

2) 특정 부트 번호에 해당하는 저널 데이터 조회: journalctl -b

 

 

 

[실습 1] cron.err의 메시지가 발생할 경우 /var/log/cron1로 저장하도록 설정

 

1. /etc/rsyslog.conf 파일에서 설정

 

 

2. 변경한 설정 값이 적용되도록 서비스 재시작

 

 

3. 로그를 발생시켜 생성된 로그 파일 확인

 

 

 

[실습 2] journal 내용 영구 저장

 

* 시간이 지날 수록 용량이 늘어나기 때문에 제약 조건 필요, 아래 조건을 만족하지 못하면 저널 데이터는 더이상 저장되지 않음

 

1) 현재 파일 시스템 전체 사이즈의 10퍼센트를 초과하면 안됨

2) 현재 파일 시스템의 여유 공간 중 15퍼센트를 초과하면 안됨

 

 

1. 저널 파일이 영구 저장되도록 설정

 

1) 저널 데이터를 저장할 /var/log/journal 디렉토리 생성

2) 기존의 /run/log/journal 디렉토리와 같이 소유권 변경, 확장 권한인 setgid 설정

3) 변경된 디렉토리를 인식할 수 있도록 systemd-journald 데몬 재시작

- /var/log/journal 디렉토리에 저널 데이터가 저장되고 시스템이 재부팅되어도 유지됨

 

 

2. 재부팅 후에도 저널 파일이 저장되어 있는 것을 확인할 수 있음

 

1) 시스템을 재부팅하게 되면 새로운 부트 번호(boot-id)가 생성됨

2) --list-boots 옵션: 시스템 재부팅으로 인해 분리된 저널 데이터를 각각 조회할 수 있음

- 어느 부트 번호가 어느 시간대의 저널 데이터를 저장하고 있는지 확인할 수 있음

3) -b 옵션: 특정 부트 번호에 해당하는 저널 데이터 조회

 

728x90

+ Recent posts