
Syslog
CertifiedEnterprise EditionExport Kestra execution and audit logs to a Syslog collector or SIEM in CEF format over UDP, TCP, or TLS.
Syslog
Certified
Enterprise Edition
Export Kestra execution and audit logs to a Syslog collector or SIEM in CEF format over UDP, TCP, or TLS.
log Exporters
How to use the Syslog plugin
This plugin ships Kestra execution and audit logs to a Syslog collector or SIEM, formatted as CEF (Common Event Format) messages, over UDP, TCP, or TLS. It is used as a logExporters entry inside LogShipper or AuditLogShipper, not as a standalone task.
Authentication
host(required) andport(optional, defaults to 514 for UDP/TCP and 6514 for TLS) identify the Syslog collector.protocolselects the transport:UDP(fire-and-forget datagrams),TCP(RFC 5425 octet-counting framing over a plain socket), orTLS(same framing over an encrypted socket).- For
TLS, providetrustStorePath(andtrustStoreType/trustStorePasswordif needed) pointing to a PKCS12/JKS truststore file on the worker's filesystem containing the collector's CA certificate. StoretrustStorePasswordas a secret. - If the collector uses a self-signed certificate and you cannot provision a truststore, set
skipCertVerification: true. This disables all certificate verification and is unsafe — only use it for testing. connectionTimeout(defaults toPT10S) bounds how long establishing the TCP/TLS connection may take, and doubles as the read timeout for the TLS handshake and any protocol-level reads; it does not bound a write blocked on a collector that stopped draining data. Not used forUDP.- Connection and identity properties can be centralized with plugin defaults across flows.
Tasks
LogExporter
The only class in this plugin. Consumes a stream of Kestra LogRecords from the enclosing shipper task and formats each one as:
<PRI>TIMESTAMP HOSTNAME APP-NAME CEF: 0|Vendor|Product|Version|SignatureId|Name|Severity|Extension
PRIis computed fromfacility(defaultUSER) and the record's log level.Vendor,Product,Version,APP-NAME, andHOSTNAMEare configurable identity fields (deviceVendor,deviceProduct,deviceVersion,appName,hostname), all under theadvancedgroup;hostnamedefaults to the worker's local hostname.SignatureId/Nameare derived from the record'staskId/flowIdattributes when present.Severity(0-10) is mapped from the record's log level (ERROR-> 10 down toTRACE-> 0).Extensioncontains the log message (msg=) followed by the record's remaining attributes as escapedkey=valuepairs.
Records are buffered in chunk-sized batches (default 1000, bounded 1-10000) and written over a single connection opened once per execution.
Gotchas:
- CEF header fields escape
\and|; extension values escape\,=, and newlines (\n), per the CEF specification. - UDP has no message framing: an oversized record (over ~65 KB) is skipped with a warning instead of failing the whole batch.
- Connection, handshake, and truststore-loading failures raise an actionable error without ever including the truststore password.