Linux

Linux - 시스템 로그 관련 패키지 : rsyslog

j9m 2022. 10. 12. 17:37
반응형

시스템 로그

시스템에서 일어나는 모든 사건이나 이벤트 등은 각 서비스별로 기록되는데, 이러한 기록들을 로그(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 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급 정복하기 
반응형