ZeroMQ (om_zmq)

This module provides message transport over ZeroMQ, a scalable high-throughput messaging library.

See the im_zmq for the input pair of this module.

Configuration

The om_zmq module accepts the following directives in addition to the common module directives. The Address, ConnectionType, Port, and SocketType directives are required.

Required directives

The following directives are required for the module to start.

Address

This directive specifies the ZeroMQ socket address.

ConnectionType

This mandatory directive specifies the underlying transport protocol. It may be one of the following: TCP, PGM, or EPGM.

Port

This directive specifies the ZeroMQ socket port.

SocketType

This mandatory directive defines the type of the socket to be used. It may be one of the following: REQ, ROUTER, PUB, XPUB, or PUSH. This must be set to PUB if ConnectionType is set to PGM or EPGM.

Optional directives

Interface

This directive specifies the ZeroMQ socket interface.

Listen

If this boolean directive is set to TRUE, om_zmq will bind to the Address specified and listen for connections. If FALSE, om_zmq will connect to the Address. The default is FALSE.

OutputType

See the OutputType directive in the list of common module directives. The default value is Dgram.

SockOpt

This directive can be used to set ZeroMQ socket options. For example, SockOpt ZMQ_BACKLOG 2000. This directive may be used more than once to set multiple options.

Examples

Example 1. Using the om_zmq Module

This example configuration reads log messages from a file and forwards them via ZeroMQ PUSH socket over TCP.

nxlog.conf
<Input file>
    Module          im_file
    File            "/var/log/messages"
</Input>

<Output zmq>
    Module          om_zmq
    SocketType      PUSH
    ConnectionType  TCP
    Address         10.0.0.1
    Port            1514
</Output>

<Route file_to_zmq>
    Path            file => zmq
</Route>