tomcat - logstash multline issue with java logs -


i installing logstash tomcat , having issue grab java stack trace call, following config

input   {  udp {    type => "tomcat"    port => "514"    format => "plain"   }  }  filter{ multiline {             pattern => "(^.+exception.*)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*caused by:.+)"             => "previous" } } 

here sample logs of tomcat

2014-03-24 19:08:53,246 [thread-pool8] error org.apache.catalina.core.containerbase.[engine].[localhost] - exception processing errorpage[errorcode=500, location=/error/error500.jsp] org.apache.jasper.jasperexception: java.lang.nullpointerexception         @ org.apache.jasper.servlet.jspservletwrapper.handlejspexception(jspservletwrapper.java:549)         @ org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:470)         @ org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:390)         @ org.apache.jasper.servlet.jspservlet.service(jspservlet.java:334)         @ javax.servlet.http.httpservlet.service(httpservlet.java:728)         @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:305)         @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:210)         @ org.apache.catalina.core.applicationdispatcher.invoke(applicationdispatcher.java:749)         @ org.apache.catalina.core.applicationdispatcher.processrequest(applicationdispatcher.java:489)         @ org.apache.catalina.core.applicationdispatcher.doforward(applicationdispatcher.java:412)         @ org.apache.catalina.core.applicationdispatcher.forward(applicationdispatcher.java:339)         @ org.apache.catalina.core.standardhostvalve.custom(standardhostvalve.java:467)         @ org.apache.catalina.core.standardhostvalve.status(standardhostvalve.java:338)         @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:203)         @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:99)         @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:118)         @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:408)         @ org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1023)         @ org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:589)         @ org.apache.tomcat.util.net.nioendpoint$socketprocessor.run(nioendpoint.java:1686)         @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145)         @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615)         @ java.lang.thread.run(thread.java:744) caused by: java.lang.nullpointerexception         @ org.apache.jsp.error.error500_jsp._jspservice(error500_jsp.java:266)         @ org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:70)         @ javax.servlet.http.httpservlet.service(httpservlet.java:728)         @ org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:432)         ... 21 more 

i have tired combination , none of work :( don't know how works other folks..

edit:

i have tried following , didn't work too

pattern => "^%{timestamp_iso8601}"        negate => true 

following result

filter received {:event=>{"message"=>"<139>2014-03-24 21:07:58,908 [] [] [thread-pool4] error org.apache.catalina.core.containerbase.[engine].[localhost] - exception processing errorpage[errorcode=500, location=/error/error500.jsp]\n", "@version"=>"1", "@timestamp"=>"2014-03-25t01:07:59.128z", "type"=>"tomcat", "host"=>"10.3.68.22"}, :level=>:debug, :file=>"(eval)", :line=>"15"} <139>2014-03-24 21:07:58,908 [] [] [thread-pool4] error org.apache.catalina.core.containerbase.[engine].[localhost] - exception processing errorpage[errorcode=500, location=/error/error500.jsp]  {:pattern=>"^%{timestamp_iso8601} ", :match=>false, :negate=>true, :level=>:debug, :file=>"logstash/filters/multiline.rb", :line=>"160"} filter received {:event=>{"message"=>"<139>org.apache.jasper.jasperexception: java.lang.nullpointerexception", "@version"=>"1", "@timestamp"=>"2014-03-25t01:07:59.131z", "type"=>"tomcat", "host"=>"10.3.68.22"}, :level=>:debug, :file=>"(eval)", :line=>"15"} <139>org.apache.jasper.jasperexception: java.lang.nullpointerexception {:pattern=>"^%{timestamp_iso8601} ", :match=>false, :negate=>true, :level=>:debug, :file=>"logstash/filters/multiline.rb", :line=>"160"} filter received {:event=>{"message"=>"<139>    @ org.apache.jasper.servlet.jspservletwrapper.handlejspexception(jspservletwrapper.java:549)", "@version"=>"1", "@timestamp"=>"2014-03-25t01:07:59.134z", "type"=>"tomcat", "host"=>"10.3.68.22"}, :level=>:debug, :file=>"(eval)", :line=>"15"} 

update:

i ran logstash in debug mode udp protocol , strange number <139> coming in @messages see following output of debug, if use nc command send sample logs works somehow tomcat syslog not working

{        "message" => "<139>2014-03-28 13:52:25,548 [] [] [thread-pool2] error org.apache.catalina.core.containerbase.[engine].[localhost] - exception processing errorpage[errorcode=500, location=/error/error500.jsp]\n",       "@version" => "1",     "@timestamp" => "2014-03-28t17:52:26.116z",           "host" => "10.3.68.22" } {        "message" => "<139>org.apache.jasper.jasperexception: java.lang.nullpointerexception",       "@version" => "1",     "@timestamp" => "2014-03-28t17:52:26.134z",           "host" => "10.3.68.22" } {        "message" => "<139>    @ org.apache.jasper.servlet.jspservletwrapper.handlejspexception(jspservletwrapper.java:549)",       "@version" => "1",     "@timestamp" => "2014-03-28t17:52:26.151z",           "host" => "10.3.68.22" } {        "message" => "<139>    @ org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:470)",       "@version" => "1",     "@timestamp" => "2014-03-28t17:52:26.166z",           "host" => "10.3.68.22" } {        "message" => "<139>    @ org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:390)",       "@version" => "1",     "@timestamp" => "2014-03-28t17:52:26.183z",           "host" => "10.3.68.22" } 

whether logs start date time?

you can use pattern. example,

input {     stdin {     } }  filter {     multiline {        pattern => "^%{timestamp_iso8601} "        negate => true        => previous     } }  output {     stdout {debug => true} } 

this filter worked @ me logs. hope can :)


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -