This section describes the options of the mqtt() source in syslog-ng OSE.

The mqtt() source has the following options.

Required options: address(), fallback-topic(), and topic().

address()

Type: string
Default: tcp://localhost:1883
Required: yes

Description: Specifies the hostname or IP address, and the port number of the MQTT broker from which syslog-ng OSE will receive the log messages.

Syntax: <protocol type>://<host>:<port>

chain-hostname()

Type: yes, no
Default: no

Description: This option can be used to enable or disable the chained hostname format. For more information, see the chain-hostnames() global option.

format()

Synopsis: format(string)
Default: syslog

Description: This option specifies the default message parsing format used by syslog-ng OSE. Plugins can define their own format parsers; if a plugin does not provide one, the default syslog format parser is used.

You can also define and explicitly use a custom parser separately, for example, in Python. For more information, see syslog parser.

internal()

Description: To collect warnings, errors and notices from syslog-ng OSE itself, include this source in one of your source statements.

Example format in configuration:

source s_local { internal(); };

For more details, see internal: Collecting internal messages.

client-id()

Type: string
Default: syslog-ng-source-{topic option}
Required: no

Description: The client-id() is used to identify the client to the MQTT server, which stores session data for each client. The session data can contains information regarding which message has been sent, received. It is not possible to set the client-id() to an empty string. To always start a new session see the cleansession() option.

cleansession()

Accepted values: yes | no
Default: no

Description: This option instruments the MQTT broker to clean the session data when connecting. The session data contains information about which message was processed.

http-proxy()

Type: URL
Default: N/A

Description: Specifies HTTP/HTTPS proxy for WebSocket connections.

keep-alive()

Type: positive integer number (in seconds)
Default: 60

Description: Specifies the number of seconds that syslog-ng OSE keeps the connection between the broker and clients open in case there is no message traffic. When keep-alive() number of seconds pass, the connection is terminated, and you have to reconnect.

On the MQTT side, the keep alive function provides a workaround method to access connections that are still open.

normalize-hostnames()

Type: yes, no
Default: no

Description: If this option is set to yes (normalize-hostnames(yes)), syslog-ng OSE converts the hostnames to lowercase. This setting only applies to hostnames resolved from DNS. It has no effect if the keep-hostname() option is enabled, and the message contains a hostname. | Accepted values: | yes | no| |Default: |no|

NOTE: This setting applies only to hostnames resolved from DNS. It has no effect if the keep-hostname() option is enabled, and the message contains a hostname.

password()

Type: string
Default: N/A

Description: The password used to authenticate on the MQTT broker.

persist-name()

Type: string
Default: N/A

Description: If you receive the following error message during syslog-ng OSE startup, set the persist-name() option of the duplicate drivers:

Error checking the uniqueness of the persist names, please override it with persist-name option. Shutting down.

or

Automatic assignment of persist names failed, as conflicting persist names were found. Please override the automatically assigned identifier using an explicit persist-name() option or remove the duplicated configuration elements.

This error happens if you use identical drivers in multiple sources, for example, if you configure two file sources to read from the same file. In this case, set the persist-name() of the drivers to a custom string, for example, persist-name(“example-persist-name1”).

sdata-prefix()

Type: string
Default: .SDATA.

Available in syslog-ng OSE 4.1 and later versions.

Description: Adds a specific string before the names of the parsed SDATA fields to store the name-value pairs created from the SDATA fields separately. Note that unless the value of sdata-prefix starts with .SDATA., using this option excludes the parsed fields from the sdata and rfc5424 scopes of the value pairs.

qos()

Type: number
Default: 0
Possible values: 0 - at most once (the fastest option)
  1 - at least once (a much slower option than 0)
  2 - exactly once (the slowest option)

Description: The Quality of Service (QoS) level in MQTT messaging is an agreement between sender and receiver on the guarantee of delivering a message.

tls()

Type: tls options
Default: n/a

Description: This option sets various options related to TLS encryption, for example, key/certificate files and trusted CA locations. TLS can be used only with tcp-based transport protocols. For details, see TLS options.

The following options are relevant for the mqtt() tls() block: ca-dir(), ca-file(), cert-file(), cipher-suite(), key-file(), peer-verify(), ssl-version(), use-system-cert-store().

topic()

Type: string or template
Default: N/A

Description: Required option. Specifies the MQTT topic.

NOTE: The current implementation of the mqtt() source / destination does not support using the following characters for topic names: $ + #

username()

Type: string
Default: N/A

Description: The username used to authenticate on the MQTT broker.

use-syslogng-pid()

Accepted values: yes, no
Default: no

Description: If this parameter is set to yes, syslog-ng OSE fills the value of the ${PID} macro with its own process ID.

use-syslogng-pid()

Accepted values: yes, no
Default: no

Description: If this parameter is set to yes, syslog-ng OSE fills the value of the ${PID} macro with its own process ID.

Updated: