omczmq: Output module for ZeroMQ¶
Module Name: |
omczmq |
Author: |
Brian Knox <bknox@digitalocean.com> |
Purpose¶
The omczmq module publishes messages over ZeroMQ using the CZMQ
library. Messages are formatted with templates and sent according to the
configured socket type and topic list. The module supports dynamic
topics, CURVE authentication and heartbeat settings when available in the
underlying libraries.
Configuration Parameters¶
Note
Parameter names are case-insensitive.
Module Parameters¶
authenticatorStart a ZAauth authenticator thread when set to
on.authtypeSet to
CURVECLIENTorCURVESERVERto enable CURVE security.servercertpathPath to the server certificate used for CURVE.
clientcertpathPath to the client certificate or directory of allowed clients.
Action Parameters¶
endpointsSpace-separated list of ZeroMQ endpoints to connect or bind.
socktypeZeroMQ socket type such as
PUSH,PUB,DEALER,RADIOorCLIENT.sendtimeoutTimeout in milliseconds before a send operation fails.
sendhwmMaximum number of queued messages before new ones are dropped.
connecttimeoutConnection timeout in milliseconds (requires libzmq 4.2 or later).
heartbeativlInterval in milliseconds between heartbeat pings (libzmq >= 4.2).
heartbeattimeoutTime in milliseconds to wait for a heartbeat reply (libzmq >= 4.2).
heartbeatttlTime a peer may wait between pings before disconnecting (libzmq >= 4.2).
templateName of the template used to format messages. Defaults to
RSYSLOG_ForwardFormat.topicsComma-separated list of topics for
PUBorRADIOsockets.topicframeWhen
onthe topic is sent as a separate frame onPUBsockets.dynatopicIf
oneach topic name is treated as a template.
Examples¶
module(
load="omczmq" # load the output module
servercertpath="/etc/curve.d/example_server" # server certificate path
clientcertpath="/etc/curve.d/allowed_clients" # allowed client directory
authtype="CURVESERVER" # enable CURVE server mode
authenticator="on" # start ZAauth authenticator
)
template(name="host_program_topic" type="list") { # build a dynamic topic
property(name="hostname") # host segment
constant(value=".") # separator
property(name="programname") # program segment
}
action(
type="omczmq" # use the omczmq output
socktype="PUB" # create a PUB socket
endpoints="@tcp://*:31338" # bind to port 31338
topics="host_program_topic" # topic template name
dynatopic="on" # treat topic as template
topicframe="on" # send topic as separate frame
)
Support: rsyslog Assistant | GitHub Discussions | GitHub Issues: rsyslog source project
Contributing: Source & docs: rsyslog source project
© 2008–2025 Rainer Gerhards and others. Licensed under the Apache License 2.0.