2017-03-15 8 views
3

cat_sweepプラグインを使用してfluentdの拡張子.gzのログファイルを処理しようとしていますが、失敗しました。以下の設定に示されているように、私は/opt/logfiles/*の下のすべてのファイルを処理しようとしています。しかし、ファイル形式が.gzの場合、cat_sweepはファイルを処理できず、ファイルの削除を開始しますが、/opt/logfiles/の場所でファイルを手動で解凍すると、cat_sweepはそのファイルを処理できます。[Fluentd] Fluentdのファイルを解凍する方法

<source> 
    @type cat_sweep 
    file_path_with_glob /opt/logfiles/* 
    format none 
    tag raw.log 
    waiting_seconds 0 
    remove_after_processing true 
    processing_file_suffix .processing 
    error_file_suffix .error 
    run_interval 5 
</source> 

ここで、特定のファイルを解凍できるプラグインが必要です。私は、圧縮されたファイルを解凍できるプラグインを探してみました。私はのgzip -d FILE_PATHようなものを使用することができ、端末、プラグインのような役割を果たし、約見つけたとき、私は近くに来た

プラグインへのリンク:

http://docs.fluentd.org/v0.12/articles/in_exec

しかし、私がここに見る問題は、実行時に解凍されるファイルのパスを送ることができないということです。

誰かが私に助けてくれますか?あなたの条件を見てみると

答えて

2

、あなたはまだ、単に.gzというファイルと一致するワイルドカードパターンを探すためにパスを受け入れるシェルスクリプトを作成するには、何をする必要がありことです in_execモジュールを使用してそれを達成することができますファイル名。また、シェルスクリプト内では、指定されたワイルドカードパターンで渡されたfolder_path内のファイルを解凍することができます。

sh unzip.sh <folder_path_to_monitor> <wildcard_to_files>

そして、あなたのconfigに in_execタグで上記のコマンドを使用します。基本的にはあなたのシェルの実行は次のようになります。設定は次のようになります:

<source> 
    @type exec 
    format json 
    tag unzip.sh 
    command sh unzip.sh <folder_path_to_monitor> <wildcard_to_files> 
    run_interval 10s 
</source> 
関連する問題