2017-01-25 8 views
0

Я новичок в ELK стек и фильтр grok.logstash шаблон для фильтрации данных моего журнала

Хотите помощь в работе с logstash конф файл для отображения данных в kibana (круговая диаграмма)

мой файл_журнала доступен в месте C: \ ELK \ Test \ 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 я хочу показать отсутствие успешных и неудачных (PASS/FAILED) рабочих процессов в круговой диаграмме.

Я бегу стек ELK на машине Windows.

Ваша помощь/предложение окажут большую помощь.

ответ

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

Но все же, с вышеприведенной логики это не читает последнюю строку файла журнала. (Вы нужно нажать ввод после последней строки, чтобы прочитать полные записи журнала), но я не уверен, почему он не читает последнюю запись в журнале, как есть !?