We have a NetScaler loadbalancer in front of 3 graylog servers (they are all-in-one) because we didnt have the resources at the time to setup the cluster with seperate elasticsearch nodes.
We have Fortigate firewalls syslogging to the IP adress of the loadbalancer on UDP 30000. Works pretty fine. Every now and then we get this error message in the logs:
2020-08-26T16:54:26.257+02:00 ERROR [DecodingProcessor] Error processing message RawMessage{id=092d3410-e7ac-11ea-9380-00155d85450a, journalOffset=729253992, c
odec=syslog, payloadSize=652, timestamp=2020-08-26T14:54:26.257Z, remoteAddress=/10.221.5.170:47533}
java.time.format.DateTimeParseException: Text '1598453672&type=accesspoint' could not be parsed at index 2
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) ~[?:1.8.0_265]
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) ~[?:1.8.0_265]
at java.time.LocalTime.parse(LocalTime.java:441) ~[?:1.8.0_265]
at org.graylog2.syslog4j.server.impl.event.FortiGateSyslogEvent.parseDate(FortiGateSyslogEvent.java:90) ~[graylog.jar:?]
at org.graylog2.syslog4j.server.impl.event.FortiGateSyslogEvent.parse(FortiGateSyslogEvent.java:58) ~[graylog.jar:?]
at org.graylog2.syslog4j.server.impl.event.FortiGateSyslogEvent.<init>(FortiGateSyslogEvent.java:44) ~[graylog.jar:?]
at org.graylog2.inputs.codecs.SyslogCodec.parse(SyslogCodec.java:130) ~[graylog.jar:?]
at org.graylog2.inputs.codecs.SyslogCodec.decode(SyslogCodec.java:96) ~[graylog.jar:?]
at org.graylog2.shared.buffers.processors.DecodingProcessor.processMessage(DecodingProcessor.java:150) ~[graylog.jar:?]
at org.graylog2.shared.buffers.processors.DecodingProcessor.onEvent(DecodingProcessor.java:91) [graylog.jar:?]
at org.graylog2.shared.buffers.processors.ProcessBufferProcessor.onEvent(ProcessBufferProcessor.java:90) [graylog.jar:?]
at org.graylog2.shared.buffers.processors.ProcessBufferProcessor.onEvent(ProcessBufferProcessor.java:47) [graylog.jar:?]
at com.lmax.disruptor.WorkProcessor.run(WorkProcessor.java:143) [graylog.jar:?]
at com.codahale.metrics.InstrumentedThreadFactory$InstrumentedRunnable.run(InstrumentedThreadFactory.java:66) [graylog.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]
But i don’t know how to troubleshoot this. Can i find the message somewhere in an index? So i can see where it comes from? Because the source always seems to be the netscaler.
-edit-
I also see one now that says:
2020-08-27T10:31:33.173+02:00 ERROR [DecodingProcessor] Unable to decode raw message RawMessage{id=b6908650-e83f-11ea-8468-00155d85450b, journalOffset=907025781, codec=syslog, payloadSize=708, timestamp=2020-08-27T08:31:33.173Z, remoteAddress=/10.221.5.170:22891} on input <5f43cf861035f340f3c687d9>.
2020-08-27T10:31:33.174+02:00 ERROR [DecodingProcessor] Error processing message RawMessage{id=b6908650-e83f-11ea-8468-00155d85450b, journalOffset=907025781, codec=syslog, payloadSize=708, timestamp=2020-08-27T08:31:33.173Z, remoteAddress=/10.221.5.170:22891}
java.time.format.DateTimeParseException: Text '1598517093' could not be parsed at index 2
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) ~[?:1.8.0_265]
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851) ~[?:1.8.0_265]
at java.time.LocalTime.parse(LocalTime.java:441) ~[?:1.8.0_265]
at org.graylog2.syslog4j.server.impl.event.FortiGateSyslogEvent.parseDate(FortiGateSyslogEvent.java:90) ~[graylog.jar:?]
at org.graylog2.syslog4j.server.impl.event.FortiGateSyslogEvent.parse(FortiGateSyslogEvent.java:58) ~[graylog.jar:?]
at org.graylog2.syslog4j.server.impl.event.FortiGateSyslogEvent.<init>(FortiGateSyslogEvent.java:44) ~[graylog.jar:?]
at org.graylog2.inputs.codecs.SyslogCodec.parse(SyslogCodec.java:130) ~[graylog.jar:?]
at org.graylog2.inputs.codecs.SyslogCodec.decode(SyslogCodec.java:96) ~[graylog.jar:?]
at org.graylog2.shared.buffers.processors.DecodingProcessor.processMessage(DecodingProcessor.java:150) ~[graylog.jar:?]
at org.graylog2.shared.buffers.processors.DecodingProcessor.onEvent(DecodingProcessor.java:91) [graylog.jar:?]
at org.graylog2.shared.buffers.processors.ProcessBufferProcessor.onEvent(ProcessBufferProcessor.java:90) [graylog.jar:?]
at org.graylog2.shared.buffers.processors.ProcessBufferProcessor.onEvent(ProcessBufferProcessor.java:47) [graylog.jar:?]
at com.lmax.disruptor.WorkProcessor.run(WorkProcessor.java:143) [graylog.jar:?]
at com.codahale.metrics.InstrumentedThreadFactory$InstrumentedRunnable.run(InstrumentedThreadFactory.java:66) [graylog.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]
So this has something to do with the numbers?
If so, then it’s probably because of my Pipeline? Making an timestamp?
rule "Epoch Convert"
when
has_field("devname") && has_field("date") && has_field("time") && has_field("eventtime")
then
let epoch = parse_date("1970-01-01 00:00:00.000Z", "yyyy-MM-dd' 'HH:mm:ss.SSSZ");
let ts_seconds = seconds(to_long($message.eventtime));
set_field("epoch_timestamp", epoch + ts_seconds);
set_field("timestamp", epoch + ts_seconds);
End