# Configure Pipelines in pipelines.yml

**URL:** <https://discuss.elastic.co/t/configure-pipelines-in-pipelines-yml/174251>\
**Category:** Logstash\
**Created:** [March 28, 2019, 6:49am UTC](https://discuss.elastic.co/t/configure-pipelines-in-pipelines-yml/174251 "2019-03-28T06:49:31Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![cawoodm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/cawoodm/32/14083_2.png) [@cawoodm](https://discuss.elastic.co/u/cawoodm)\
**Post date:** [March 28, 2019, 6:49am UTC](https://discuss.elastic.co/t/configure-pipelines-in-pipelines-yml/174251/1 "2019-03-28T06:49:31Z")

</div>

I know we can specify pipelines in pipelines.yml but can we configure them as well? Ideally we could have one config file which is flexible enough to do different things depending on fields we send to it from pipelines.yml.

```auto
 pipeline.id: my-pipeline_1
  path.config: "/etc/path/to/myflexible.config"
  fields.custom: "value1"

 pipeline.id: my-pipeline_2
  path.config: "/etc/path/to/myflexible.config"
  fields.custom: "value2"

```

---

<div class="post-metadata">

**Author:** ![kharvey](https://avatars.discourse-cdn.com/v4/letter/k/d07c76/32.png) [@kharvey](https://discuss.elastic.co/u/kharvey)\
**Post date:** [April 1, 2019, 5:19pm UTC](https://discuss.elastic.co/t/configure-pipelines-in-pipelines-yml/174251/2 "2019-04-01T17:19:16Z")

</div>

I'm not sure what you are asking for. You may take a look at this:  
[https://www.elastic.co/guide/en/logstash/current/pipeline-to-pipeline.html](https://www.elastic.co/guide/en/logstash/current/pipeline-to-pipeline.html)

I use if else if logic in my pipelines.yml to send different log files to different pipelines.

```auto
- pipeline.id: port5044
  config.string: |
    input { 
      beats { 
        port => 5044
      } 
    }
    output {
	  if "dmesg" in [fields] {
        pipeline {
          send_to => dmesg_log
        }
      }
      else if "postgres" in [fields] {
        pipeline {
          send_to => postgres_log
        }
      }
      else if "meraki" in [fields] {
        pipeline {
          send_to => meraki_syslog
        }
      }
      else if "forum" in [fields] {
        pipeline {
          send_to => forum_help
        }
      }
      else {
        pipeline {
          send_to => zip_file
        }
      }
    }
- pipeline.id: dmesg
  path.config: "/etc/logstash/conf.d/dmesg/*"
- pipeline.id: postgres
  path.config: "/etc/logstash/conf.d/postgres/*"
- pipeline.id: forum_help
  path.config: "/etc/logstash/conf.d/ForumHelp/*"
- pipeline.id: meraki
  path.config: "/etc/logstash/conf.d/meraki/*"
- pipeline.id: zips
  path.config: "/etc/logstash/conf.d/zip_file.conf"
```

You can use config.string to do different things like add fields and such if you want.

---

<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:** [April 29, 2019, 5:19pm UTC](https://discuss.elastic.co/t/configure-pipelines-in-pipelines-yml/174251/3 "2019-04-29T17:19:18Z")

</div>

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