Logstash configtest

j'ai lancé service logstash configtest mais l'erreur donnée était:

logstash: unreognized service

j'ai été capable d'exécuter le service logstash individuellement mais pas avec "configtest". Dans etc/logstash / conf.d/ j'ai créé logstash.fichier conf où se compose du code tel qu'il est présent ci-dessous: -

renseignements supplémentaires: -

service logstash status
● logstash.service - logstash
   Loaded: loaded (/etc/systemd/system/logstash.service; disabled)
   Active: active (running) since Mon 2016-12-26 12:40:58 PST; 6s ago
 Main PID: 3512 (java)
   CGroup: /system.slice/logstash.service
           └─3512 /usr/bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX...

Dec 26 12:40:58 Mr systemd[1]: Started logstash.

Service lors de l'exécution avec configtest: -

root@Mr:/# service logstash configtest
logstash: unrecognized service

j'exécute ceci sur debian8 machine, j'espère que je d'obtenir une bonne solution de vous les gars.

# This input block will listen on port 10514 for logs to come in.
# host should be an IP on the Logstash server.
# codec => "json" indicates that we expect the lines we're receiving to be in JSON format
# type => "rsyslog" is an optional identifier to help identify messaging streams in the pipeline.

input {
  udp {
    host => "logstash_private_ip"
    port => 10514
    codec => "json"
    type => "rsyslog"
  }
}

# This is an empty filter block.  You can later add other filters here to further process
# your log lines

filter { }

# This output block will send all events of type "rsyslog" to Elasticsearch at the configured
# host and port into daily indices of the pattern, "rsyslog-YYYY.MM.DD"

output {
  if [type] == "rsyslog" {
    elasticsearch {
      hosts => [ "elasticsearch_private_ip:9200" ]
    }
  }
}
10
demandé sur Kulasangar 2016-12-26 23:39:23

5 réponses

pour les vieux logstash

/opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/ 

plus tard, il a été installé dans /usr / share / logstash alors essayez

/usr/share/logstash/bin/logstash --configtest -f <the config file/folder>

ou si vous utilisez la version 5.1 + utilisez --config.test_and_exit

/usr/share/logstash/bin/logstash --config.test_and_exit -f <the config file/folder>
33
répondu v_sukt 2017-08-29 21:27:58

j'ai eu le même problème et il m'a beaucoup aidé:

si vous utilisez Logstash version 5, la commande suivante pour tester la configuration vous donnera une erreur:

sudo /opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/

Le bon de commande pour tester c'est:

sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t

J'exécute ELK + filebeat depuis un serveur Ubuntu 16.04 et mon résultat a été: Envoyer les journaux de Logstash à /var/log / logstash qui est maintenant configuré via log4j2.propriété Configuration OK

Sources: https://www.elastic.co/guide/en/logstash/current/running-logstash.html; https://github.com/elastic/logstash/issues/6161

10
répondu jefferson.macedo 2018-02-18 20:45:13

pour logstash 5.1 ses

/usr/share/logstash/bin/logstash --config.test_and_exit -f logstash.yml
6
répondu samtoddler 2017-08-15 03:36:50

en utilisant le logstash Panneau de l'image pour valider un fichier local:

docker run -it -v /etc/logstash:/etc/logstash logstash /usr/share/logstash/bin/logstash -t -f /etc/logstash/logstash.conf

ceci suppose que votre fichier de configuration est localement en /etc/logstash, puis monte ce dossier dans le conteneur, sous le même chemin. Ensuite, le fichier binaire peut trouver le fichier de configuration à l'intérieur du conteneur.

Il y a peut-être une meilleure façon d'exécuter cette commande, cela a fonctionné pour moi.

5
répondu Jörn Zaefferer 2017-07-31 13:39:20

Vous devriez faire ceci sur CentOS version 7:

/etc/rc.d/init.d/logstash configtest /etc/logstash/conf.d/test.conf
0
répondu bbotte.com 2018-06-28 06:16:04