Reliable Event Logging Protocol
   HOME

TheInfoList



OR:

Reliable Event Logging Protocol (RELP), a
networking protocol A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniza ...
for
computer data logging In computing, logging is the act of keeping a wikt:log#Etymology 2, log of Event (computing), events that occur in a computer system, such as problems, errors or just information on current operations. These events may occur in the operating sys ...
in computer networks, extends the functionality of the
syslog In computing, syslog is a standard for message logging. It allows separation of the software that generates messages, the system that stores them, and the software that reports and analyzes them. Each message is labeled with a facility code, i ...
protocol to provide reliable delivery of event messages. It is most often used in environments which do not tolerate message loss, such as the
financial industry Financial services are the economic services provided by the finance industry, which encompasses a broad range of businesses that manage money, including credit unions, banks, credit-card companies, insurance companies, accountancy companies, ...
.


Overview

RELP uses TCP for message transmission. This provides basic protection against message loss, but does not guarantee delivery under all circumstances. When a connection aborts, TCP cannot reliably detect whether the last messages sent have actually reached their destination. Unlike the syslog protocol, RELP works with a
backchannel Backchannel is the use of networked computers to maintain a real-time online conversation alongside the primary group activity or live spoken remarks. The term was coined from the linguistics term to describe listeners' behaviours during verbal ...
which conveys information back to the sender about messages processed by the receiver. This enables RELP to always know which messages have been properly received, even in the case of a connection abort.


History

RELP was developed in 2008 as a reliable protocol for
rsyslog Rsyslog is an open-source software utility used on UNIX and Unix-like computer systems for forwarding log messages in an IP network. It implements the basic syslog protocol, extends it with content-based filtering, rich filtering capabilities, q ...
-to-rsyslog communication. As RELP designer
Rainer Gerhards Rainer Gerhards (born March 11, 1967) is a German software engineer, network engineer, and protocol designer best known for his Computer data logging work including Rsyslog and Reliable Event Logging Protocol. He began developing Rsyslog in 2 ...
explains, the lack of reliable transmission in industry-standard syslog was a core motivation to create RELP. Originally, RFC 3195 syslog was considered to take up this part in rsyslog, but it suffered from high overhead and missing support for new IETF syslog standards (which have since been published as RFC 5424, but were not named at that time). While RELP was initially meant solely for rsyslog use, it became adopted more widely. Currently tools both under Linux and Windows support RELP. There are also in-house deployments for Java. While RELP is still not formally standardized, it has evolved into an industry standard for computer logging.


Technical details

RELP is inspired by RFC 3195 syslog and RFC 3080. During initial connection, sender and receiver negotiate session options, like supported command set or application level window size. Network event messages are transferred as commands, where the receiver acknowledges each command as soon as it has processed it. Sessions may be closed by both sender and receiver, but usually should be terminated by the sender side. In order to facilitate message recovery on session aborts, RELP keeps transaction numbers for each command, and negotiates which messages need to be resent on session reestablishment. The current version of RELP does not specify native TLS support. However, practical deployments use wrappers around the RELP session in order to provide that functionality.


Implementations

Only publicly available implementations are listed. This list is not exhaustive.
librelp
- the original C RELP library *
rsyslog Rsyslog is an open-source software utility used on UNIX and Unix-like computer systems for forwarding log messages in an IP network. It implements the basic syslog protocol, extends it with content-based filtering, rich filtering capabilities, q ...
* MonitorWare (Windows)
logstash

rlp_01
- Java RELP Library
jla_01
- RELP Logback Plugin
jla_04
- Java Util Logging RELP Handler
jla_05
- Log4j RELP Plugin


References

{{Reflist Internet protocols Internet Standards System administration