NXLog Docs

ZeroMQ (im_zmq)

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

The corresponding output module is om_zmq.

To examine the supported platforms, see the list of installer packages in the Available Modules chapter.


The im_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.


This directive specifies the ZeroMQ socket address.


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


This directive specifies the ZeroMQ socket port.


This mandatory directive defines the type of the socket to be used. It may be one of the following: REP, DEALER, SUB, XSUB, or PULL. This must be set to SUB if ConnectionType is set to PGM or EPGM.

Optional directives


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


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


This directive specifies the ZeroMQ socket interface.


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


Example 1. Using the im_zmq Module

This example configuration accepts ZeroMQ messages over TCP and writes them to file.

<Input zmq>
    Module         im_zmq
    SocketType     PULL
    ConnectionType TCP
    Port           1415

<Output file>
    Module         om_file
    File           "/var/log/zmq-messages.log"

<Route zmq_to_file>
    Path           zmq => file