syslog-ng 간단한 옵션들...

Computer/Linux August 21st, 2009 12:19 kage
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) : 디버그 메시지

 
크리에이티브 커먼즈 라이센스
Creative Commons License
트랙백은 하나, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.cep.kr/blog/cep/rss/response/181

댓글+트랙백 ATOM :: http://www.cep.kr/blog/cep/atom/response/181

트랙백 주소 :: http://www.cep.kr/blog/cep/trackback/181

트랙백 RSS :: http://www.cep.kr/blog/cep/rss/trackback/181

트랙백 ATOM :: http://www.cep.kr/blog/cep/atom/trackback/181

  1. Subject: GS test demo

    Tracked from GS test demo April 2, 2013 17:07  삭제

    CEP's Blog -by Kage Park :: syslog-ng 간단한 옵션들...

댓글을 달아 주세요

댓글 RSS 주소 : http://www.cep.kr/blog/cep/rss/comment/181
댓글 ATOM 주소 : http://www.cep.kr/blog/cep/atom/comment/181
[Login][OpenID?]
You have to log in with and OpenID to leave a comment.