OpenNMS syslogd allow receiving messages on TCP

Description

Current OpenNMS Syslogd allows only to receive Syslog messages in UDP. The Syslogd should be configurable to receive log messages on TCP.

In bigger environments with a lots of logs, the centralized logging becomes more and more unreliable cause dropping of UDP messages starts quite early, regarding missing Congestion Control of UDP.

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Seth Leger August 3, 2016 at 5:34 PM

We should be able to write a simple RFC-6587 Syslog decoder. The code for the XML decoder that I'm using inside Eventd is easy to read:

http://netty.io/5.0/xref/io/netty/handler/codec/xml/XmlFrameDecoder.html

http://netty.io/wiki/user-guide-for-4.x.html#wiki-h3-11

Seth Leger August 3, 2016 at 5:04 PM

This should be much easier now that we are using Camel+Netty as the default syslog receiver. To implement a TCP listener, it is just a matter of starting another Camel Netty endpoint with an appropriate protocol codec for TCP syslog.

Per RFC-6587, it looks like there are two different framing protocols for TCP syslog: an "octet counting" length preamble and trailing-character-delimited. We may have to chain multiple Netty codecs together or write a new codec to be able to handle both conventions at the same time.

Details

Assignee

Reporter

Labels

Affects versions

Priority

PagerDuty

Created February 13, 2014 at 4:27 AM
Updated September 21, 2021 at 9:17 PM

Flag notifications