UNIX/LINUX 계열에서 Log 처리와 관리에 대하여 알아보고 프로그램에서 로그 처리 프로그래밍을 어떻게 하는지 공부해 본다.
참고도서 [Bottom] [Top]
LPIC 시스템 관리 http://www.hanb.co.kr/look.php?isbn=89-7914-097-5
- 터보리눅스 개발팀 저, 한국터보리눅스(주) 역, 한빛미디어
ISBN: 8979140975
제11장 시스템 로그 - PDF 샘플보기
참고링크 [Bottom] [Top]
Log 보기 [Bottom] [Top]
Log 정보를 간단하게 사용할 수 있는 예로 사용자의 로그인 정보를 확인하는 것이다. Log 를 보기 위한 간단한 명령어를 몇가지 소개한다.
lastlog [Bottom] [Top]
각 사용자에 대한 최근 로그인 정보를 출력한다. /var/log/lastlog 파일의 내용을 사용자ID, 포트, IP 주소, 최근 로그인 시간 등으로 형식화하여 출력한다.
# lastlog Username Port From Latest root pts/0 xxx.xxx.xxx.xxx Mon Jan 1 12:00:00 +0900 2004 bin **Never logged in** ... 생략 ...
참고> -u 옵션으로 특정 사용자에 대한 정보만 출력할 수도 있다.
last [Bottom] [Top]
lastlog 와 달리 최근 로그인 사용자에 대한 모든 로그인 정보를 출력한다. /var/log/wtmp 파일의 내용을 사용자ID, 포트, IP 주소와 로그인, 로그아웃, 사용 시간에 대하여 출력한다.
# last root pts/0 xxx.xxx.xxx.xxx Mon Jan 1 12:30 still logged in root pts/0 xxx.xxx.xxx.xxx Mon Jan 1 12:15 - 12:25 (00:10) root pts/0 xxx.xxx.xxx.xxx Mon Jan 1 12:00 - 12:10 (00:10) ... 생략 ...
Log 처리 [Bottom] [Top]
Linux 에서는 로그를 처리하기 위하여 2 개의 데몬을 사용한다. 각 데몬의 기능과 설정에 대하여 알아보고 프로그램에서 어떻게 로그를 남길 수 있도록 프로그래밍하는지 알아본다.
klogd [Bottom] [Top]
Linux Kernel 로그 데몬으로 커널에서 발생하는 로그를 수신하는 역활을 수행한다. 그리고 수신된 로그는 아래에서 설명할 syslogd 에서 처리한다. 따라서 로그 처리를 위해서는 klogd 와 syslogd 가 같이 동작중이어야 한다.
자세한 정보는 man page 의 klogd(8) 을 참고한다.
syslogd [Bottom] [Top]
Linux System 로그 데몬으로 klogd 에서 수신된 로그를 설정에 따라 처리한다. 로그는 /dev/syslog.conf 설정 파일에 따라 콘솔 출력이나 파일 저장, 원격 로그 처리, 그밖에 다양한 프로그램이나 명령어로 처리할 수 있다.
Log 처리는 크게 facility 와 priority 로 나누어 설정하며 이에 대한 정보는 /usr/include/sys/syslog.h 파일을 참고한다.
자세한 사용법에 대해서는 아래의 링크를 참고한다.
자세한 정보는 man page 의 sysklogd(8) 와 syslog.conf(5) 를 참고한다.
Log 처리 프로그래밍하기 [Bottom] [Top]
syslogd 를 이용한 로그 처리 프로그래밍을 하고 싶다면 아래의 링크를 참고한다.
자세한 정보는 man page 의 syslog(3) 를 참고 한다.
Log 관리 [Bottom] [Top]
지속적인 Log 처리를 위해서는 주로 파일을 많이 이용한다. 하지만 파일은 무한정 사용할 수 있는 자원이 아니며 너무 커지게 되면 시스템에 부하를 주게 되므로 적당한 로그 관리가 필요하다. 따라서 자동으로 로그 관리를 할 수 있는 프로그램을 소개한다.
logwatch [Bottom] [Top]
logwatch 는 로그 파일을 하루 단위로 분석하여 메일로 알려주는 프로그램 이다. RedHat 계열에서는 기본 패키지로 설치되므로 따로 설치할 필요 없으며 아래의 링크에서 메일로 수신된 로그 분석 보고서의 예를 볼 수 있다.
자세한 정보는 man page 의 logwatch(8) 를 참고 한다.
logrotate [Bottom] [Top]
logrotate 는 logwatch 보다 큰 규모의 로그 파일 처리를 수행할 수 있다. 또한 logwatch 와는 달리 로그 파일을 분할, 압축, 보관, 삭제할 수 있으며 메일로 보내는 작업도 수행한다. logrotate 에 대한 자세한 소개와 설정에 대한 정보는 아래의 링크를 참고 한다.
자세한 정보는 man page 의 logrotate(8) 를 참고 한다.
