시스템 로그
시스템에서 일어나는 모든 사건이나 이벤트 등은 각 서비스별로 기록되는데, 이러한 기록들을 로그(log)라 부른다. 로그 분석은 시스템 관리 및 보안에 상당히 중요한 역할을 수행하므로 숙지해야 할 영역이다.
리눅스 초기에는 로그 기록과 관련된 패키지로 syslog라는 패키지를 사용하였다. syslogd라는 데몬이 /etc/syslog.conf 설정 파일을 기반으로 서비스별 로그 파일을 /var/log 디렉터리에 생성하였다. 최근 리눅스 배포판에서는 rsyslog 패키지로 대체되었다. rsyslog는 기존에 사용하던 syslog와 유사하게 rsyslog 데몬이 /etc/rsyslog.conf 설정 파일을 기반으로 서비스별 로그 파일을 /var/log 디렉터리에 생성한다.
rsyslog
rsyslog는 rsyslog 데몬이 동작하면서 로그를 기록하고, 관련 환경 설정은 /etc/rsyslog.conf 파일을 통해서 제어한다.
rsylog 주요 파일
파일명 | 설명 |
/etc/rsylog.conf | rsyslogd 데몬의 환경 설정 파일이다. |
/etc/sysconfig/rsylog | rsyslogd 데몬이 실행과 관련된 옵션이 설정되는 파일이다. |
/usr/sbin/rsylogd | 실제 rsyslogd 데몬 실행 명령이다. |
/usr/lib/systemd/system/rsylog.service | systemctl 명령에 의해 제어되는 유닛 파일이다. |
/etc/rsyslog.conf 파일
■ 기본 구성 형식
facility.priority action
facility는 일종의 서비스를 의미하는데 , 메시지를 발생시키는 프로그램의 유형이라고 볼 수 있다. priority는 위험의 정도를 나타내는데, 설정한 수준을 포함해서 높으면 메시지를 보낸다. action은 메시지를 보낼 목적지나 행동들에 관한 설정으로 보통 파일명이나 아이디 등을 적는다.
■ facility의 종류
facility | 설명 |
cron | cron, at과 같은 스케줄링 프로그램이 발생한 메시지 |
auth, security | login과 같이 인증 프로그램 유형이 발생한 메시지 |
authpriv | ssh와 같이 인증을 필요한 프로그램 유형이 발생한 메시지로 사용자 추가 시에도 메시지가 발생함 |
daemon | telnet, ftp 등과 같이 여러 데몬이 발생한 메시지 |
kern | 커널이 발생한 메시지 |
lpr | 프린트 유형의 프로그램이 발생한 메시지 |
mail 시스템이 발생한 메시지 | |
mark | syslogd에 의해 만들어지는 날짜 유형 |
news | 유즈넷 뉴스 프로그램 유형이 발생한 메시지 |
syslog | syslog 프로그램 유형이 발생한 메시지 |
user | 사용자 프로세스 |
uucp | UUCP(UNIX to UNIX Copy Protocol) 시스템이 발생한 메시지 |
local0~local7 | 여분으로 남겨둔 유형 |
* | 모든 facility를 의미 |
■ priority의 종류
priorty | 설명 |
none | 지정한 facility를 제외. 보통 앞에 다른 facility에 대한 설정을 하고 ;뒤에 특정한 facility를 제외할 때 사용 |
debug | 프로그램을 디버깅할 때 발생하는 메시지 |
info | 통계, 기본 정보 메시지 |
notice | 특별한 주의를 필요하나 에러는 아닌 메시지 |
warning, warn | 주의가 필요한 경고 메시지 |
error, err | 에러가 발생하는 경우의 메시지 |
crit | 크게 급하지는 않지만 시스템에 문제가 생기는 단계의 메시지 |
alert | 즉각적인 조정을 해야 하는 상황 |
emerg, panic | 모든 사용자들에게 전달해야 할 위험한 상황 |
■ action의 종류
action | 설명 |
file | 지정한 파일에 로그를 기록, /로 시작해서 절대 경로를 기입 (예 /var/log/messages) |
@host | 지정한 호스트로 메시지를 UDP 기반으로 전달 (예 *.* @192.168.12.22) |
@@host | 지정한 호스트로 메시지를 TCP 기반으로 전달 (예 *.* @@192.168.12.22) |
user | 지정한 사용자가 로그인한 경우 해당 사용자의 터미널로 전달 (예 “:omurmsg:root, posein, yuloje”) |
* | 현재 로그인되어 있는 모든 사용자의 화면으로 전달 (예 “:omurmsg:*”) |
콘솔 또는 터미널 | 지정한 터미널로 메시지를 전달(예 /dev/tty2 ) |
사용 예
① 모든 facility가 발생하는 메시지 중에 crit 수준의 메시지만 /var/log/critical 파일에 기록하는데 커널이 발생하는 메시지는 제외한다.
*.=crit;kern.none /var/log/critical
② 모든 emerg 수준 이상의 문제가 발생하면 모든 사용자에게 메시지를 전달한다.
*.emerg :omusrmsg:*
③ 인증 관련 로그를 root 및 j9m 사용자의 터미널로 전송한다.
authpriv.* :omusrmsg:root,j9m
④ 인증 관련 로그를 /dev/tty2으로 전송한다.
/dev/tty2
⑤ mail 관련한 모든 정보는 /var/log/maillog에 기록하는데, info 수준의 로그는 제외한다.
mail.*;mail.!=info /var/log/maillog
⑥ uucp 및 news에서 발생하는 crit 수준 이상의 메시지는 /var/log/news에 기록한다.
uucp,news.crit /var/log/news
참고자료
CentOS 7으로 리눅스마스터 1급 정복하기
'Linux' 카테고리의 다른 글
Linux - 로그 관련 명령어 : lastlog (0) | 2022.10.12 |
---|---|
Linux - 로그 관련 명령어 : last (0) | 2022.10.12 |
Linux - 레드햇 온라인 패키지 관리기법 : yum (0) | 2022.10.12 |
Linux - RAID(MD) 구성 명령어: mdadm (0) | 2022.10.12 |
Linux - 레드햇 패키지 관리기법 : RPM (0) | 2022.10.12 |