2016-11-11 2 views
0

Ich habe eine Datei auf einem Remote-Server. Ich weiß, dass die Datei durch seine URI:Eine Datei von einem URI in Logstash lesen

http://some.server/dir/derp/syslog.log

Wenn ich die logstash Datei Eingang verwenden, wird der URI abgelehnt mit einem Fehler von einem relativen Pfad zu beklagen. Die Remote-Datei enthält keine Sicherheit. Ich kann curl es ohne Problem aus dem Logstash-System.

Mein newb-config Eingang Snippet wie folgt aussieht:

input { 
     file { 
     path => "http://some.server/dir/derp/syslog.log" 
     type => "syslog" 
     } 

Was ist der richtige Weg ist, die Datei zu lesen?

Antwort

1

Das Eingabe-Plugin file liest keine entfernten Dateien, es erlaubt nur das Lesen von Dateien vom lokalen Host.

Sie haben ein paar Lösungen:

A. Sie können install filebeat auf Remote-Server some.server bis zum Schwanz, die Datei syslog und entweder versenden es zu Ihrem logstash oder direkt auf Ihrem ES-Server.

B. Sie können Logstash direkt auf Ihrem Remote-Server installieren und haben die file Eingangs-Plugin-Endung diese Datei direkt auf dem Server.

C. Sie können die http_poller input plugin verwenden, um diese Datei über HTTP abzurufen.

input { 
    http_poller { 
    urls => { 
     mysyslog => "http://some.server/dir/derp/syslog.log" 
    } 
    request_timeout => 60 
    interval => 60 
    } 
} 
+0

Haben Sie Glück dabei? – Val

+0

Hallo, bin gerade heute wieder zur Arbeit gegangen. Ich überprüfe es jetzt. Ich habe irgendwo gesehen, dass die 'http_poller'-Option die gesamte Datei ohne Rücksicht auf Bits liest, die vorher gelesen wurden, also muss ich darüber nachdenken, wie ich das machen würde. Aufgrund meiner Umgebung und der meines Kunden glaube ich, dass dies die einzige Option sein wird. Da kommt noch mehr. –

+0

Die logischste Lösung für mich wäre die Verwendung von A als C wird Ihnen nicht erlauben, die Syslog-Datei "zu beenden". Ich dachte, du wolltest es einfach herunterladen und verarbeiten. – Val