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

**URL:** <https://discuss.elastic.co/t/logstash/287869>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [October 28, 2021, 4:10am UTC](https://discuss.elastic.co/t/logstash/287869 "2021-10-28T04:10:30Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kapibara824](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kapibara824/32/96009_2.png) [@kapibara824](https://discuss.elastic.co/u/kapibara824)\
**Post date:** [October 28, 2021, 4:10am UTC](https://discuss.elastic.co/t/logstash/287869/1 "2021-10-28T04:10:30Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)\
**Post date:** [October 28, 2021, 2:35pm UTC](https://discuss.elastic.co/t/logstash/287869/2 "2021-10-28T14:35:20Z")

</div>

イメージとしては、 [The distributor pattern](https://github.com/elastic/logstash/edit/7.15/docs/static/pipeline-pipeline-config.asciidoc)の箇所に書かれている内容に近いのではと思われます。

> **[Pipeline-to-Pipeline Communication | Logstash Reference \[7.15\] | Elastic](https://www.elastic.co/guide/en/logstash/current/pipeline-to-pipeline.html#distributor-pattern)**

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

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

> **[LogstashのPipeline to Pipeline Communicationを試す - CLOVER🍀](https://kazuhira-r.hatenablog.com/entry/2020/01/15/235517)**
>
> これは、なにをしたくて書いたもの？ Logstashのパイプラインを書いていると、だんだん設定ファイルが大きくなってきて、困るなぁと。 こういう時、どうしたらいいのだろうと調べたら、こういうのがあったので試してみることにしました。 Pipeline-to-Pipeline Communication | Logstash Reference \[7.5\] | Elastic Pipeline to Pipeline Communication...

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

---

<div class="post-metadata">

**Author:** ![kapibara824](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kapibara824/32/96009_2.png) [@kapibara824](https://discuss.elastic.co/u/kapibara824)\
**Post date:** [October 29, 2021, 4:51am UTC](https://discuss.elastic.co/t/logstash/287869/3 "2021-10-29T04:51:25Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [November 26, 2021, 4:51am UTC](https://discuss.elastic.co/t/logstash/287869/4 "2021-11-26T04:51:43Z")

</div>

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