RunReveal

Sources

Sources define where reveald collects logs. Each source runs as a goroutine, continuously reading events and feeding them into the internal event queue for delivery to all configured destinations.

Available sources

SourceTypePlatformDescription
FilefileAllTail log files in a directory
JournaldjournaldLinuxRead systemd journal
SyslogsyslogAllListen for syslog over UDP
CommandcommandAllRun a command on an interval
Windows Event LogeventlogWindowsSubscribe to event log channels
CRIcriLinuxParse Kubernetes container runtime logs
MQTTmqttAllSubscribe to an MQTT topic
Nginx Syslognginx_syslogAllParse nginx access logs via syslog

Configuring sources

Sources are defined under the "sources" key in your config file. Each source has a unique name and a "type" field:

{
  "sources": {
    "my-app-logs": {
      "type": "file",
      "path": "/var/log/app/",
      "extension": ".log"
    },
    "system": {
      "type": "journald"
    }
  }
}

You can configure as many sources as needed. All sources run concurrently and all events are sent to every destination.

Event structure

Every source emits events with a common structure:

FieldTypeDescription
sourceTypestringIdentifies the source type (e.g. "file", "journald")
rawLogJSONThe original log content
eventTimetimestampWhen the event occurred (source-specific parsing)
eventNamestringOptional event name
srcobjectSource IP and port (if applicable)
dstobjectDestination IP and port (if applicable)
actorobjectUser who performed the action (if applicable)
serviceobjectService or process name
tagsmapArbitrary key-value metadata

Different sources populate different fields. See each source's documentation for details on which fields are set and how timestamps are parsed.

On this page