RunReveal

Reveald

Reveald is RunReveal's log collection agent. It runs as a lightweight daemon on your hosts, collecting logs from files, journald, syslog, Windows Event Log, and other sources, then forwarding them to RunReveal or S3 in batches.

Why reveald

  • Simple configuration --- A single JSON file defines your sources and destinations. Supports comments and trailing commas (HUJSON).
  • Low overhead --- Reveald is a single static binary with no runtime dependencies. It uses minimal CPU and memory, making it suitable for running on every host.
  • Reliable delivery --- Events are batched and flushed on a configurable interval. Reveald tracks file offsets and journald cursors across restarts so no logs are lost.
  • Flexible routing --- Collect from multiple sources simultaneously and send to multiple destinations. Every source feeds every destination.
  • Processors built in --- Parse key-value pairs, apply regex extraction, or refine fields with rule-based matching before events leave the host.

Architecture

Reveald follows a simple pipeline architecture:

┌──────────┐     ┌───────────────┐     ┌──────────────┐
│  Sources  │────▶│  Event Queue  │────▶│ Destinations  │
└──────────┘     └───────────────┘     └──────────────┘
  file                                    runreveal
  journald                                s3
  syslog                                  mqtt
  command                                 printer
  windows
  cri
  mqtt
  nginx-syslog

Sources emit events into an internal queue. The queue buffers events and delivers them to all configured destinations. Each destination batches and flushes independently.

Supported sources

SourceType identifierDescription
FilefileTail log files in a directory
JournaldjournaldRead systemd journal
SyslogsyslogListen for syslog over UDP
CommandcommandRun a command on an interval and capture output
Windows Event LogeventlogSubscribe to Windows Event Log channels
CRIcriParse Kubernetes CRI container logs
MQTTmqttSubscribe to an MQTT topic
Nginx Syslognginx_syslogParse nginx access logs via syslog

Supported destinations

DestinationType identifierDescription
RunRevealrunrevealSend to RunReveal via webhook
S3s3Write to Amazon S3 or S3-compatible storage
MQTTmqttPublish to an MQTT broker
PrinterprinterWrite to stdout for debugging

Processors

Processors wrap a source and transform events before they reach destinations.

ProcessorType identifierDescription
RefinerefineRule-based field matching and extraction
KVkvKey-value pair parsing
RegexregexNamed capture group extraction

Next steps

On this page