- This topic has 2개 답변, 2명 참여, and was last updated 14 years, 11 months 전에 by 인베인. This post has been viewed 1605 times
-
-
1. Kernel Log Engine(klogd)
*/proc/kmesg를 읽거나 sys_syslog 호출 후 메시지가 들어오기를 기다리면서 sleep 함.
Kernel Message가 /proc/kmsg 에 들어가고 klogd가 이것을 분석해서 syslogd로 보내주어
syslogd가 처리해주는 구조로 되어 있다. syslogd와 klogd가 실행중이라면 메시지는
/var/log/messages에 추가 된다.로그관련 라이브러리나 함수들이 그렇듯이 printk도 우선순위(priority)를 가진다. 모두 8단계의 우선순위를 가지며
<1> KERN_ALERT 와 같은 방식으로 결정할 수 있다. 이들 우선순위에 대한 선언정보는
./linux/kernel.h에서 확인할 수 있다. 만약 우선순위를 정하기 귀찮거나 정할 수 없다면 기본 우선순위
DEFAULT_MESSAGE_LOGLEVEL을 사용하면 된다.* 장/단점
단점 : 앞의 메시지를 읽어가지 않으면 잃어버릴 가능성 있음.
장점 : 고정된 양의 메모리로 커널 메시지 처리 가능.*동작
. klogd는 읽은 커널 메시지(/proc/kmesg)를 syslogd로 전달.
. syslogd는 /etc/syslog.conf를 참조하여 메시지를 처리함.
.메시지 종류 : 커널 or 사용자 프로세스 메시지
.우선순위 : printk에서 사용한 우선 순위.
. klogd가 실행되지 않으면 커널 메시지는 fifo 순서로 잃게 됨.
fc6#> /sbin/klogd &
fc6#> cat /var/log/messages
or
fc6#> klogd -o -f ./krnl.msg
fc6#> klogd -c 4
fc6#> kill -USR2 $(cat /var/run/klogd.pid)* klogd(커널 버전 1.3 이상)는 oops 메시지를 해석할 수 있음
.시작 시 “-k /usr/src/linux/System.map” 인자를 주어야 함.
.단점 : 모듈에 있는 심볼에 대해서는 해석을 하지 않는다. 최신 버전에서는 지원됨* BusyBox ver 0.60.5 이후부터 klogd 포함됨.
./busybox-1.2.2.1/sysklogd/klogd.c
./busybox-1.2.2.1/sysklogd/syslogd.c2. klogd/syslogd 시작시 화면
Starting kernel log daemon: klogd.
Starting system log daemon: syslogd.#>vi /etc/syslog.conf
#> cat /var/log/messages
#> cat /var/log/syslog3. 사용방법 도움말
fc6#> man klogd4. syslogd, klogd 를 대체하는 metalog Project( May 6, 2007)
Metalog 는 syslogd 와 klogd 의 기능을 대체할 최신 로그 시스템이다.
로그 메세지는 각 특성별로 분류되어 정리할 수 있으며, 로그 파일이 일정한 크기나 기간에 도달하게되면
자동으로 바꿀 수 있도록 하는 기능도 제공한다.http://metalog.sourceforge.net/
http://metalog.cvs.sourceforge.net/metalog/metalog/fc6#> ./configure
fc6#> make install-strip
fc6#> vi /etc/metalog.conf
fc6#> /usr/local/sbin/metalog &
fc6#> kill -USR2 $(cat /var/run/metalog.pid)
* 오픈소스는 Open Innovationa & 윈윈전략을 도모할 지언정 절대 공짜(무료)임을 뜻하지 않는다.치
- 답변은 로그인 후 가능합니다.