2017-06-10 2 views
0

Ce qui suit est la commande d'essai du tutoriel:Je ne peux pas démarrer logstash sur ma machine. Message d'erreur à l'intérieur

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

Ce qui suit est l'erreur.

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)'"]} 

En ce qui concerne la partie du message d'erreur qui dit:

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

Le répertoire est détenu et inscriptible par logstash.

Quelqu'un peut-il suggérer des solutions?

Répondre

1

Vous devez démarrer logstash en mode sudo. C'est

[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

le message d'exception vous dit que logstash ne peut pas trouver configurer la propriété, donc vous devez ajouter un drapeau dans la commande de dire logstash configure property.and une autre exception est le logstash ne peut pas écrire quelque chose Dans/usr/share/logstash/data, vous devez utiliser 'sudo' pour lancer cette commande, ou vous pouvez ajouter l'autorisation d'écriture de/usr/share/logstash/data à votre compte.

version logstash: 5.5.2

version os: ubuntu 16.04

la commande de logstash à partir de flux:

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

ps: installer logstash par apt installer the document of install logstash

0

Vous êtes censé l'exécuter comme logstash utilisateur et non root ou tout autre utilisateur - c'est pourquoi il appartient à logstash utilisateur. Alors, s'il vous plaît utilisez ce qui suit à la place:

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

Lorsque la partie principale est en cours d'exécution de votre commande ici logstash utilisateur:

sudo -Hu logstash <command you want to run>