* 서버 Logging설정이 되어있는지 점검하고, 특이사항이 있는지 확인 필요!!
1. OS 로그 설정
- 시스템 로그 설정되어 있는지 확인하고, 장애 분석 및 시스템 문제 발생 시 확인이 가능하도록 필수 로깅이 설정되어있는지 확인한다.
- 로그가 중복으로 설정되어, 로그가 과다 생성되고 있는지 확인
- syslogd
- /etc/syslog.conf, /etc/rsyslog.conf 파일로 로그형식 및 경로를 설정함
- syslogd 데몬이 OS 로그를 기록함
- rsyslog의 메인 설정화일은 /etc/rsyslog.conf 임. 이 화일에서 /etc/rsyslog.d/50-default.conf 을 불러와 추가적인 내용을 설정하며 설정화일에 대한 자세한 내용은 man rsyslog.conf 를 확인
- rsyslog관련 파일
관련파일 | 설명 |
/etc/rc.d/init.rsyslog -rsyslogd | 데몬을 동작시키는 스크립트 |
/etc/init.rsyslog.conf -rsyslogd | 데몬 환경 설정 파일 |
/etc/sysconfig/rsyslog -rsyslogd |
데몬 실행과 관련된 옵션설정파일 |
/sbin/rsyslogd |
실제 rsyslog 데몬 |
2. OS 로그 특이사항 확인
- syslogd에 설정한 로그파일에 OS로그가 정상적으로 기록되고 있는지 확인
- kernel오류, emergency, alert, critical, error 레벨의 로그가 남지는 않는지 우선 확인 후 그 외 warning 이하 minor level의 로그를 확인함
- 주요 로그파일
- /var/log/messages
- /var/log/cron
- /var/log/boot.log
- /var/log/dmesg
- /var/log/kern.log
- 기타 로그파일
- /var/log/auth.log
- /var/log/secure
- /var/log/wtmp
- /var/log/utmp
- /var/log/xferlog
- /var/log/yum.log
- /var/log/named.log
3. 자원 사용률 로깅 설정 여부 확인
- 자원사용률이 로깅되고 있는 지 확인
- polestar, ontune등 상용 SMS 툴이 없을 경우 nmon, perfmon 등으로 logging 설정이 되어있는지 확인
- nmon 로깅 예시(Version에 따라 상세 옵션이 다를 수 있음)
- http://nmon.sourceforge.net/pmwiki.php
- Linux : nmon -fdNT -s 10 -c 8640
- aix : nmon -^MfdT -s 5 -c 4320
4. 이상징후 발생 시 담당자에게 알림 여부 확인
- 서버 자원사용률 임계치 초과, 서버로그 상 특이사항 발생 시 대시보드 또는 알람을 통해 담당자에게 전달되는지 확인
5. Log Level
- syslog는 IETF의 RFC 5424 로 등록됨. RFC 5424에는 syslog 메시지를 인터넷 상으로 전달하는 방법을 기술
- 메시지의 특성을 정의하는 facility와 severity중 facility는 메시지를 발생시킨 프로그램의 타입을 나타내는 값이며, severity는 메시지의 성격 또는 중요도를 나타냄. syslog에서는 이 값에 따라 로그 메시지를 어느 화일에 기록할지, 누구에게 이 사실을 알릴 것인지를 결정함
- facility와 severity에 따라 어떤 화일에 로그를 쓸지에 대해, rsyslog의 경우 /etc/rsyslog.d/50-default.conf 에 정의되어 있다.
● /etc/rsyslog.conf 파일
※기본 형식 : facility.priority action
형식 | 설명 | |
facility | .일종의 서비스를 의미 .메시지를 발생 시키는 프로그램의 유형 |
|
priority | .위험의 정도를 나타내며, 설정한 수준을 포함해서 높으면 메시지 보냄 .설정 앞에 = 사용의 경우 : 해당 수준(priority)의 위험도와 같은 경우에 메시지 보냄 .설정 앞에 ! 사용의 경우 : 해당 수준(priority)만 제외 시킬때 사용 |
|
action | .메시지를 보낼 목적지나 행동들에 관한 설정 .보통 파일명이나 아이디 들을 적음 |
|
규칙 | .facility : 콤마(,) 사용 .facility.priority의 조함 : 세미콜론 (;) 사용 |
1) severity : 메시지의 성격 또는 중요도 -0~7 사이의 숫자로, 숫자가 낮을수록 심각한 문제라는 것을 내포함
Code | Severity | Keyword | C code | Description |
0 | Emergency | emerg (panic) | LOG_EMERG | System is unusable. |
1 | Alert | alert | LOG_ALERT | Action must be taken immediately. |
2 | Critical | crit | LOG_CRIT | Critical conditions. |
3 | Error | err (error) | LOG_ERR | Error conditions. |
4 | Warning | warning (warn) | LOG_WARNING | Warning conditions. |
5 | Notice | notice | LOG_NOTICE | Normal but significant condition. |
6 | Informational | info | LOG_INFO | Informational messages. |
7 | Debug | debug | LOG_DEBUG | Debug-level messages. |
2) facility : 메시지를 발생시킨 프로그램의 타입(발생주체) -이벤트를 생성한 프로세스, 모듈, 프로토콜을 나타냄. 메일 시스템, 커널, 네트워크 등이 될 수 있음
Facility Number |
Keyword | C code | Facility Description |
0 | kern | LOG_KERN | kernel messages |
1 | user | LOG_USER | user-level messages |
2 | LOG_MAIL | mail system | |
3 | daemon | LOG_DAEMON | system daemons |
4 | auth | LOG_AUTH | security/authorization messages |
5 | syslog | LOG_SYSLOG | messages generated internally by syslogd |
6 | lpr | LOG_LPR | line printer subsystem |
7 | news | LOG_NEWS | network news subsystem |
8 | uucp | LOG_UUCP | UUCP subsystem |
9 | clock | LOG_CRON | clock daemon |
10 | authpriv | LOG_AUTHPRIV | security/authorization messages |
11 | ftp | . | FTP daemon |
12 | . | . | NTP subsystem |
13 | . | . | log audit |
14 | . | . | log alert |
15 | cron | . | clock daemon |
16 | local0 | LOG_LOCAL0 | local use 0 (local0) |
17 | local1 | LOG_LOCAL1 | local use 1 (local1) |
18 | local2 | LOG_LOCAL2 | local use 2 (local2) |
19 | local3 | LOG_LOCAL3 | local use 3 (local3) |
20 | local4 | LOG_LOCAL4 | local use 4 (local4) |
21 | local5 | LOG_LOCAL5 | local use 5 (local5) |
22 | local6 | LOG_LOCAL6 | local use 6 (local6) |
23 | local7 | LOG_LOCAL7 | local use 7 (local7) |
3) Priority : 심각도를 의미함
facility | 심각도 |
none | 저장된 facility제외 |
debug | 1 |
info | 2 |
notice | 3 |
warning | 4 |
error | 5 |
crit | 6 |
alert | 7 |
emerge | 8 |
4)설정 예시
*.emerg shutdown - h now //모든 장치의 emerg발생시 Shutdown
kern.* /dev/console //커널 관련 로그를 /dev/console에 남김
authpriv.* /var/log/sercure //xinetd접속 로그를 /var/log/sercure 남김
*.info;mail.none /var/log/message //모든 facility에서 발생하는 info이상 심각도(2-8)의
이벤트를 로깅하되 mail Facility에서 발생하는 로그는 로깅하지 않음
*.*;auth,authpriv.none,local0.none -/var/log/syslog
//모든 로그(*.*)를 /var/log/syslog에 기록하지만, 세미콜론(;) 이후의 facility들인
auth, authpriv, local0 은 제외(none)하라는 것임. 화일이름 앞의 - 는 로그를
파일에 바로 쓰지 말고 메모리에 로그를 가지고 있다가 디스크에 입출력 여유가
있을 경우 쓰라는 의미임
(http://shallowsky.com/blog/linux/rsyslog-conf-tutorial.html 의 Rules Section참조)
- 파일 뿐 아니라 다른 곳으로도 로그를 보낼수 있음
@IP, @[hostname] : 다른 서버로 로그 전달
[사용자] : 지정한 사용자가 로그인 한 경우, 해당 사용자의 터미널에 표시
* : 현재 로그인 되어 있는 모든 사용자의 터미널로 전달
/dev/console, [터미널] : 지정한 터미널에 표시