Logstashで複数の種類のログを一つのパイプラインで処理したい

同一パイプラインで複数の種類のログを処理したいです。
具体的に言うと同じfilebeatでタグ等で分けずにlogstashに送信し、
grokを書いてAのパターンにマッチするログはそこで処理し、AにマッチせずBパターンにマッチするログはそこで処理し...みたいな感じでやりたいです
ログの配置上フォーマットごとにタグ分けやfilebeatを分けると言ったことが難しいので上記のやり方もしくは別のやり方でいい方法があれば教えていただきたいです。

イメージとしては、 The distributor patternの箇所に書かれている内容に近いのではと思われます。

ここの例では、親のPipelineで、あるフィールドの値をもとに分岐させて処理するpipelineを分けている例が紹介されています。

日本語ですと、こちらのBlogが内容をつかみやすいかと思われます。

ログAのパターンの文字列であれば、Grokでadd_tagでlogAを追加して、OutputでlogAが入っていたら、Pipeline_Aに、
ログBのパターンの文字列であれば、Grokでadd_tagでlogBを追加して、OutputでlogBが入っていたら、Pipeline_Bに・・・というようにすると、おやりになりたいことが実現できるのではないでしょうか。

わかりやすい提案ありがとうございます。
こちらのやり方でうまくできそうです。
ダウンストリームのパイプラインの振り分ける際の条件設定はタグ等を追加できない場合どのような条件を設定するのがいいですか?
/var/log/rsyslog/配下にホスト単位でディレクトリを作成してその下に各ホストのログを格納しているのですが、ファイル名などからログフォーマットの規則を予測できないためタグ付けするのが難しいのですが、パイプラインを振り分ける際の条件設定はどのような条件を書くのがよろしいでしょうか?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.