# Grok not able to parse log data

**URL:** <https://discuss.elastic.co/t/grok-not-able-to-parse-log-data/65768>\
**Category:** Beats\
**Tags:** filebeat\
**Created:** [November 11, 2016, 8:22am UTC](https://discuss.elastic.co/t/grok-not-able-to-parse-log-data/65768 "2016-11-11T08:22:29Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aditya\_Srivastava](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aditya_srivastava/32/43287_2.png) [@Aditya\_Srivastava](https://discuss.elastic.co/u/Aditya_Srivastava)\
**Post date:** [November 11, 2016, 8:22am UTC](https://discuss.elastic.co/t/grok-not-able-to-parse-log-data/65768/1 "2016-11-11T08:22:29Z")

</div>

I want to write a grok in logstash filter  
Input string is

{"@timestamp":"2016-11-11T13:16:20.447Z","beat":{"hostname":"ip-1-2-3-4","name":"ip-1-2-3-4","version":"5.0.0"},"input\_type":"log","message":"Nov 11 13:17:23 ip-10-0-4-2 nginx01 10.100.200.400 - - [11/Nov/2016:11:40:53 +0530] "/GET name=aditya" 200 7589 resptime=0.016 - -- -","offset":28928355,"source":"/var/log/data/10.4.2.9/nginx01/2016-11-11.log","type":"nginx\_data"}

The grok filter i am applying is

grok {  
match =\> { "message" =\> "%{SYSLOGTIMESTAMP:syslog\_timestamp}  
%{SYSLOGHOST:syslog\_hostname}  
%{DATA:syslog\_program}(?:[%{POSINT:syslog\_pid}])?:  
%{GREEDYDATA:syslog\_message}" }  
}

But this is not working. Please help me what is wrong in it??

---

<div class="post-metadata">

**Author:** ![ruflin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ruflin/32/3116_2.png) [@ruflin](https://discuss.elastic.co/u/ruflin)\
**Post date:** [November 11, 2016, 11:51am UTC](https://discuss.elastic.co/t/grok-not-able-to-parse-log-data/65768/2 "2016-11-11T11:51:57Z")

</div>

This question is probably better fitted for the Logstash forum. Perhaps one of the grok debug apps can help? [https://grokdebug.herokuapp.com/](https://grokdebug.herokuapp.com/)

---

<div class="post-metadata">

**Author:** ![Aditya\_Srivastava](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aditya_srivastava/32/43287_2.png) [@Aditya\_Srivastava](https://discuss.elastic.co/u/Aditya_Srivastava)\
**Post date:** [November 11, 2016, 11:57am UTC](https://discuss.elastic.co/t/grok-not-able-to-parse-log-data/65768/3 "2016-11-11T11:57:36Z")

</div>

I found a solution to it.  
Also I wanted to know if my access log file has different kinds of data getting logged can I put multiple filter to parse each kind of lines being logged., EX

"Nov 11 12:51:11 ip-10-0-0-2 nginx 10.140.201.104 - - [11/Nov/2016:11:42:10 +0530] "GET name=aditya HTTP/1.1" 504  
Jan 1 06:25:43 mailserver14 postfix/cleanup[21403]: BEF25A72965: message-id=[20130101142543.5828399CCAF@mailserver14.example.com](mailto:20130101142543.5828399CCAF@mailserver14.example.com)

So you can see there are two different kind of data getting logged in same file.  
So now can I put multiple filters to handle each kind of logs???

---

<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:** [November 11, 2016, 12:44pm UTC](https://discuss.elastic.co/t/grok-not-able-to-parse-log-data/65768/4 "2016-11-11T12:44:21Z")

</div>

You can put any number filters in your configuration file.

---

<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:** [December 9, 2016, 12:44pm UTC](https://discuss.elastic.co/t/grok-not-able-to-parse-log-data/65768/5 "2016-12-09T12:44:32Z")

</div>

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