2016-05-05 6 views
0

Ich versuche, die logstash Behälter im roten Hut 7 mit dem Befehl auszuführen:Probleme logstash mit -f-Flag in Docker läuft

docker run -v /home/logstash/config:/conf -v /home/docker/logs:/logs logstash logstash -f /conf/logstash.conf --verbose 

und die Antwort erhalten ist:

{:timestamp=>"2016-05-05T10:21:20.765000+0000", :message=>"translation missing: en.logstash.runner.configuration.file-not-found", :level=>:error} 
{:timestamp=>"2016-05-05T10:21:20.770000+0000", :message=>"starting agent", :level=>:info} 

und Der Logstash-Container wird nicht ausgeführt.

Wenn ich führen den Folowing Befehl:

docker run -dit -v /home/logstash/config:/conf -v /home/docker/logs:/logs --name=logstash2 logstash logstash -e 'input { stdin { } } output { stdout { } }' 

mit dem Befehl in dem Behälter ein:

docker exec -ti bash 

und ausführen:

logstash -f /conf/logstash.conf 

Ein neues logstash proccess läuft jetzt im Container und ich kann Protokolldateien verwalten, die in der Konfigurationsdatei eingerichtet sind.

Irgendeine Idee warum habe ich dieses seltsame Verhalten?

Danke, für alle.

Antwort

1

Problem gelöst verwendet. Es war ein Verzeichnis Berechtigungen in der Host-Maschine. Danke für die Hilfe @NOTtardy

0

Versuchen Sie, in doppelte Anführungszeichen logstash -f /conf/logstash.conf --verbose


Edit: gerade versucht, mich gebieten und es funktioniert gut. Könnte sein, dass deine logstash.conf der Grund für den Fehler ist.

Ich habe eine sehr einfache logstash.conf

input { 
    udp { 
     port => 5000 
     type => syslog 
    } 
} 
output { 
    stdout { 
     codec => rubydebug 
    } 
} 

Und bekam die folgende Ausgabe

{:timestamp=>"2016-05-05T18:24:26.294000+0000", :message=>"starting agent", :level=>:info} 
{:timestamp=>"2016-05-05T18:24:26.332000+0000", :message=>"starting pipeline", :id=>"main", :level=>:info} 
{:timestamp=>"2016-05-05T18:24:26.370000+0000", :message=>"Starting UDP listener", :address=>"0.0.0.0:5000", :level=>:info} 
{:timestamp=>"2016-05-05T18:24:26.435000+0000", :message=>"Starting pipeline", :id=>"main", :pipeline_workers=>1, :batch_size=>125, :batch_delay=>5, :max_inflight=>125, :level=>:info} 
{:timestamp=>"2016-05-05T18:24:26.441000+0000", :message=>"Pipeline main started"} 
+0

Es funktioniert nicht, der Fehler der Nachricht ist jetzt "/docker-entrypoint.sh: Zeile 15:/logstash -f /conf/logstash.conf - Ausführlich: Keine solche Datei oder Verzeichnis ". Ich benutze logstash neuesten offiziellen Bild. –

+0

Sieht aus, als hättest du "/ logstash -f ..." aber es sollte "logstash -f ..." sein – NOTtardy

+0

Der ausgeführte Befehl ist docker run -v/home/logstash/config:/conf -v/home/docker/logs:/logs logstash "logstash -f /conf/logstash.conf --verbose". Vor dem Befehl logstash gibt es kein "/". –