# Multiple inputs and multiple outputs

**URL:** <https://discuss.elastic.co/t/multiple-inputs-and-multiple-outputs/87788>\
**Category:** Logstash\
**Created:** [May 31, 2017, 5:05pm UTC](https://discuss.elastic.co/t/multiple-inputs-and-multiple-outputs/87788 "2017-05-31T17:05:00Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jgarbora](https://avatars.discourse-cdn.com/v4/letter/j/9fc29f/32.png) [@jgarbora](https://discuss.elastic.co/u/jgarbora)\
**Post date:** [May 31, 2017, 5:05pm UTC](https://discuss.elastic.co/t/multiple-inputs-and-multiple-outputs/87788/1 "2017-05-31T17:05:00Z")

</div>

Hi there,

I'm trying to set multiple inputs and multiple outputs to different elasticsearch indexes ... and something I am doing wrong because everything is going to the else.

Here is my config:

```
 input {
    jdbc {
        jdbc_connection_string => "jdbc:mysql:127.0.0.1:3306/whatever"
        jdbc_user => "xxx"
        jdbc_password => "yyy"
        jdbc_driver_library => "mysql-connector-java-5.1.41.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        schedule => "* * * * *"
        statement => "SELECT * from table1 WHERE updated_at > :sql_last_value order by updated_at"
        use_column_value => true
        tracking_column => updated_at
        type => "table1"
        last_run_metadata_path => "/opt/logstash-5.4.0/sql-last-values/table1"
    }
      jdbc {
        jdbc_connection_string => "jdbc:mysql:127.0.0.1:3306/whatever"
        jdbc_user => "xxx"
        jdbc_password => "yyy"
        jdbc_driver_library => "mysql-connector-java-5.1.41.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        schedule => "* * * * *"
        statement => "SELECT * from table2 WHERE updated_at > :sql_last_value order by updated_at"
        use_column_value => true
        tracking_column => updated_at
        type => "table2"
        last_run_metadata_path => "/opt/logstash-5.4.0/sql-last-values/table2"
    }
}
output {
	if [type] == "table1" {
           elasticsearch {
                hosts => ["localhost:9200"]
                index => "table1"
                document_type => "table1"
                document_id => "%{id}"
        }
        file {
                codec => json_lines
                path => "/opt/logstash-5.4.0/logs/table1.log"
        }

    } else if [type] == "table2" {
           elasticsearch {
                hosts => ["localhost:9200"]
                index => "table2"
                document_type => "table2"
                document_id => "%{id}"
        }
    } else {
    	 file {
                codec => json_lines
                path => "/opt/logstash-5.4.0/logs/unknown.log"
        	}

    }
}

```

What am I doing wrong ? everything is going to the else block, to the /opt/logstash-5.4.0/logs/unknown.log

thank you in advance

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [June 1, 2017, 5:28am UTC](https://discuss.elastic.co/t/multiple-inputs-and-multiple-outputs/87788/2 "2017-06-01T05:28:17Z")

</div>

Please show an example line from unknown.log.

---

<div class="post-metadata">

**Author:** ![jgarbora](https://avatars.discourse-cdn.com/v4/letter/j/9fc29f/32.png) [@jgarbora](https://discuss.elastic.co/u/jgarbora)\
**Post date:** [June 1, 2017, 4:57pm UTC](https://discuss.elastic.co/t/multiple-inputs-and-multiple-outputs/87788/3 "2017-06-01T16:57:37Z")

</div>

I solved !  
using tags ...

input {  
jdbc {  
...  
tags =\> "table1"  
...  
}  
jdbc {  
...  
tags =\> "table2"  
...  
}  
}  
output {  
if "table1" in [tags] {

}

---

<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:** [June 29, 2017, 4:57pm UTC](https://discuss.elastic.co/t/multiple-inputs-and-multiple-outputs/87788/4 "2017-06-29T16:57:42Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Alex\_Marquardt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/alex_marquardt/32/42925_2.png) [@Alex\_Marquardt](https://discuss.elastic.co/u/Alex_Marquardt)\
**Post date:** [September 2, 2018, 1:09pm UTC](https://discuss.elastic.co/t/multiple-inputs-and-multiple-outputs/87788/5 "2018-09-02T13:09:56Z")

</div>

If you don't want to have the 'type' and/or 'tags' field in the documents that are output, you can also consider adding [metadata](https://www.elastic.co/blog/logstash-metadata) which will be used for directing data to different outputs, and removing the 'type' and/or 'tags' fields. I have written a blog post that demonstrates this approach at [https://alexmarquardt.com/2018/08/31/using-logstash-to-drive-filtered-data-from-a-single-source-into-multiple-output-destinations/](https://alexmarquardt.com/2018/08/31/using-logstash-to-drive-filtered-data-from-a-single-source-into-multiple-output-destinations/).
