# omdtls: Output Module for DTLS Protocol over UDP

Module Name: | omdtls
Author: | Andre Lorbach <alorbach@adiscon.com>
Available since: | v8.2402.0

## Purpose

The omdtls module for rsyslog is designed to securely transmit syslog data over a network using the Datagram Transport Layer Security (DTLS) protocol. This module leverages the robustness and security features of OpenSSL to provide an encrypted transport mechanism for syslog messages via UDP.

DTLS, being an adaptation of TLS for datagram-based protocols, offers integrity, authenticity, and confidentiality for messages in transit. The omdtls module is particularly useful in environments where secure transmission of log data is crucial, such as in compliance-driven industries or when transmitting across untrusted networks.

By operating over UDP, omdtls offers the benefits of lower latency and reduced protocol overhead compared to TCP-based transport, making it well-suited for high-throughput logging scenarios or in networks where connection-oriented protocols may face challenges.

## Requirements

To send messages by DTLS you will need to fulfill the following requirements:

- OpenSSL 1.0.2 or Higher

## Configuration Parameters

Note

Parameter names are case-insensitive; camelCase is recommended for readability.

### Module Parameters

Parameter | Summary
--- | ---
template | Selects the template used to format messages sent through omdtls actions.

### Action Parameters

Parameter | Summary
--- | ---
target | Specifies the destination host name or IP address for omdtls.
port | Sets the UDP port on the remote host that receives DTLS messages.
template | Selects the template used to format messages sent through omdtls actions.
tls.authmode | Sets the DTLS peer authentication method used by the action.
tls.cacert | Defines the CA certificate used to verify client certificates.
tls.mycert | Specifies the certificate file presented by omdtls during the DTLS handshake.
tls.myprivkey | Provides the private key that matches `tls.mycert` for DTLS authentication.
tls.tlscfgcmd | Passes additional OpenSSL configuration commands to fine-tune DTLS behavior.
statsname | Enables a dedicated per-action statistics counter identified by the provided name.

## Statistic Counter

This plugin maintains global statistics for omdtls that accumulate all action instances. The statistic origin is named “omdtls” with following counters:

- submitted - This counter tracks the number of log messages that have been successfully send by the current output instance.

- failures - This counter tracks the number of log messages that have been failed to send to the target server.

These statistics counters are updated in real-time by the rsyslog output module as log data is processed, and they provide valuable information about the performance and operation of the input module.

For multiple actions using statistics callback, there will be one record for each action.

## Examples

### Example 1: Basic

The following sample does the following: - loads the omdtls module - Sends all syslog messages to 192.168.2.1 by DTLS on port 4433.

    module(load="omdtls")
    action(type="omdtls" name="omdtls" target="192.168.2.1" port="4433")

### Example 2: Message throttling

The following sample does the following:

- loads the omdtls module

- Sends all syslog messages to 192.168.2.1 by DTLS on port 4433.

- Slows down sending to avoid package loss due the nature of UDP. In this sample, using dequeueSlowDown 1000 will limit the messages per second to 1000.

    module(load="omdtls")
    action(type="omdtls"
        name="omdtls"
        target="192.168.2.1"
        port="4433"
        queue.type="FixedArray"
        queue.size="100000"
        queue.dequeueBatchSize="1"
        queue.minDequeueBatchSize.timeout="1000"
        queue.timeoutWorkerthreadShutdown="1000"
        queue.timeoutshutdown="1000"
        queue.dequeueSlowDown="1000"
    )

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.