2015. 4. 1. 15:10 :: 운영체제

1. syslog의 개념

솔라리스에서는 시스템의 활동이나 이벤트를 추적하기 위해서 로깅 기능을 제공합니다.

syslog는 시스템에서 발생한 다양한 이벤트를 추적하고 메시지를 생성하고,

이러한 메시지를 통해 시스템의 이상 유무를 판단할 수 있습니다.

syslog 기능은 아래와 같이 구성되어 있습니다.

- syslog 함수

- syslogd 데몬

- syslog.conf 구성파일

 

2. /etc/syslog.conf

syslog.conf 파일은 syslog 설정 파일로서 특정 이벤트가 발새알 때 해당 메시지를 어디로 전달할 것인지를 정의하는

중요한 구성 파일입니다. 아래는 기본적인 syslog.conf 파일의 내용입니다.

syslog.conf 파일은 각각 라인 단위로 처리가 되며,

한 라인은 Selector 필드와 Action필드로 구분됩니다.

Selector 필드는 facility와 level로 나뉘며, facility와 level은 점(.)으로 구분합니다.

반드시 Selector 필드와 Action 필드는 두 개의 탭으로 띄워야 합니다.

facility는 이벤트 메시지를 생성하는 주 분류이며 level은 이벤트 메시지의 위험 수준에 따른 중요도를 나타냅니다.

Selector 필드는 이런 메시지의 분류와 중요도를 나타내며,

Action 필드는 메시지를 어디로 전달할지 결정하게 됩니다.

 

1) Selector 필드

 

2) level의 종류

 

3) Action 필드

 

3. 기본 syslog.conf 파일 구성

/etc/syslog.conf 파일에 기본적으로 메시지를 남기도록 되어 있는 라인은 아래와 같습니다.

1) *.err;kern.notice;auto.notice    /dev/sysmsg

- 모든 facility의 err 레벨 이상

- kern facility의 notice 레벨 이상

- auth facility의 notice 레벨 이상

/dev/sysmsg 파일에 메시지를 저장합니다.

2) *.err;kern.debug;daemon.notice;mail.crit    /var/adm/messages

- 모든 facility의 err 레벨 이상

- kern facility의 debug 레벨 이상

- daemon의 notice 레벨 이상

- mail의 crit 레벨 이상

/var/adm/messages 파일에 메시지를 저장합니다.

3) *.alert;kern.err;daemon.err    operator

- 모든 alert 레벨 이상

- kern의 err 레벨 이상

- daemon의 err 레벨 이상

이벤트를 operator 사용자에게 메시지를 전송합니다.

4) *.alert    root

모든 alert 레벨 이상의 이벤트 메시지는 root 사용자에게 메시지를 전송합니다.

5) *.emerg    *

모든 emerg 레벨 이상의 이벤트는 접속된 모든 사용자에게 메시지를 전송합니다.

6) mail.debug    ifdef('LOGHOST', /var/log/syslog, @loghost)

- 로컬 시스템이 loghost인 경우 : mail facility의 debug 레벨 이상의 이벤트는 /var/log/syslog 파일에 저장되고,

- 로컬  시스템이 loghost가 아닌 경우 : loghost 호스트로 메시지가 전송됩니다.

7) ifdef('LOGHOST',,

user.err        /dev/sysmsg

user.err       /var/adm/messages

user.alert    'root.operator'

user.emerg    *

)

- 로컬 시스템이 loghost인 경우 : 아무것도 하지 않음

- loghost가 아닌 경우 : user.err, user.alert, user.msg 이벤트 메시지를 특정 파일이나 사용자에게 전송

 

3. syslog 데몬의 시작 및 정지

syslogd 데몬 중지/시작/재시작 예시입니다.

주의할 점은 syslogd 데몬은 데몬 시작시에만 /etc/syslog.conf 파일의 구성 정보를 읽습니다.

syslogd 데몬이 동작 중일 때에는 syslog.conf 파일을 수정하더라도,

syslogd 데몬이 이를 알지 못합니다. syslogd.conf 파일을 수정하였다면

반드시 syslogd 데몬을 중지 시켰다가 재시작하거나 데몬을 새로고침(refresh) 해야합니다.

 

4. syslog  메시징 구성

logger 명령을 이용하여 임의로 메시지를 만들어 syslogd 데몬에게 전송할 수 있습니다.

logger 몀령어의 옵션은 아래와 같습니다.

1) syslog.conf 파일에 local0.err를 /var/log/local0.log 파일에 저장하도록 설정합니다.

2) /var/log/local0.log 파일을 생성합니다.

3) syslogd 데몬을 재시작합니다.

4) logger 명령을 통해 아래와 같이 전달할 메시지를 입력합니다.

5) /var/log/local0.log 파일을 열어서 확인합니다.

syslog.conf 파일에 local0.err 레벨 이상의 메시지만 전달하도록 설정하였기 때문에

local.notice 메시지는 전달되지 않을것을 확인할 수 있습니다.

 

5. 로그 실시간 모니터링

로그 파일을 실시간으로 모니터링 하기 위해 tail 명령과 -f 옵션을 같이 사용합니다.

터미널을 하나 더 실행시킨 후 로그를 남겨보겠습니다.

이상으로 syslog에 대한 포스팅을 마칩니다! ^^

 

# 참고서적 : 유닉스 관리자를 위한 엔터프라이즈 솔라리스 핵심 운영 가이드2 / 김석, 박찬주, 장성균 공저

 

 

posted by Red_Message