2015-02-02 6 views
0

'XXXXXX_XX_yymmdd_hh : mm : ss.txt'라는 이름의 로그 파일이 있습니다. 날짜와 시간을 입력해야합니다)를 Logstash에 추가 된 필드의 파일 이름에서 삭제하십시오.Logstash : 파일 이름에 날짜/시간을 가져온 필드로 사용하는 방법

아무도 도와 줄 수 있습니까? 당신이 엄격한 표현을 선호 할 것 대신 XXXXXX_XX의 진행에 따라

filter { 
    grok { 
    match => [ 
     "path", 
     "^%{GREEDYDATA}/[^/]+_%{INT:date}_%{TIME:time}\.txt$" 
    ] 
    } 
} 

:

감사

답변

2

날짜와 시간을 추출하는 grok filter를 사용합니다. 또한 GREEDYDATA는 그리 효율적이지 않습니다. 이렇게하면 더 나은 성능을 얻을 수 있습니다.

filter { 
    grok { 
    match => [ 
     "path", "^(?:/[^/]+)+/[^/]+_%{INT:date}_%{TIME:time}\.txt$" 
    ] 
    } 
} 
+0

감사합니다. @timestamp 값을 로그 파일의 각 행에 포함 된 시간으로 바꿀 수있는 방법이 있습니까? 각 줄은 "08 : 55 : 43.23"으로 시작합니다 (따옴표 제외). 로그 파일의 파일 이름 + 시간에서 날짜를 가져오고 싶습니다. – AMC

+0

[mutate filter] (http://logstash.net/docs/1.4.2/filters/date)를 사용하여 필드 만들기 파일 이름에서 가져온 날짜 필드를 로그 메시지의 시간과 연결하고 [날짜 필터] (http://logstash.net/docs/1.4.2/filters/date)를 사용하여 '@ 타임 스탬프'를 채 웁니다. 들. –

+0

내가 게시 한 내용을 현재 가지고있는 것과 함께 사용할 수 있습니까? 즉 아래에 match 문을 넣을 수 있습니까? % {NUMBER : agentid}, % {NUMBER : campaignid}, % {CISCO_REASON : campaign_name}, % {NUMBER : 캠페인 이름} {일치 => [ "메시지", "시간 {타임 : 타임 스탬프} {NUMBER : unknown5}, % {NUMBER : unknown6}, % {NUMBER : unknown7}, % {NUMBER : unknown4}, % {NUMBER : unknown4} unknown8}, % {CISCO_REASON : 상태} "] } – AMC