2015-12-01 3 views
1

Я пытаюсь разобрать XML-файлы ошибок IIS с помощью Logstash, а затем сохранить эти ошибки в Elasticsearch и отобразить их в Kibana.Отсутствующие данные между Logstash и ElasticSearch

Вот мой logstash.conf файл:

input 
{ 
    file{ 
     path => ["C:/inetpub/logs/FailedReqLogFiles/*/*.xml"] 
     start_position => "beginning" 
     # filter is not thread safe, so have to move the multiline into the input 
     codec => multiline{ 
      #pattern => "^</failedRequest>" 
      pattern => "^<\?xml version" 
      negate => true 
      what => "previous" 
      max_lines => 12000 
     } 
     sincedb_path => "C:/Users/ss/Source/elk/logstash/bin/.sincedb" 
    } 
} 

filter{ 
    xml{ 
     store_xml => "false" 
     source => "message" 
     target => "EVENT" 
     xpath => [ 
      "/failedRequest/@url", "url", 
      "/failedRequest/@appPoolId", "appPoolId", 
      "/failedRequest/@verb", "verb", 
      "/failedRequest/@statusCode", "statusCode" 
     ] 
    }  
} 

output 
{ 
    elasticsearch{ 
     hosts => ["100.202.191.77:9200"] 
     index => "testserver-logstash" 
     flush_size => 1  
    } 
    stdout 
    { 
     codec => rubydebug 
    } 
    file{ 
     path => "C:/Users/ss/Source/elk/logstash/bin/test.log" 
    } 
} 

В журнале каталоги файлов:

C:\inetpub\logs\FailedReqLogFiles\W3SVC3 
C:\inetpub\logs\FailedReqLogFiles\W3SVC4 
C:\inetpub\logs\FailedReqLogFiles\W3SVC5 

И лог-файлы, включенные в эти директорий являются: fr000001.xml, fr000002.xml, fr000003.xml, fr000004.xml и т. д.

Структура XML-файлов, как:

<?xml version="1.0" encoding="UTF-8" ?> 
<?xml-stylesheet type='text/xsl' href='freb.xsl'?> 
<!-- saved from url=(0014)about:internet --> 
<failedRequest url="https://aaa.bbb.com:443/ddd.aspx" 
       siteId="3" 
       appPoolId="aaa.bbb.com" 
       processId="15168" 
       verb="GET" 
       remoteUserName="" 
       userName="" 
       tokenUserName="NT AUTHORITY\IUSR" 
       authenticationType="anonymous" 
       activityId="{00000000-0000-0000-0200-0080030000FF}" 
       failureReason="STATUS_CODE" 
       statusCode="500" 
       triggerStatusCode="500" 
       timeTaken="368584" 
       xmlns:freb="http://schemas.microsoft.com/win/2006/06/iis/freb" 
       > 
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">blablabla 
</Event> 
</failedRequest> 

Проблема у меня есть: есть 13 файлов журнала XML в целом. Я могу видеть, что вывод logstash печатает анализируемый xml всех этих 13 файлов правильно в stdout и test.log, однако в Kibana я могу видеть только данные из 4 из 13 xml-файлов, а остальные 9 файлов отсутствует.

Я новичок в стеке ELK и действительно застрял здесь. Надеюсь, кто-то может мне помочь. Заранее спасибо.

+0

Вы проверили журналы elasticsearch? Возможно, он выслал вам некоторые сообщения об ошибках., –

+0

@EvaldasBuinauskas Спасибо за помощь. Кажется, я понял это. – shaosh

ответ

0

Я прокомментировал эту строку, и это похоже на работу в журнале.

flush_size => 1