# Конструкции if else в секции input

**URL:** <https://discuss.elastic.co/t/if-else-input/151326>\
**Category:** Вопросы на русском языке\
**Created:** [October 6, 2018, 11:29pm UTC](https://discuss.elastic.co/t/if-else-input/151326 "2018-10-06T23:29:05Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![orsa](https://avatars.discourse-cdn.com/v4/letter/o/5daacb/32.png) [@orsa](https://discuss.elastic.co/u/orsa)\
**Post date:** [October 6, 2018, 11:29pm UTC](https://discuss.elastic.co/t/if-else-input/151326/1 "2018-10-06T23:29:05Z")

</div>

Коллеги доброго дня,  
есть поток файлов идущих по rsyslog на сервер logstash.  
Есть желание разделить multiline правила в зависимости от того какой файл сейчас обрабатывается.  
Возможно ли использовать конструкцию if [source] == "file\_name" { } в разделе input?  
или есть другие способы?

Вариант с разделением портов не подходит, так как файлы идут из нескольких агрегированных источников.

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [October 7, 2018, 9:59pm UTC](https://discuss.elastic.co/t/if-else-input/151326/2 "2018-10-07T21:59:57Z")

</div>

Conditionals могут быть только в фильтре, но я думаю можно добавить два `file` input с разными `codec`-ами и разными `path` на которые они будут реагировать.

---

<div class="post-metadata">

**Author:** ![orsa](https://avatars.discourse-cdn.com/v4/letter/o/5daacb/32.png) [@orsa](https://discuss.elastic.co/u/orsa)\
**Post date:** [October 7, 2018, 11:03pm UTC](https://discuss.elastic.co/t/if-else-input/151326/3 "2018-10-07T23:03:33Z")

</div>

Игорь, доброго вечера.  
а можно абстрактный пример?  
я не сумел собрать подобную конструкцию (

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [October 10, 2018, 10:25am UTC](https://discuss.elastic.co/t/if-else-input/151326/4 "2018-10-10T10:25:43Z")

</div>

Вы так не пробовали? Что не работает?

```auto
input {
  file {
    path => '/path/app1/*.log'
    codec => ...........
    tags => ['app1']
  }
}

input {
  file {
    path => '/path/app1/*.log'
    codec => ...........
    tags => ['app2']
  }
}

```

---

<div class="post-metadata">

**Author:** ![orsa](https://avatars.discourse-cdn.com/v4/letter/o/5daacb/32.png) [@orsa](https://discuss.elastic.co/u/orsa)\
**Post date:** [October 10, 2018, 7:52pm UTC](https://discuss.elastic.co/t/if-else-input/151326/5 "2018-10-10T19:52:53Z")

</div>

> [@Igor\_Motov](#):
>
> tags =\> ['app1']

Игорь, доброго вечера  
эта конструкция у меня работает,  
я неправильно описал свою текущую конфигурацию, прошу прощения,  
у меня настроен слушатель udp

```
input {
 udp {
   port => 514
   type => "rsyslog"
 }

```

и вот как его разделить не разделяя по портам, я не понимаю и возможно ли это в принципе.

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [October 11, 2018, 10:28am UTC](https://discuss.elastic.co/t/if-else-input/151326/6 "2018-10-11T10:28:11Z")

</div>

Я в logstash не специалист, так что может я что-то недопонимаю, но так на абстрактном уровне, каким образом мы можем определить, откуда пришел запрос до того, как мы его обработали, если мы все шлем на один и тот же порт?

---

<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 8, 2018, 10:28am UTC](https://discuss.elastic.co/t/if-else-input/151326/7 "2018-11-08T10:28:12Z")

</div>

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