Skip to main content
Mezmo ingests syslog-ng data through an OpenTelemetry (OTel) Collector placed between your syslog-ng hosts and Mezmo. syslog-ng forwards logs to the Collector’s syslog receiver over TCP+TLS, TCP, or UDP, and the Collector relays them to Mezmo’s OpenTelemetry Source with the otlphttp exporter. The Collector’s syslog receiver accepts the syslog-ng default format, RFC 5424 and RFC 3164, for auto parsing.

Set Up the OpenTelemetry Collector

  1. Log in to the Mezmo Web App, create (or open) a Pipeline, and add an OpenTelemetry Source. Note the ingestion key — you’ll use it as apikey.
  2. Download the otelcol-contrib distribution, which includes the syslog receiver, from the OpenTelemetry website.
  3. Create a config.yaml:
Uncomment the tls block to require TCP+TLS, or replace the tcp block with a udp block to accept UDP instead.
  1. Start the Collector:

Point syslog-ng at the Collector

Configure syslog-ng’s destination to send to the host and port where the Collector’s syslog receiver is listening, instead of directly to Mezmo.
If possible, we highly recommend setting up a keepalive inside your syslog-ng forwarding configuration. This helps make sure that bad connections are properly terminated and re-initiated, and increases the reliability of log delivery. You can learn about rsyslog/syslog-ng keepalive options here.

syslog-ng TCP+TLS with Custom Port Settings

syslog-ng TCP with Custom Port Settings

syslog-ng UDP

Tagging Hosts

Authentication now happens between the Collector and Mezmo, via the apikey header on the otlphttp exporter, rather than being embedded in each syslog-ng line. As a result, the legacy logdna@48950 STRUCTURED-DATA tagging format is no longer needed. To group or tag hosts, add a processor (such as an attributes or resource processor) to your Collector’s logs pipeline, and use fields the syslog receiver already extracts from RFC 5424/3164 messages, such as HOSTNAME and APP-NAME, to set attributes for grouping in Mezmo.