syslog-ng

syslog-ng is a free and open-source implementation of the syslog protocol for Unix and Unix-like systems. It extends the original syslogd model with content-based filtering, rich filtering capabilities, flexible configuration options and adds important features to syslog, like using TCP for transport. As of today, syslog-ng is developed by Balabit IT Security Ltd. It has three editions with a common codebase. The first is called syslog-ng Open Source Edition (OSE) with the license LGPL. The second is called Premium Edition (PE) and has additional plugins (modules) under a proprietary license. The third is called Storebox (SSB), which comes as an appliance with a Web-based UI as well as additional features including ultra-fast-text search, unified search, content-based alerting and a premier tier support[2].

syslog-ng
Original author(s)Balázs Scheidler
Initial release1998
Stable release
3.28.1[1] / June 23, 2020 (2020-06-23)
Repository
Operating systemUnix-like
TypeSystem logging
License
  • Core: LGPL
  • Plugins: GPLv2
Websitewww.syslog-ng.com/products/open-source-log-management/ 

In January 2018, syslog-ng, as part of Balabit, was acquired by One Identity, a global vendor of identity and access management solutions under the Quest Software umbrella. The syslog-ng team remains an independent business within the One Identity organization and continues to develop its open source and commercial solutions under the syslog-ng brand.

Protocol

syslog-ng uses the standard BSD syslog protocol, specified in RFC 3164. As the text of RFC 3164 is an informational description and not a standard, some incompatible extensions of it emerged. Since version 3.0 syslog-ng also supports the syslog protocol specified in RFC 5424. syslog-ng interoperates with a variety of devices, and the format of relayed messages can be customized.

Extensions to the original syslog-ng protocol include:

  • ISO 8601 timestamps with millisecond granularity and time zone information
  • The addition of the name of relays in additional host fields, to make it possible to track the path of a given message
  • Reliable transport using TCP
  • TLS encryption (Since 3.0.1 in OSE [3])

History

The syslog-ng project began in 1998, when Balázs Scheidler, the primary author of syslog-ng, ported the existing nsyslogd code to Linux. The 1.0.x branch of syslog-ng was still based on the nsyslogd sources and are available in the syslog-ng source archive.

Right after the release of syslog-ng 1.0.x, a reimplementation of the code base started to address some of the shortcomings of nsyslogd and to address the licensing concerns of Darren Reed, the original nsyslogd author. This reimplementation was named stable in the October 1999 with the release of version 1.2.0. This time around, syslog-ng depended on some code originally developed for lsh by Niels Möller.

Three major releases (1.2, 1.4 and 1.6) were using this code base, the last release of the 1.6.x branch in February 2007. In this period of about 8 years, syslog-ng became one of the popular alternative syslog implementations.

In a volunteer based effort, yet another rewrite was started back in 2001, dropping lsh code and using the more widely available GLib library. This rewrite of the codebase took its time, the first stable release of 2.0.0 happened in October 2006.

Development efforts were focused on improving the 2.0.x branch; support for 1.6.x was dropped at the end of 2007. Support for 2.x was dropped at the end of 2009, but it is still used in some Linux distributions.[4][5] Balabit, the company behind syslog-ng, started a parallel, commercial fork of syslog-ng, called syslog-ng Premium Edition. Portions of the commercial income are used to sponsor development of the free version.

Syslog-ng version 3.0 was released in the fourth quarter of 2008.

Starting with the 3.0 version developments efforts were parallel on the Premium and on the Open Source Editions. PE efforts were focused on quality, transport reliability, performance and encrypted log storage. The Open Source Edition efforts focused on improving the flexibility of the core infrastructure to allow more and more different, non-syslog message sources.

Both the OSE & PE forks produced two releases (3.1 and 3.2) in 2010.

Features

syslog-ng provides a number of features in addition to transporting syslog messages and storing them in plain text log files:

  • The ability to format log messages using Unix shell-like variable expansion (can break cross-platform log format compatibility)
  • The use of this shell-like variable expansion when naming files, covering multiple destination files with a single statement
  • The ability to send log messages to local applications
  • Support for message flow-control in network transport
  • Logging directly into a database (since syslog-ng OSE 2.1)
  • Rewrite portions of the syslog message with set and substitute primitives (since syslog-ng OSE 3.0)
  • Classify incoming log messages and at the same time extract structured information from the unstructured syslog message (since syslog-ng OSE 3.0)
  • Generic name–value support: each message is just a set of name–value pairs, which can be used to store extra information (since syslog-ng OSE 3.0)
  • The ability to process structured message formats transmitted over syslog, like extract columns from CSV formatted lines (since syslog-ng OSE 3.0)
  • The ability to correlate multiple incoming messages to form a more complex, correlated event (since syslog-ng OSE 3.2);[6]

Distributions

syslog-ng is available on a number of different Linux and Unix distributions. Some install it as the system default, or provide it as a package that replaces the previous standard syslogd. Several Linux distributions that used syslog-ng have replaced it with rsyslog.

Portability

syslog-ng is highly portable to many Unix systems, old and new alike. A list of the currently known to work Unix versions are found below:

The list above is based on BalaBit's current first hand experience, other platforms may also work, but your mileage may vary.

  • RFC 3164 - The BSD syslog protocol
  • RFC 5424 - The Syslog Protocol
  • RFC 5425 - Transport Layer Security (TLS) Transport Mapping for Syslog
  • RFC 5426 - Transmission of Syslog Messages over UDP
gollark: In C modules, so I can't even patch it.
gollark: It's hardcoded.
gollark: The limit is exactly the year 9999.
gollark: Python has an annoying limitation where times above 9999 years are artificially blocked.
gollark: CBOR somehow became the trendy thing despite mostly being worse.

See also

References

  1. "Releases - balabit/syslog-ng". Retrieved 23 June 2020 via GitHub.
  2. https://www.syslog-ng.com/#. Missing or empty |title= (help); External link in |website= (help); Missing or empty |url= (help)
  3. "Changelog 3.0.1". Retrieved 2009-01-21.
  4. "Debian syslog-ng package". Retrieved 2011-11-11.
  5. "SLES syslog-ng documentation" (PDF). Retrieved 2011-11-11.
  6. "Correlating lo messages with syslog-ng". Retrieved 2011-11-11.
  7. "Chapter 2. What's new in Debian GNU/Linux 5.0". Retrieved 2010-05-22.
  8. https://wiki.archlinux.org/index.php/Rsyslog
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.