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.

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 parse_syslog_bsd() procedure of xm_syslog.

Configuration

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

File permissions

The following directives are for specifying permissions for the created socket, pipe, or, file.

Group

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

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.

User

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

Optional directives

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.

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.

UDS

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

UDSType

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

Examples

Example 1. Using the im_uds module

This configuration will accept logs via the specified socket and write them to a 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. It also specifies the 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>