2017-06-10 3 views
0

Im Folgenden ist der Testbefehl aus dem Tutorial:Ich kann Logstash nicht auf meinem Computer starten. Fehlermeldung innerhalb

./logstash -e 'input { stdin { } } output { stdout {} }' 

Im Folgenden ist der Fehler.

WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults 
Could not find log4j2 configuration at path //usr/share/logstash/config/log4j2.properties. Using default config which logs to console 
01:55:14.242 [main] FATAL logstash.runner - An unexpected error occurred! {:error=>#<ArgumentError: Path "/usr/share/logstash/data" must be a writable directory. It is not writable.>, :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/settings.rb:433:in `validate'", "/usr/share/logstash/logstash-core/lib/logstash/settings.rb:216:in `validate_value'", "/usr/share/logstash/logstash-core/lib/logstash/settings.rb:132:in `validate_all'", "org/jruby/RubyHash.java:1342:in `each'", "/usr/share/logstash/logstash-core/lib/logstash/settings.rb:131:in `validate_all'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:217:in `execute'", "/usr/share/logstash/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:67:in `run'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:185:in `run'", "/usr/share/logstash/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:132:in `run'", "/usr/share/logstash/lib/bootstrap/environment.rb:71:in `(root)'"]} 

Was die Fehlermeldung Teil, der sagt:

Path "/usr/share/logstash/data" must be a writable directory. It is not writable. 

Das Verzeichnis ist im Besitz und beschreibbar logstash.

Kann jemand Lösungen vorschlagen?

Antwort

1

Sie müssen Logstash im Sudo-Modus starten. Das ist

[email protected]:~$ sudo su 
[email protected]:/home/host# cd /usr/share/logstash 
[email protected]:/usr/share/logstash# ./bin/logstash -e 'input { stdin { } } output { stdout {} }' 
WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults 
Could not find log4j2 configuration at path /usr/share/logstash/config/log4j2.properties. Using default config which logs to console 
16:18:33.959 [[main]-pipeline-manager] INFO logstash.pipeline - Starting pipeline {"id"=>"main", "pipeline.workers"=>8, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>1000} 
16:18:33.996 [[main]-pipeline-manager] INFO logstash.pipeline - Pipeline main started 
The stdin plugin is now waiting for input: 
16:18:34.019 [Api Webserver] INFO logstash.agent - Successfully started Logstash API endpoint {:port=>9600} 
Hello 
2017-06-10T15:18:43.457Z host Hello 
0

die Ausnahmemeldung Ihnen sagt, dass logstash nicht Eigenschaft finden konfigurieren, so sollten Sie ein Flag in dem Befehl fügen Sie den configure sagen logstash property.and eine weitere Ausnahme ist die logstash kann nicht etwas schreiben Zu/usr/share/logstash/data sollten Sie 'sudo' verwenden, um diesen Befehl zu starten, oder Sie können Ihrem Konto die Schreibberechtigung von/usr/share/logstash/data hinzufügen.

logstash Version: 5.5.2

OS-Version: Ubuntu 16.04

der Befehl des Startens logstash als Fließ:

sudo bin/logstash -e 'input { stdin { } } output { stdout {} }' --path.settings=/etc/logstash 

ps: ich logstash von apt installieren installieren the document of install logstash

0

Sie sollen es als logstash Benutzer und nicht root oder einen anderen Benutzer ausführen - deshalb gehört es logstash Benutzer. Also, bitte die folgenden stattdessen verwenden:

sudo -Hu logstash /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }' 

Wo der Hauptteil ist hier Ihr Befehl als logstash Benutzer ausführen:

sudo -Hu logstash <command you want to run> 
Verwandte Themen