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" ]
}
}
}
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>
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
pour logstash 5.1 ses
/usr/share/logstash/bin/logstash --config.test_and_exit -f logstash.yml
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.
Vous devriez faire ceci sur CentOS version 7:
/etc/rc.d/init.d/logstash configtest /etc/logstash/conf.d/test.conf