2016-08-12 5 views
0

일치하지 않는이 내 grok 수 패턴입니다 :grok 수 필터가 조금 주위에 검색 및 다양한 솔루션을 시도 후 로그 메시지

%{TIME}", "interface", "%{EMAILLOCALPART}","MAC", "%{IP}:%{MAC}", "src", "SRC=%{IP}", "dst", "DST=%{IP} 

그러나 내 시스템 로그 메시지가 일치하지 않습니다. 이 메시지는 IPFire에서 생성 된 것으로 다음과 같습니다.

00:00:06 IN=red0 OUT= MAC=00:0d:b9:42:65:fc:00:17:10:82:5f:00:08:00 SRC=179.43.177.194 DST=46.127.208.49 LEN=60 TOS=0x00 PREC=0x00 TTL=56 ID=62301 DF PROTO=TCP SPT=37305 DPT=6666 WINDOW=29200 RES=0x00 SYN URGP=0 
00:00:07 IN=red0 OUT= MAC=00:0d:b9:42:65:fc:00:17:10:82:5f:00:08:00 SRC=116.31.116.17 DST=46.127.208.49 LEN=60 TOS=0x00 PREC=0x00 TTL=47 ID=4401 DF PROTO=TCP SPT=23103 DPT=22 WINDOW=29200 RES=0x00 SYN URGP=0 
00:00:07 IN=red0 OUT= MAC=00:0d:b9:42:65:fc:00:17:10:82:5f:00:08:00 SRC=74.79.43.231 DST=46.127.208.49 LEN=131 TOS=0x00 PREC=0x00 TTL=113 ID=16393 PROTO=UDP SPT=36303 DPT=6666 LEN=111 
00:00:08 IN=red0 OUT= MAC=00:0d:b9:42:65:fc:00:17:10:82:5f:00:08:00 SRC=84.241.202.2 DST=46.127.208.49 LEN=129 TOS=0x00 PREC=0x00 TTL=51 ID=41009 DF PROTO=UDP SPT=35858 DPT=1025 LEN=109 
00:00:09 IN=red0 OUT= MAC=00:0d:b9:42:65:fc:00:17:10:82:5f:00:08:00 SRC=198.8.80.183 DST=46.127.208.49 LEN=132 TOS=0x00 PREC=0x00 TTL=117 ID=21082 PROTO=UDP SPT=24883 DPT=1025 LEN=112 

키바 나의 정의 된 필드가 표시되지 않습니다. 나는 (다른 사람에 비해) 아주 기본적인 설정 파일을 가지고 있지만, 내 머리를 감싸고있는 것처럼 보일 수 없다. 누군가가 도울 수 있다면 제대로 이해할 수있는 적절한 모범을보아야 할 것입니다.

내 11 ipfire의 설정하십시오 grok 필터의 match 해시 소요

input { 
    udp { 
    port => 5514 
    } 
    tcp { 
    port => 5514 
    } 
} 
filter { 
    if [type] == "syslog" { 
     grok { 
      match => [ "time", "%{TIME}", "interface", "%{EMAILLOCALPART}","MAC", "%{IP}:%{MAC}", "src", "SRC=%{IP}", "dst", "DST=%{IP}" ] 
     } 
    } 
} 
output { 
    elasticsearch { 
     hosts => ["localhost:9200"] 
     index => "ipfire" 
    } 
} 

답변

0

{ "field" => "pattern" } 또는 하나 개의 필드가 서로 다른 내용이있을 경우는 배열을 전달할 수 grok 수는 순차적으로 각 배열 요소에 필드를 일치하려고합니다 { "field" => ["pattern1","pattern2", "patternX"] }. 현재 match 배열을 전달 중입니다. 예제 로그를 구문 분석하지 않습니다.

당신이 제공 한 grok 수 패턴은 리터럴 문자열

"12:34", "interface", "bob.saget67", "MAC", "127.0.0.1:12-34-56-78-9A-BC", "src", "SRC=127.0.0.2", "dst", "DST=127.0.0.3" 

내가 당신을 위해 grok 수 패턴을 작성하지 않을거야,하지만 당신은 쉽게 grok constructor 같은 온라인 도구를 사용하여 grok 수 패턴을 개발하고 테스트 할 수와 일치합니다 . 또한 Logstash에는 미리 구운 syslog 패턴이 있습니다.

+0

는 내 grok 수 패턴을 만들었다 : '% {SYSLOGPROG : 프로그램} %? {USERNAME : 체인} (? = IN ([A-ZA-Z0-9] +)) ( (OUT = ([ MAC 주소) % {COMMONMAC : mac_address} : % {COMMONMAC : mac_address2} (? (: ([0-9] +)) +) (? (TCP | UDP))' 그러나 {IP 주소가 IP 주소로 변경되었습니다. 그것은 여전히 ​​작동하지 않습니다. 나는 패턴으로 정의한 밭을 키 바나에 표시하는 방법을 확신하지 못합니다. – rhillhouse

+0

그리고'match => { "message"=> "pattern"}'을 사용하고 있습니까? –

+0

예, 필드는 아직 만들어지지 않습니다. – rhillhouse