2017-03-21 16 views
0
syslog-ng.conf 

https://www.balabit.com/network-security/syslog-ng/opensource-logging-system/features/pattern-db 

@define logfileName "/apps/syslog-ng/etc/testing.log" 
@define Pattern1 ".*Exception.*" 

source s_app1.conf { file("`logfileName`" flags(no-parse) follow-freq(1)); }; 

#Edit here below vars 
#InstanceName in each template (need to start with $HOST.) 
#EventName (as numbered) in each template line. 
#change <first section> as required for severity. 
#186 -> Critical (critical) 
#187 -> Major (error) 
#188 -> Minor (warning) 

parser pattern_db { 
      db_parser(
       file("/apps/syslog-ng/etc/syslog-ng-patterndb-master/applications/openssh/example.xml") 
      ); 
      }; 

      parser t_app1.conf_1 { 
      db_parser(
       file("/apps/syslog-ng/etc/syslog-ng-patterndb-master/applications/openssh/example.xml") 
      ); 
      }; 

template t_app1.conf_1 
{ 
    template ("<186><$ISODATE>[HostName=$HOST][ClassName=Application][InstanceName=$HOST/BoB/app2-l1][EventName=`Pattern1`][LogFileName=`logfileName`][$MSG] ${SSH_USERNAME}; ${SSH_CLIENT_ADDRESS} \n"); 
    template_escape(no); 
}; 
destination d_app1.conf_1 { syslog("10.54.20.98" transport("udp") port(514) template(t_app1.conf_1)); }; 



filter f_app1.conf_1 { message("`Pattern1`" flags("utf8" "ignore-case")); }; 



log { source(s_app1.conf); filter(f_app1.conf_1); destination(d_app1.conf_1); flags(final); }; 

내 patterndb XML을 내가 그들의 offiical 블로그를 통해 이동하여 시스템 로그 - NG와 patterndb를 사용하는 것을 시도하고있다방법의 syslog-ng를

example.xml 

<?xml version='1.0' encoding='UTF-8'?> 
<patterndb version="3" pub_date="2010-04-15"> 
    <ruleset name='ssh' id='123456678'> 
     <pattern>ssh</pattern> 
      <rules> 
       <rule provider='me' id='182437592347598' class='system'> 
        <patterns> 
         <pattern>Accepted @ESTRING:SSH.AUTH_METHOD: @for @ESTRING:SSH_USERNAME: @from @ESTRING:SSH_CLIENT_ADDRESS: @port @NUMBER:SSH_PORT_NUMBER:@ ssh2</pattern> 
        </patterns> 
        <examples> 
         <example> 
          <test_message program="ssh">Accepted password for sampleuser from 10.50.0.247 port 42156 ssh2</test_message> 
          <test_values> 
           <test_value name="SSH.AUTH_METHOD">password</test_value> 
           <test_value name="SSH_USERNAME">sampleuser</test_value> 
           <test_value name="SSH_CLIENT_ADDRESS">10.50.0.247</test_value> 
           <test_value name="SSH_PORT_NUMBER">42156</test_value> 
          </test_values> 
         </example> 
        </examples> 
       </rule> 
      </rules> 
    </ruleset> 
</patterndb> 

을에 patterndb를 사용하는, 내가 설치하고 시스템 로그를 사용할 수 모르지만, patterndb를 사용하는 방법을 설명하는 설치 안내서가 없으므로 patterndb가 아닙니다. 누군가 리눅스 시스템에서 sysdb와 함께 patterndb를 사용했습니다.

답변

1

official documentation of syslog-ng patterndb에서 정보를 찾을 수 있습니다.

기본적으로 create a patterndb file (sample patterndb files on github 및이 blogpost에 있음) 및 use it in your syslog-ng configuration to parse the log messages을 원합니다.

그런 다음 구문 분석 방법이나 결과에 따라 대상 템플릿에서 결과를 사용하거나 필터링 또는 기타 여러 가지 작업을 수행 할 수 있습니다.

구문 분석하려는 대상과 이유를 설명해 주실 수 있습니까?

+0

나는이 일반적인 메시지 "10.50.0.247 포트 42156 ssh2에서 sampleuser 용으로 허용 된 비밀번호"를 구문 분석하려고합니다. 따라서이 패턴 파일 xml을 필요로하는 xml 파일이 필요합니까? – sdvadsa

+0

patterndb에서 xml 파일에는 메시지를 구문 분석하는 규칙이 들어 있습니다. 구문 분석하려는 각 메시지에 대해 일치하는 규칙이 필요합니다. 하나의 규칙은 메시지에 따라 여러 메시지를 일치시킬 수 있습니다. 위의 SSH 로그인 메시지를 구문 분석하려면이 메시지에 대한 규칙 만 있으면됩니다. SSH에 대한 샘플 규칙은 https://github.com/balabit/syslog-ng-patterndb/blob/master/applications/openssh/sshd.xml –

+0

안녕하세요, conf 파일의 정확 여부를 확인할 수 있습니까? – sdvadsa