サービスlogstash configtestを実行しましたが、表示されたエラーは次のとおりです。
logstash:認識されないサービス
Logstashサービスを個別に実行できましたが、「configtest」では実行できませんでした。 etc/logstash/conf.d /に、以下に示すコードで構成されるlogstash.confファイルを作成しました。
追加情報:-
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.
Configtestで実行中のサービス:-
root@Mr:/# service logstash configtest
logstash: unrecognized service
私はこれをdebian8マシンで実行しています。皆さんから良い解決策が得られることを願っています。
# 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" ]
}
}
}
古いlogstashの
/opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/
後に、/ usr/share/logstashにインストールされるようになったので、
/usr/share/logstash/bin/logstash --configtest -f <the config file/folder>
または、バージョン5.1以降を実行している場合は--config.test_and_exit
/usr/share/logstash/bin/logstash --config.test_and_exit -f <the config file/folder>
私は同じ問題を抱えており、それは私を大いに助けました:
Logstashバージョン5を実行している場合は、構成をテストする次のコマンドでエラーが発生します。
Sudo /opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/
テストするための正しいコマンドは次のとおりです。
Sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
Ubuntu Server 16.04以降ELK + filebeatを実行しており、結果は次のとおりでした。Logstashのログを/ var/log/logstashに送信します。
ソース: https://www.elastic.co/guide/en/logstash/current/running-logstash.html ; https://github.com/elastic/logstash/issues/6161
logstash 5.1の場合
/usr/share/logstash/bin/logstash --config.test_and_exit -f logstash.yml
公式のlogstash
Dockerイメージを使用して、ローカルファイルを検証します。
docker run -it -v /etc/logstash:/etc/logstash logstash /usr/share/logstash/bin/logstash -t -f /etc/logstash/logstash.conf
これは、設定ファイルが/etc/logstash
は、そのフォルダーを同じパスの下のコンテナーにマウントします。その後、バイナリはコンテナ内の設定ファイルを見つけることができます。
そのコマンドを実行するより良い方法があるかもしれません、これは私のために働いた。
CentOSバージョン7でこれを行う必要があります。
/etc/rc.d/init.d/logstash configtest /etc/logstash/conf.d/test.conf
Docker container logstash 6.xを使用して構成をテストする場合
docker run -it -v $PWD:/etc/logstash/conf.d --entrypoint "bin/logstash" logstash "--config.test_and_exit"
Centos 7では、次のコマンドも使用できます。
/usr/share/logstash/bin/logstash --path.settings /etc/logstash/
--config.test_and_exit /etc/logstash/conf.d/logstash.conf