로그 아키텍처
로그란
- 시스템에서 발생한 이벤트를 기록한 파일
- 로그는 시스템에서 발생된 문제의 원인 파악 또는 침입 경로 조회가 가능함
- 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에 의해 발생되는 메시지 |
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 옵션: 특정 부트 번호에 해당하는 저널 데이터 조회
'쿠버네티스 교육 > 강의 내용 정리' 카테고리의 다른 글
220516_2_리눅스 서비스_SSH (0) | 2022.05.16 |
---|---|
220516_1_리눅스 서비스_RPM, YUM (0) | 2022.05.16 |
220512_4_리눅스_사용자 및 그룹 관리-chage, who, sudo, chown (0) | 2022.05.13 |
220513_3_ 실습_리눅스_그룹 관리-groupadd (0) | 2022.05.13 |
220513_2_ 리눅스_사용자 및 그룹 관리-usermod, userdel (0) | 2022.05.13 |