# Array variable or loop

**URL:** <https://discuss.elastic.co/t/array-variable-or-loop/27959>\
**Category:** Logstash\
**Created:** [August 24, 2015, 4:03pm UTC](https://discuss.elastic.co/t/array-variable-or-loop/27959 "2015-08-24T16:03:07Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![oussama](https://avatars.discourse-cdn.com/v4/letter/o/e9a140/32.png) [@oussama](https://discuss.elastic.co/u/oussama)\
**Post date:** [August 24, 2015, 4:03pm UTC](https://discuss.elastic.co/t/array-variable-or-loop/27959/1 "2015-08-24T16:03:07Z")

</div>

Hi,

I hava many input file in my configuration file, like this:

file {  
path =\> "/root/elasticsearch/test-logs/log-node1.log"  
type =\> "apache"  
}  
file {  
path =\> "/root/elasticsearch/test-logs/log-node2.log"  
type =\> "apache"  
}  
file {  
path =\> "/root/elasticsearch/test-logs/log-node3.log"  
type =\> "apache"  
}  
file {  
path =\> "/root/elasticsearch/test-logs/log-node4.log"  
type =\> "apacher"  
}

In my filter bloc, i test evry input file

I want to do somting like this :

i ={ 1,2, 3,4}

if [path] == "/root/elasticsearch/test-logs/log-node\*\*(i)\*\*.log" {

grok {  
patterns\_dir =\> "./patterns"  
match =\> ["message", "%{HTTPDATE:timestamp}|{DATA:httpsession}}"]

```
        }

```

mutate {  
add\_field =\> { "httpsessionNode(i)" =\> "%{httpsession}" }

}

}

Can u help me

thx

```
}
```

---

<div class="post-metadata">

**Author:** ![DracoBlue](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dracoblue/32/4362_2.png) [@DracoBlue](https://discuss.elastic.co/u/DracoBlue)\
**Post date:** [August 24, 2015, 4:35pm UTC](https://discuss.elastic.co/t/array-variable-or-loop/27959/2 "2015-08-24T16:35:32Z")

</div>

I don't know how to do this, but if you want to match on a specific file name pattern, you can use normal glob patterns (I added a \* instead of the number):

```
path => "/root/elasticsearch/test-logs/log-node*.log"

```

This matches all log-node\*.log files. This might work, if the number is somewhere in the log available to you.

---

<div class="post-metadata">

**Author:** ![oussama](https://avatars.discourse-cdn.com/v4/letter/o/e9a140/32.png) [@oussama](https://discuss.elastic.co/u/oussama)\
**Post date:** [August 24, 2015, 7:08pm UTC](https://discuss.elastic.co/t/array-variable-or-loop/27959/3 "2015-08-24T19:08:17Z")

</div>

thanks for your answer.

I wanna get a specific patterns for every node.

---

<div class="post-metadata">

**Author:** ![michaellizhou](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/michaellizhou/32/4143_2.png) [@michaellizhou](https://discuss.elastic.co/u/michaellizhou)\
**Post date:** [August 24, 2015, 8:38pm UTC](https://discuss.elastic.co/t/array-variable-or-loop/27959/4 "2015-08-24T20:38:04Z")

</div>

What is your goal? To have a field httpsessionNode(i) that contains the data?

To get your results the easiest way is to just create N separate logstash instances. Each with a certain path and you can easily set the httpsessionNode(i) value. Its not pretty but it works.

---

<div class="post-metadata">

**Author:** ![oussama](https://avatars.discourse-cdn.com/v4/letter/o/e9a140/32.png) [@oussama](https://discuss.elastic.co/u/oussama)\
**Post date:** [August 25, 2015, 7:26am UTC](https://discuss.elastic.co/t/array-variable-or-loop/27959/5 "2015-08-25T07:26:49Z")

</div>

Hi michael,

I modified my topic, i think that my goal is clear now,

Can i do that with 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:** [July 6, 2017, 5:30am UTC](https://discuss.elastic.co/t/array-variable-or-loop/27959/6 "2017-07-06T05:30:58Z")

</div>

Closed on July 6, 2017, 5:30am UTC


