# Grok filter - issues with spaces and special charecters

**URL:** <https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805>\
**Category:** Logstash\
**Created:** [May 15, 2017, 5:40pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805 "2017-05-15T17:40:23Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nikhilpawar1985](https://avatars.discourse-cdn.com/v4/letter/n/e68b1a/32.png) [@Nikhilpawar1985](https://discuss.elastic.co/u/Nikhilpawar1985)\
**Post date:** [May 15, 2017, 5:40pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/1 "2017-05-15T17:40:24Z")

</div>

Hi ,

I am having issues with skipping spaces and special characters which i am testing . I am trying to parse

INPUT :- [2017-05-15 00:00:07,397] :|: INFO :|: [dubprdsfe33.dub.jabodo.com](http://dubprdsfe33.dub.jabodo.com)

I am using following

input {  
file {  
path =\> "/apache/logs/download.log"  
start\_position =\> "beginning"  
}  
}  
filter {  
grok {  
match =\> { "message" =\> "[%{DATESTAMP:timestamp}]%{SPACE}:|:%{SPACE}%{WORD:severity}%{SPACE}"%{WORD:hostname}}  
}  
}  
output {  
stdout { codec =\> rubydebug }  
}

Can someone advise on this.

---

<div class="post-metadata">

**Author:** ![seanziee](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/seanziee/32/45151_2.png) [@seanziee](https://discuss.elastic.co/u/seanziee)\
**Post date:** [May 15, 2017, 6:04pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/2 "2017-05-15T18:04:53Z")

</div>

> [@Nikhilpawar1985](#):
>
> :|:

Did you forget the second set of :|: after "INFO"?

---

<div class="post-metadata">

**Author:** ![Nikhilpawar1985](https://avatars.discourse-cdn.com/v4/letter/n/e68b1a/32.png) [@Nikhilpawar1985](https://discuss.elastic.co/u/Nikhilpawar1985)\
**Post date:** [May 15, 2017, 6:15pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/3 "2017-05-15T18:15:30Z")

</div>

Now its working with  
filter {  
grok {  
match =\> { "message" =\> "%{DATESTAMP:timestamp}]%{SPACE}:|:%{SPACE}%{WORD:severity}%{SPACE}:|:%{SPACE}%{WORD:hostname}"}  
}  
}

with input [2017-05-15 00:00:07,397] :|: INFO :|: [dubprdsfe33.dub.jabodo.com](http://dubprdsfe33.dub.jabodo.com)

Thanks,

Now i am trying to parse another field in the log --9e346ae5ad894ce882d271d7ecfba227

INPUT :-[2017-05-13 13:24:35,152] :|: INFO :|: [dubprdfe33.dub.jabodo.com](http://dubprdfe33.dub.jabodo.com) :|:9e346ae5ad894ce882d271d7ecfba227

How can i define the last field ( 9e346ae5ad894ce882d271d7ecfba227)

Nikhil

---

<div class="post-metadata">

**Author:** ![seanziee](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/seanziee/32/45151_2.png) [@seanziee](https://discuss.elastic.co/u/seanziee)\
**Post date:** [May 15, 2017, 6:41pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/4 "2017-05-15T18:41:59Z")

</div>

I'm assuming it is randomly created so you can use %{NOTSPACE}

---

<div class="post-metadata">

**Author:** ![Nikhilpawar1985](https://avatars.discourse-cdn.com/v4/letter/n/e68b1a/32.png) [@Nikhilpawar1985](https://discuss.elastic.co/u/Nikhilpawar1985)\
**Post date:** [May 15, 2017, 7:08pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/5 "2017-05-15T19:08:28Z")

</div>

can you please guide me how i can use %{NOTSPACE} or will dreedydata will work ??

%{SPACE}:|:%{SPACE}%{GREEDYDATA:class}

---

<div class="post-metadata">

**Author:** ![seanziee](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/seanziee/32/45151_2.png) [@seanziee](https://discuss.elastic.co/u/seanziee)\
**Post date:** [May 15, 2017, 7:12pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/6 "2017-05-15T19:12:03Z")

</div>

> [@Nikhilpawar1985](#):
>
> can you please guide me how i can use %{NOTSPACE} or will dreedydata will work ??

Greedydata should also work, but NOTSPACE just pulls every character until there is a space. So it would be %{SPACE}:|:%{SPACE}%{WORD:hostname}%{SPACE}:|:%{NOTSPACE:UniqueID}.

---

<div class="post-metadata">

**Author:** ![Nikhilpawar1985](https://avatars.discourse-cdn.com/v4/letter/n/e68b1a/32.png) [@Nikhilpawar1985](https://discuss.elastic.co/u/Nikhilpawar1985)\
**Post date:** [May 15, 2017, 7:32pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/7 "2017-05-15T19:32:34Z")

</div>

I tried using %{SPACE}:|:%{SPACE}%{GREEDYDATA:class}

and - %{NOTSPACE:coinid\_key}  
grok {  
match =\> { "message" =\> "%{DATESTAMP:timestamp}\]%{SPACE}:|:%{SPACE}%{WORD:level}%{SPACE}:|:%{SPACE}%{WORD:hostname}%{SPACE}:|:%{NOTSPACE:coinid\_key}"}  
}

for input - [2017-05-15 00:00:07,751] :|: INFO :|: [dubprdsfe33.dub.jabodo.com](http://dubprdsfe33.dub.jabodo.com) :|: 26baee2d30164c2083e380b40b2a3b15

but not working .

OUTPUT

{  
"path" =\> "/apache/logs/download.log",  
"@timestamp" =\> 2017-05-15T19:27:46.876Z,  
"@version" =\> "1",  
"host" =\> "ip-172-31-4-117",  
"message" =\> "[2017-05-15 00:00:07,751] :|: INFO :|: [dubprdsfe33.dub.jabodo.com](http://dubprdsfe33.dub.jabodo.com) :|: 26baee2d30164c2083e380b40b2a3b15 ",  
"tags" =\> [  
[0] "\_grokparsefailure"  
]  
}

Can you please advise

---

<div class="post-metadata">

**Author:** ![seanziee](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/seanziee/32/45151_2.png) [@seanziee](https://discuss.elastic.co/u/seanziee)\
**Post date:** [May 15, 2017, 7:39pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/8 "2017-05-15T19:39:04Z")

</div>

> [@Nikhilpawar1985](#):
>
> "message" =\> "%{DATESTAMP:timestamp}]

Maybe it has to do with this bracket

---

<div class="post-metadata">

**Author:** ![Nikhilpawar1985](https://avatars.discourse-cdn.com/v4/letter/n/e68b1a/32.png) [@Nikhilpawar1985](https://discuss.elastic.co/u/Nikhilpawar1985)\
**Post date:** [May 15, 2017, 7:44pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/9 "2017-05-15T19:44:06Z")

</div>

Date and timestamp are always coming in bellow format  
[2017-05-15 00:00:07,397]  
[2017-05-15 00:00:07,564]  
[2017-05-15 00:00:07,877]  
[2017-05-15 00:00:07,966]  
[2017-05-15 00:00:07,988]

when i use it without GREEDYDATA and NOTSPACE . It works fine . But if i add it ..then it breaks .

Is there any other way i can define --%{DATESTAMP:timestamp}] ---other than this .  
NOTE- i am not using [ at the start to skip [ . If i use then it wot work

Thanks

---

<div class="post-metadata">

**Author:** ![Nikhilpawar1985](https://avatars.discourse-cdn.com/v4/letter/n/e68b1a/32.png) [@Nikhilpawar1985](https://discuss.elastic.co/u/Nikhilpawar1985)\
**Post date:** [May 15, 2017, 9:14pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/10 "2017-05-15T21:14:42Z")

</div>

I think the problem is with===== [dubprdsfe33.dub.jabodo.com](http://dubprdsfe33.dub.jabodo.com)

How can i take this as a whole field...consider as hostname

---

<div class="post-metadata">

**Author:** ![Nikhilpawar1985](https://avatars.discourse-cdn.com/v4/letter/n/e68b1a/32.png) [@Nikhilpawar1985](https://discuss.elastic.co/u/Nikhilpawar1985)\
**Post date:** [May 15, 2017, 9:50pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/11 "2017-05-15T21:50:19Z")

</div>

Solved with -%{USERNAME:hostname}

---

<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 12, 2017, 9:54pm UTC](https://discuss.elastic.co/t/grok-filter-issues-with-spaces-and-special-charecters/85805/12 "2017-06-12T21:54:25Z")

</div>

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