Configuring Syslogd2

(A step-by-step guide to Syslogd2 options)


Home Page

Configure Syslogd2

Conceptual Overview
Optional Feature Sets
Contents of the configuration File

Sample Files

Deployment

New Concepts

The Config File

Compile & Install

Misc Topics

Capabilities

Demonstrations

Reference

Glossary of Terms

External Links

Syslogd2 Project Site
DBD2 Home Page
DBD2 Project Site

Other References

RFC 3164 (The BSD Syslog Protocol)
RFC 3339 (Internet Time Format)
RFC 5424 (Syslog Version 1)

Focus on Network

Syslogd2 Input Options
Syslogd2 Output Options
Queueing and Data Loss

Conceptual Overview of the Configuration File

[Top of page]

A Syslogd2 cofiguration file starts with a standard, traditional syslog configuration file, then adds additional options and 'configuration commands'. We will do the same with this overview.

Conceptually, all syslog configuration files consist of an (empty) input-definition section, an (empty) set of include-files, an (empty) general-processing-configuration section, and a (non-empty) output-section. In practice (with Syslogd2), elements of these conceptual sections may appear in any order (including intermixed) in the configuration file.

The above description of a legacy configuration file also describes the Syslogd2 minimum configuration file. In fact, a traditional (legacy) syslog-configuration file is also an acceptable Syslogd2 configuration file if you are just doing local-host-logging:

*.* - /var/log/syslog.log
kern.* - /var/log/kernel.log
...

What makes Syslogd2 so different is that so little syntax structure had to be added to support Syslogd2's many features. A second major (conceptual) change is that Syslogd2 shifts the configuration focus from global paraneter settings to individualized connection settings, providing much more control over individual input sources (as well as more granular control over what data gets sent to output destinations). Conceptually, the additional syntax elements and concepts of Syslogd2 are:


The rules concerning the syntax of the configuration file have been somewhat relaxed:

Syntax Additions for Input and General-Processing Sections

Additional syntax nuances apply to the input-definition and general-configuration elements contained within the file:


# ~ --socket = /dev/logstream, stream, command # This is an in-line comment.

Contents of the Configuration File

[Top of page]

A Syslogd2 configuraiton file (no matter how complex) will consist only of:


The specific compile-time configuration of any Syslogd2 binary can be determined with either the --help or the --version commands. Either one will provide a list of all supported capabilities (in the form of 'CAP_*' declarations and their Enabled/Disabled status) as well as the compiled-in number of 'extra' facilities provided by that binary image.

Command-liune options can generally be divided into the following three categories.


Other than Parsing Control parameters (which are all base-level [built-in] command-line parameters), the numbers of command-line options and number of sub-options in each category will vary based on the compile-time feature-set selected for each compiled binary variant.

The option-list that has been added to both input and output connection specifications consists of:

  1. Identity Options: Options that identify specifics of the connection itself (port, protocol, filename, etc), separating one instance of this connection-type from another.
  2. Threadpool-Specific Options: Options that are unique to a particular type of threadpool and that apply to the overall threadpool rather than to a specific connection within the threadpool. These options affect the way the threadpool processes data and are usually provided either in the '--ThreadMaps' option or in individual connection option-lists. One example would be whether to poll the /proc/kmsg pseudo-file for kernel input or use a system-call to directly access the kernel's ring-buffer (completely bypassing the /proc filesystem for syslog input).
  3. Threadpool Selection and Confiuration Options: These are a set of common, general-purpose options available to all input and all output commands, regardless of threadpool-type.
  4. Other Generic Options: These options generally provide configuration for compile-time features, but can include choosing to enable/disable the internal cache/DNS support for individual connections, the specification of a filter to apply, a default facility/priority/hostname to use, whether to 'force' the default, or other settings such as connection-specific spooling parameters or output formats.

In more advanced configurations, the configuration file will likely contain parameters for various threadpools and (optional) feature-sets allocating system resources (thread-counts, buffer-space, etc) or specifying operational parameters, default values and/or filters to be applied to messages being processed, cache-file / DNS usage, etc). The configuration file will also contain information on the number and content of each threadpool used (among other settings).

The processing of each individual syslog message passes through three (3) distinct 'phases' of processing. This is true for all syslog processors, Syslogd2 just makes this process explicit. These 'phases' may be coupled loosely (via threadpool hand-off using FIFO buffers) or tightly (via direct subroutine calls). Regardless of the hand-off method between processing 'phases', the three phases remain pretty much the same: (1) data-input (obtain the raw data string and 'message envelope' data), (2) generic processing (parse and process the raw data string using the 'message envelope' data as required), (3) data-output (send appropriate data to specified destiunations).

The processing phase is almost completely dependent on the options selected for the individual connections whose data is it processing. Therefore almost all options for the processing 'phase' are actually configured in the various 'input-connection option-lists'.


[Top of page]