2017-01-25 7 views
0

ELK 스택 및 grok 필터를 처음 사용합니다.로그 데이터를 필터링하는 데 사용할 로그 슈트 패턴

키바의 데이터를 표시하는 logstash의 conf 파일 (파이 차트)

내 로그 파일의 위치 C에서 사용할 수에 대한 도움말을 원하십니까 : \ ELK \ 테스트 \이 reviewoutput.log

wf_review1 FAILED 
wf_review2 PASS 
wf_review3 PASS 
wf_review4 PASS 
wf_review5 FAILED 

및 여기 내 conf 파일

input{ 
file{ 
path=>"C:/ELK/Test/codereview.log" 
} 
} 
filter{ 
grok{ 
match=>{"message"=>"%{WORD:workflow} %{WORD:status}"} 
} 
} 
#output{ 
#elasticsearch{ 
#hosts=>["localhost"] 
#index=>"logstash-*" 
#} 
output{stdout{codec=>rubydebug} 
} 

위의 코드는 구문 분석 된 로그를 콘솔에 반향하지 않습니다. 입력 유형을 "stdin"으로 변경하고 콘솔에 값을 전달하면 로그가 stdout/console에 반향됩니다. 내가 여기서 무엇을 놓치고 있는지 확실하지 않습니다.

나는 위의 로그 데이터를 필터링하여 키워드 PASS 또는 FAILED를 찾고 필터링 된 데이터를 elasticsearch로 펌핑하려고합니다. 나중에 kibana 대시 보드에서 워크 플로의 성공 및 실패 (통과/실패) 횟수를 원형 차트에 표시하려고합니다.

Windows 컴퓨터에서 ELK 스택을 실행하고 있습니다.

귀하의 도움/제안은 큰 도움이 될 것입니다.

답변

0

내 파일 필터 안에 아래 줄을 추가하여이 문제를 해결했습니다.

sincedb_path => "/dev/null" 

input{ 
    file{ 
     path => "C:/ELK/Test/codereview.log" 
     start_position => "beginning" 
     sincedb_path => "/dev/null" 
    } 
} 

이 두 링크는 ​​실제로는 로그 파일의 마지막 줄을 읽어 아니에요 위의 논리를 갖는 솔루션 : 아직 https://discuss.elastic.co/t/reading-a-log-file-into-logstash/24514 https://github.com/elastic/logstash/issues/3115

하지만, 검색의 몇 시간 후 저를 도왔다. (당신 전체 로그 항목을 읽으려면 마지막 행 다음에 Enter 키를 눌러야 함)하지만 마지막 로그 항목을 읽지 않는 이유는 확실하지 않습니다!