syslog-ng 로 log 서버 환경 구성하기

syslog-ng는 syslogd 데몬을 대체할 log 데몬이다. 그러나 사용법이 syslod에 비해 약간 복잡해서 처음 보면 그리 정이 가는 편은 아니다. 그러나 syslogd에서 사용하는 대부분의 기능은 syslog-ng에도 된다. 물론 대체품이므로 더 많은 좋은 기능이 들어 있을것이다. ^^;;;
간략한 몇가지 정보만 실어보려한다.
syslog-ng에서 사용하는 옵션은 크게 아래와 같은 분류를 갖는다.
Global option으로 [options] 라는 항목이 있다.
      – 이것은 전체 syslog-ng 옵션에 적용되는 옵션이다.
[source]라고 하는 항목은 system log을 어디서 받을건지에 대한 정보를 지정한다.
[filter]라는 항목은 system에서 발생된 log들 중에서 원하는 규칙을 filtering해서 받을수 있게 해주는 항목이다.
[destination] 항목은 system log를 저장할 곳을 지정한다.
[log] 항목은 위의 source, filter, destination 항목들을 어떻게 조합하여 loging을 할것인가를 정해주는 항목이다.
그래서 system log는 다음 처럼 저장이 된다.
system에서 발생된 로그를 source 규칙에 맞게 받아 filter 항목에 맞춰 filtering하여 destination의 정보에 저장을 하게 된다.
간단한 예를 들어보자.
local system에서 발생되는 login log만 따로 받아 저장하고 싶다.
source src {
        internal(); # local system에서 발생된것만 받기위해서
        #whatever가 log를 발생시켜 그 로그를 얻어올 위치
        unix-dgram(“/dev/log”);  
        unix-dgram(“/var/lib/dhcp/dev/log”);
        unix-dgram(“/var/lib/named/dev/log”);
};
filter f_kage { facility(auth); };  #login 관련 항목이 auth 이므로…
destination d_kage { file(“/var/log/kage.log”); }; # /var/log/kage.log란 파일에 저장한다.
log { source(src); filter(f_kage); destination(d_kage) };
     –> 이것은 source항목은 “src” 이름으로 정의된 것만 받겠다.
     –> log들중에서 filter는 “f_kage” 이름으로 정의된 filter 항목만 걸러낸다.
     –> 걸리진 log는 “d_kage”이름으로 정의된 위치에 저장을 시킨다.
만약에 현재 서버의 log를 다른 log서버쪽에 모으고 싶다.
log server ip: 192.168.1.1
————log server———————–
source src {
      udp(ip(0.0.0.0) port(514));
#      udp(port(514));  #둘중 하나로 하면된다. 이것은 어떤 서버든간에 뿌린것에 대해 모두 받겠다는것이다. 만약에 특정 IP로부터 온것만 받겠다면 IP를 지정해주면 된다. ( udp(192.168.1.123 port(514));  or udp(ip(192.168.1.123) port(514));
};
filter f_kage { facility(auth); };  #login 관련 항목이 auth 이므로…
destination d_kage { file(“/var/log/kage.log”); }; # /var/log/kage.log란 파일에 저장한다.
log { source(src); filter(f_kage); destination(d_kage) };
———————————————
————-client node—————————–
source src {
        internal(); # local system에서 발생된것만 받기위해서
        #whatever가 log를 발생시켜 그 로그를 얻어올 위치
        unix-dgram(“/dev/log”);  
        unix-dgram(“/var/lib/dhcp/dev/log”);
        unix-dgram(“/var/lib/named/dev/log”);
};
filter f_kage { facility(auth); };  #login 관련 항목이 auth 이므로…
destination d_kage { udp(192.168.1.1  port(514)); }; # log server에 저장(보낸다)한다.
       # or  destination d_kage { udp(192.168.1.1); }; # 514 port를 사용할경우
log { source(src); filter(f_kage); destination(d_kage) };
—————————————————–
만약에 특정 포트를 사용하고 싶으면 port를 바꿔준다. 양쪽다(log server & client)
filter를 위한 facility 규칙은 아래와 같다.
-emerg (LOG_EMERG) : 시스템에 치명적인 영향을 줄수 있는 log
-alert (LOG_ALERT) : 시스템에 문제를 줄만한 경고
-crit (LOG_CRIT) : 하드웨어 어레와 같은 critical한 log
-err (LOG_ERR) : 일반적인 error log
-warning (LOG_WARNING) : 약간의 문제가 될수도 있는것을 알리는 경고
-notice (LOG_NOTICE) : 뭔가 알리고싶을때 보내는 log들
-info (LOG_INFO) : 어떠한 정보 메시지
-debug (LOG_DEBUG) : 디버그 메시지

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.