web-dev-qa-db-ja.com

Logstash configtest

サービス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" ]
    }
  }
}
15
Shann

古い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>
48
v_sukt

私は同じ問題を抱えており、それは私を大いに助けました:

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

13

logstash 5.1の場合

/usr/share/logstash/bin/logstash --config.test_and_exit -f logstash.yml
7
samtoddler

公式のlogstash Dockerイメージを使用して、ローカルファイルを検証します。

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

これは、設定ファイルが/etc/logstashは、そのフォルダーを同じパスの下のコンテナーにマウントします。その後、バイナリはコンテナ内の設定ファイルを見つけることができます。

そのコマンドを実行するより良い方法があるかもしれません、これは私のために働いた。

6
Jörn Zaefferer

CentOSバージョン7でこれを行う必要があります。

/etc/rc.d/init.d/logstash configtest /etc/logstash/conf.d/test.conf
1
bbotte.com

Docker container logstash 6.xを使用して構成をテストする場合

docker run -it -v $PWD:/etc/logstash/conf.d --entrypoint "bin/logstash" logstash "--config.test_and_exit"
1
Igor Kantor

Centos 7では、次のコマンドも使用できます。

/usr/share/logstash/bin/logstash --path.settings /etc/logstash/
--config.test_and_exit /etc/logstash/conf.d/logstash.conf
0
MKAY