2016-09-01 4 views
0
input 
{ 
    file 
    { 
    path => ["D:/logstash-2.3.4/temp/logs/localhost_access_log.2016-08-24.log"] 
    start_position => "beginning" 
    } 
} 

filter 
{ 
    date 
    { 
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] 
    } 
} 

output 
{ 
    stdout { codec => rubydebug } 
} 

이제 logstash를 실행 한 후 logstash 명령 창에서 출력을 볼 수 없습니다. 그것은주고받는 파일 안의 로그가 가져 오지 않는 것입니다.logstash를 사용하여 지정된 경로에서 로그 파일 읽기

내 localhost_access_log.2016-08-24 로그 파일의 로그 샘플 중 일부는 다음과 같습니다 :

127.0.0.1 - - [24/Aug/2016:10:07:54 +0530] "GET/HTTP/1.1" 200 11452  
0:0:0:0:0:0:0:1 - - [24/Aug/2016:10:08:09 +0530] "GET /Migration/firstpage.jsp HTTP/1.1" 404 1040  
127.0.0.1 - - [24/Aug/2016:10:08:39 +0530] "GET/HTTP/1.1" 200 11452  
0:0:0:0:0:0:0:1 - - [24/Aug/2016:10:08:41 +0530] "GET /Migration/firstpage.jsp HTTP/1.1" 500 3750  
0:0:0:0:0:0:0:1 - - [24/Aug/2016:10:09:38 +0530] "GET /Mortgage/faces/NewFile.jsp HTTP/1.1" 404 1046 

입력 코드 또는 날짜 필터 코드에 문제가 있습니까? 누군가 내가 실수를 저지르고있는 곳에서 나를 도울 수 있습니까?

+1

귀하의 날짜 필터는 쓸모가 없다. 예를 들어 grok 필터를 COMMONAPACHELOG 패턴과 함께 사용하여 타임 스탬프 필드에서 로그 라인의 날짜를 먼저 추출해야합니다. 그러나 나는 왜 당신이 어떤 결과물을 가지고 있는지 모른다. – baudsp

+0

고맙습니다. 나는 그것을 시도하고 알려 드리겠습니다. – keerthi

답변

0

logstash 콘솔의 출력을 확인하기 위해 conf 파일의 output 섹션에 stdout {}을 비워 둡니까?

@baudsp에서 언급했듯이 로그 파일을 처리 할 때는 grok 필터를 사용하는 것이 좋습니다. 이런 식으로 뭔가 :

filter { 
    grok { 
     match => { "message" => "%{COMBINEDAPACHELOG}"} 
    } 
} 

출처 : 필드가`timestamp`이 존재하지 않기 때문에 Parsing Logs with Logstash