Unix Domain Sockets (im_uds)

This module allows log messages to be received over a Unix domain socket. Unix systems traditionally have a /dev/log or similar socket used by the system logger to accept messages. Applications use the syslog(3) system call to send messages to the system logger.

To examine the supported platforms, see the list of installer packages in the Available Modules chapter.
It is recommended to disable FlowControl when this module is used to collect local Syslog messages from the /dev/log Unix domain socket. Otherwise, if the corresponding Output queue becomes full, the syslog() system call will block in any programs trying to write to the system log and an unresponsive system may result.

For parsing Syslog messages, see the pm_transformer module or the parse_syslog_bsd() procedure of xm_syslog.

Configuration

The im_uds module accepts the following directives in addition to the common module directives.

UDS

This specifies the path of the Unix domain socket. The default is /dev/log.

CreateDir

If set to TRUE, this optional boolean directive instructs the module to create the directory where the UDS socket file is located, if it does not already exist. The default is FALSE.

Group

Use this directive to set the group ownership for the created socket or pipe or file. By default, this is the group NXLog is running as, (which may be specified by the global Group directive). This directive is not currently supported on Windows.

InputType

See the InputType directive in the list of common module directives. This defaults to dgram if UDSType is set to dgram or to linebased if UDSType is set to stream.

Perms

This directive specifies the permissions to use for the created socket or pipe or file. This must be a four-digit octal value beginning with a zero. By default, OS default permissions will be set. This directive is not currently supported on Windows.

UDSType

This directive specifies the domain socket type. Supported values are dgram and stream. The default is dgram.

User

Use this directive to set the user ownership for the created socket or pipe or file. By default, this is the user NXLog is running as (which may be specified by the global User directive). This directive is not currently supported on Windows.


Examples

Example 1. Using the im_uds module

This configuration will accept logs via the specified socket and write them to file.

nxlog.conf
<Input uds>
    Module      im_uds
    UDS         /dev/log
    FlowControl False
</Input>
Example 2. Setting socket ownership with im_uds

This configuration accepts logs via the specified socket, and also specifies ownership and permissions to use for the socket.

nxlog.conf
<Input uds>
    Module  im_uds
    UDS         /opt/nxlog/var/spool/nxlog/socket
    UDSOwner    root
    UDSGroup    adm
    UDSPerms    0660
</Input>