Summary
The Configuring Remote Log Forwarding doc has a template example that fails with strict RFC5424 collectors (Promtail/Loki, Fluent Bit, modern Graylog), and several common topics are missing.
Bugs
1. %PROTOCOL-VERSION% renders as 0 but RFC5424 requires 1
The documented template:
GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% ..."
renders messages as <30>0 2026-04-15T... on the wire. RFC5424 parsers reject version 0 with errors like expecting a version value in the range 1-999 [col 4].
Fix: replace %PROTOCOL-VERSION% with literal 1:
<%PRI%>1 %TIMESTAMP:::date-rfc3339% ...
2. Template name GRAYLOGRFC5424 is misleading
This is standard RFC5424 — not Graylog-specific. The name confuses users sending to Loki, Splunk, or other collectors. Suggest renaming the example to RFC5424 or VERGESYSLOG.
Content gaps
3. Multi-cluster hostname handling
%HOSTNAME% resolves to just node1, node2 — ambiguous when monitoring multiple VergeOS clouds. Document the common patterns:
%HOSTNAME% — single-cluster only
mycluster-%HOSTNAME% — cluster-prefixed (recommended for multi-cluster)
%HOSTNAME%.mycluster.example.com — FQDN style
4. TCP vs UDP trade-off
Currently the doc shows both @@host:514 (TCP) and @host:514 (UDP) but doesn't explain the choice. Add a brief note:
- TCP (
@@) — guaranteed delivery, recommended for audit/compliance
- UDP (
@) — fire-and-forget, lower overhead, can drop packets under load
5. Port 514 assumes root privileges
Most modern collectors run unprivileged (Docker containers, Loki/Promtail) and listen on port 1514 instead. Mention this as a common alternative.
6. Verification guidance is vague
Add concrete troubleshooting steps:
tcpdump -i any -A port 1514 on the collector host to confirm packets are arriving
- Inspect the wire format to catch version-number issues (
<PRI>1 for RFC5424, <PRI> alone for RFC3164)
7. Tested collectors section
Add a brief table of known-working targets with config notes:
- Graylog
- Loki (via Promtail)
- Splunk
- Elasticsearch (via Logstash)
- Plain rsyslog relay
Recommended canonical template
RFC5424,"<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"
With a second multi-cluster example showing the hostname prefix pattern.
Context
Encountered while setting up Promtail/Loki for a demo VergeOS cloud. Spent time debugging the version-0 parse errors before capturing the wire format with tcpdump and tracing it back to the documented template.
Summary
The Configuring Remote Log Forwarding doc has a template example that fails with strict RFC5424 collectors (Promtail/Loki, Fluent Bit, modern Graylog), and several common topics are missing.
Bugs
1.
%PROTOCOL-VERSION%renders as0but RFC5424 requires1The documented template:
renders messages as
<30>0 2026-04-15T...on the wire. RFC5424 parsers reject version 0 with errors likeexpecting a version value in the range 1-999 [col 4].Fix: replace
%PROTOCOL-VERSION%with literal1:2. Template name
GRAYLOGRFC5424is misleadingThis is standard RFC5424 — not Graylog-specific. The name confuses users sending to Loki, Splunk, or other collectors. Suggest renaming the example to
RFC5424orVERGESYSLOG.Content gaps
3. Multi-cluster hostname handling
%HOSTNAME%resolves to justnode1,node2— ambiguous when monitoring multiple VergeOS clouds. Document the common patterns:%HOSTNAME%— single-cluster onlymycluster-%HOSTNAME%— cluster-prefixed (recommended for multi-cluster)%HOSTNAME%.mycluster.example.com— FQDN style4. TCP vs UDP trade-off
Currently the doc shows both
@@host:514(TCP) and@host:514(UDP) but doesn't explain the choice. Add a brief note:@@) — guaranteed delivery, recommended for audit/compliance@) — fire-and-forget, lower overhead, can drop packets under load5. Port 514 assumes root privileges
Most modern collectors run unprivileged (Docker containers, Loki/Promtail) and listen on port 1514 instead. Mention this as a common alternative.
6. Verification guidance is vague
Add concrete troubleshooting steps:
tcpdump -i any -A port 1514on the collector host to confirm packets are arriving<PRI>1for RFC5424,<PRI>alone for RFC3164)7. Tested collectors section
Add a brief table of known-working targets with config notes:
Recommended canonical template
With a second multi-cluster example showing the hostname prefix pattern.
Context
Encountered while setting up Promtail/Loki for a demo VergeOS cloud. Spent time debugging the version-0 parse errors before capturing the wire format with tcpdump and tracing it back to the documented template.