2017-01-25 6 views
0

私は自分のサーバー上にある私のサーバー上のカスタムログをfilebeatでインポートしようとしていて、ELKスタックで使用するためにlogstashに送信します。log in filebeatのdocument_typeを設定すると、ファイルの再起動が中止されます

これは正しく動作するように設定しており、現在は正常に動作しています。

しかし、私はこの特定のログのためにlogstashフィルタを追加したいので、logstashのそれに基づいてフィルタリングできるように、このログにdocument_typeフィールドを追加することにしました。

私はそうのようにこれを行っています

filebeat.prospectors: 
- input_type: log 
    paths: 
    - /var/log/apache2/access.log 
    document_type: apache-access 

- input_type: log 
    paths: 
    - /var/www/webapp/storage/logs/laravel.log 

- input_type: log 
    paths: 
    - /opt/myservice/server/server.log 
    document_type: myservice 

私はmyserviceのログにdocument_type: myserviceを追加した、と私はドキュメントhereに応じて行っていると信じています。さらに、私はApacheのアクセスログ用に行ったのと同じことが行われます。

ただし、filebeatを再起動すると、再びバックアップが開始されません。私は、filebeatのログを調べてみました - しかし、そこに何が始まらないのかは分かりません。

#document_type: myserviceのようにコメントアウトしてから、ファイルを再起動すると正しく起動します。つまり、その行と何か関係がありますか?

質問:私はここで何かを間違って

をやっていますか?

if [type] == "myservice"を使用する以外の方法でこのログにログスタッシュフィルタを適用する方法はありますか?

答えて

1

document_typeを使用すると、Logstashで条件文を適用するのに適しています。代わりの方法は、Filebeatでtagsまたはfieldsを適用することです。

設定に問題があります。追加したdocument_type: myserviceの字下げです。インデントがdocument_type: apache-accessとどのように異なっているかに注目してください。 document_typeフィールドは、すべてとinput_typeと同じレベルにする必要があります。

filebeat.sh -c /etc/filebeat/filebeat.yml -e -configtestで設定ファイルをテストすることができます。

http://www.yamllint.comのようなツールで設定を実行するだけで、有効なYAMLであることを確認することもできます。

+0

アブソリュートライフセーバー。 – James