0

Ich habe gerade einen ELK-Server unter Windows gebaut, so dass ich neu in dem Prozess bin. Ich habe die Dokumente durchgelesen, habe aber Probleme beim Parsen meiner erweiterten IIS-Protokolle, insbesondere x-forwarded-for-Daten, da wir hinter einem Load-Balancer stehen.logstash und x-forwarded-for auf IIS

Meine erweiterte Protokollierung ist eingerichtet, um die Daten wie auszugeben dies:

$date, $time, $s-ip, $cs-uri-stem, $cs-uri-query, $s-port, $cs-username, $c-ip, $X-Forwarded-For, $csUser-Agent, $cs-Referer, $sc-status, $sc-substatus, $sc-win32-status, $time-taken 

ich meine logstash.conf wie folgt aufgebaut:

input { 
    tcp { 
     host => "localhost" 
      type => "iis" 
      port => 5044 

    } 
} 
filter { 
    if [type] == "iis" { 
     grok { 
      match => {"message" => "%{TIMESTAMP_ISO8601:log_timestamp} %{IPORHOST:site} %{URIPATH:page} %{NOTSPACE:query_string} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:client_host} %{NOTSPACE:useragent} %{NOTSPACE:referer} %{GREEDYDATA:response} %{NUMBER:httpStatusCode:int} %{NUMBER:scSubstatus:int} %{NUMBER:scwin32status:int} %{NUMBER:timeTakenMS:int}"} 
     } 
    } 
} 
output { 
    elasticsearch { 
     hosts => ["localhost:9200"] 
     index => "iis" 
     document_type => "main" 
    } 
} 

ich glaube nicht, das ist richtig, wie ich bin nicht Daten zu bekommen. Ich habe die Dokumente durchforstet, habe aber immer noch Probleme und bin mir nicht sicher, ob es noch andere Schritte gibt, die ich machen muss, wie die Zuordnung der Felder.

Ich verwende derzeit Dateibeat von einem Server, um Daten an meinen ELK-Server zu senden. Ich bin mir nicht sicher, ob das auch der beste Weg ist (vielleicht nxlog?). Wir möchten Logstash nicht auf den Client-Rechnern installieren.

Kann mir jemand helfen? Es würde sehr geschätzt werden !!

Danke, George

+0

Sind Sie sicher, dass Sie Daten in Ihrem Logstash erhalten? Vielleicht ist der Port geschlossen/logstash kann nicht darauf zugreifen. Sie sollten das zuerst überprüfen. Auch wenn es etwas in den Protokollen oder in der Ausgabe gibt? – baudsp

+0

Für das Mapping sind sie nicht notwendig, um Daten in ES zu speichern. Für Ihren Elasticsearch-Index ist es beim Umgang mit Protokollen besser, einen [täglichen Index] zu haben (https://www.elastic.co/guide/en/logstash/current/plugins-outputs- elasticsearch.html#plugins-outputs- elasticsearch-index), die das spätere Reinigen Ihrer Daten erleichtert. – baudsp

Antwort

0

Da Sie Filebeat verwenden, dann müssen Sie die Beats Eingang und nicht die TCP-Eingang verwenden. Siehe Dokumentation unter how to setup Logstash for Beats.

Im Wesentlichen müssen Sie Ihre TCP-Eingabe ersetzen mit:

input { 
    beats { 
    port => 5044 
    } 
} 

Und in Ihrem Filebeat Konfigurationsdatei, legen Sie die document_type-iis, so dass Ihre Filterbedingung übereinstimmen.