News and blog
NXLog main page
  • Products
    NXLog Platform
    Log collection
    Log management and analytics
    Log storage
    NXLog Agent
    NXLog Community Edition
    Integrations
    Professional Services
  • Solutions
    Use cases
    Specific OS support
    SCADA/ICS
    Windows event log
    DNS logging
    MacOS logging
    Open Telemetry
    Cost reduction
    Industries
    Financial Services
    Government & Education
    Entertainment & Gambling
    Telecommunications
    Medical & Healthcare
    Military & Defense
    Law Firms & Legal Counsel
    Industrial & Manufacturing
  • Pricing
    Licensing
    Plans
  • Partners
    Find a Reseller
    Partner Program
    Partner Portal
  • Resources
    Documentation
    Blog
    White papers
    Videos
    Webinars
    Case Studies
    Community Program
    Community Forum
  • About
    Company
    Careers
  • Support
    Support portals
    Contact us

NXLog Platform
Log collection
Log management and analytics
Log storage
NXLog Agent
NXLog Community Edition
Integrations
Professional Services

Use Cases
Specific OS support
SCADA/ICS
Windows event log
DNS logging
MacOS logging
Open Telemetry
Cost reduction
Solutions by industry
Financial Services
Government & Education
Entertainment & Gambling
Telecommunications
Medical & Healthcare
Military & Defense
Law Firms & Legal Counsel
Industrial & Manufacturing

Licensing
Plans

Find a Reseller
Partner Program
Partner Portal

Documentation
Blog
White papers
Videos
Webinars
Case Studies
Community Program
Community Forum

Company
Careers

Support portals
Contact us
Let's Talk
  • Start free
  • Interactive demo
Let's Talk
  • Start free
  • Interactive demo
NXLog search
  • Loading...
Let's Talk
  • Start free
  • Interactive demo
July 22, 2026 strategy

What is syslog? Ports, severity levels, and RFC 3164 vs. RFC 5424

By Robert Audzeyeu

Share
ALL ANNOUNCEMENT COMPARISON COMPLIANCE DEPLOYMENT SECURITY SIEM STRATEGY RSS

Syslog is the standard protocol that devices, operating systems, and applications use to send event messages to a log collector. NXLog Platform collects, parses, and forwards messages in both BSD (RFC 3164) and IETF (RFC 5424) formats with a single extension.

Most security telemetry still travels as syslog at some point in its life. Firewalls, switches, Linux hosts, hypervisors, and a long list of security products emit it, and every major SIEM ingests it.

The word "syslog" names several things at once, though: two message formats, a set of transports, and the daemons that implement them. That ambiguity causes real problems in production — messages arrive on unexpected ports, timestamps lack time zones, and parsers written for one format choke on the other.

This post sorts that out: which ports syslog uses (and which of those are official), what the severity levels mean in a SecOps pipeline, and how RFC 3164 and RFC 5424 differ, with NXLog Agent configurations you can copy.

What is syslog?

Syslog is a logging protocol that defines how systems format event messages and transmit them to a local log file or a remote collector. A syslog message carries a priority value encoding a facility (the type of source) and a severity (how urgent the event is), a timestamp, the originating hostname, and the message text. Two documents define the format: RFC 3164 describes the original BSD version, and RFC 5424 specifies the current IETF standard that obsoletes it.

The protocol began as the logging mechanism for the Sendmail mail server in the 1980s. It spread with BSD Unix until it became the default logging system for Unix-like platforms and network equipment — all without a written specification. The IETF documented the "observed behavior" of existing implementations in 2001 with RFC 3164, then published a proper standard in 2009 with RFC 5424.

RFC 5424 describes three roles in a syslog deployment: an originator generates messages, a relay forwards them, and a collector receives and stores them. One process can hold several roles at once. An NXLog Agent instance, for example, often acts as a collector for nearby network devices and a relay toward a SIEM.

What port does syslog use?

Syslog uses UDP port 514 by default and TCP port 6514 for TLS-encrypted transport. Plain TCP syslog most often runs on TCP 514, although IANA assigns that port to a different service.

Port Transport IANA service name Defined in When you’ll see it

514/UDP

UDP

syslog

RFC 5426

The traditional default. Fast and simple, with no delivery guarantee, ordering, or encryption.

514/TCP

Plain TCP

shell (rsh)

RFC 6587 (Historic)

The de facto port for plain TCP syslog. It was never assigned to syslog.

601/TCP

BEEP

syslog-conn

RFC 3195

Reliable syslog over BEEP. Standardized in 2001, rarely deployed.

6514/TCP

TLS

syslog-tls

RFC 5425

The recommended transport for anything crossing an untrusted network.

6514/UDP

DTLS

syslog-tls

RFC 6012

The datagram TLS variant. Less common than TLS over TCP.

TCP 514 is the row that trips up firewall reviews and audits. The IANA service name registry assigns UDP port 514 to syslog, but TCP port 514 to the old remote shell (rsh) service. RFC 6587, which documents how the industry has run syslog over TCP, acknowledges that TCP/514 became the most common choice even though the port "is actually assigned to the Shell protocol." The RFC carries Historic status, meaning it records existing practice rather than defining a standard, and its IESG note recommends the TLS transport from RFC 5425 over plain TCP.

For firewall planning, that translates into three practical rules:

  • Open UDP port 514 for legacy senders you can’t change.

  • Use TLS over TCP on port 6514 for everything else.

  • Treat any plain TCP syslog port as a site-specific convention that needs to be documented.

Inside a syslog message: PRI, facility, and severity

Both syslog formats begin with the same element: a priority value in angle brackets. The PRI value packs two codes into one number:

Priority = Facility × 8 + Severity

Take <34>, the value both RFCs use in their own examples. Dividing 34 by 8 yields a facility of 4 (security/authorization messages) with a remainder of 2 (Critical). A parser reverses the math: severity is PRI % 8, and facility is PRI / 8, rounded down.

Syslog severity levels

RFC 5424 Section 6.2.1 defines eight severity levels, 0 through 7, where lower numbers mean higher urgency. The descriptions below come from the RFC; the handling column reflects how security teams commonly treat each level.

Code Severity RFC 5424 description Typical handling in a SecOps pipeline

0

Emergency

System is unusable

Page the on-call immediately and treat it as an outage.

1

Alert

Action must be taken immediately

Route to a responder in real time.

2

Critical

Critical conditions

Alert and investigate within minutes.

3

Error

Error conditions

Create a ticket; correlate for recurring patterns.

4

Warning

Warning conditions

Track on dashboards; alert on thresholds.

5

Notice

Normal but significant condition

Index for hunting; authentication events often arrive here.

6

Informational

Informational messages

Retain for correlation, audit, and forensics.

7

Debug

Debug-level messages

Filter out or keep on short retention; enable on demand while troubleshooting.

One caveat comes straight from the RFC: severities are subjective, and Appendix A.3 warns collectors against assuming every originator applies them the same way. A Critical from a printer driver and a Critical from your domain controller deserve different responses, so combine severity with facility and source in alert rules instead of keying on severity alone.

Syslog facility codes

The facility code identifies the type of program that produced a message. RFC 5424 Table 1 defines 24 facilities:

Code Facility

0

Kernel messages

1

User-level messages

2

Mail system

3

System daemons

4

Security/authorization messages

5

Messages generated internally by syslogd

6

Line printer subsystem

7

Network news subsystem

8

UUCP subsystem

9

Clock daemon

10

Security/authorization messages

11

FTP daemon

12

NTP subsystem

13

Log audit

14

Log alert

15

Clock daemon

16-23

Local use 0-7 (local0-local7)

Logging tools map keywords to these codes — auth for 4, daemon for 3, and so on — which is why logger(1) accepts a priority like auth.crit in place of a raw number. Facilities 16-23 are intentionally left unassigned; use them to tag in-house applications or to separate device classes when everything funnels into one collector.

RFC 3164: the original BSD syslog format

RFC 3164, published in August 2001, carries Informational status. Its stated purpose was to describe the observed behavior of existing implementations, which is why so much variation survives among devices claiming to "speak syslog."

A BSD syslog message has three parts (PRI, HEADER, and MSG), which on the wire usually look like this:

<PRI>TIMESTAMP HOSTNAME TAG[PID]: MESSAGE

Here is Example 1 from Section 5.4 of the RFC:

<34>Oct 11 22:14:15 mymachine su: 'su root' failed for lonvick on /dev/pts/8

Reading left to right: <34> is the priority (facility 4, severity 2, as calculated above). Oct 11 22:14:15 is the timestamp in Mmm dd hh:mm:ss format. mymachine is the hostname, su is the TAG naming the process, and everything after the colon is the CONTENT.

The format’s limitations are concrete, and they bite in production:

  • The timestamp has no year, no time zone, and no sub-second precision. Correlating events across regions, or across a year boundary, requires guesswork or out-of-band context.

  • The packet must stay at or under 1,024 bytes, which truncates stack traces, long URLs, and JSON payloads.

  • The TAG is capped at 32 alphanumeric characters, and the CONTENT is limited to printable ASCII characters 32-126, so Unicode has no defined representation.

  • There is no structured data. Everything after the TAG is free text; every vendor formats it differently, and parsing it means maintaining per-product patterns.

  • RFC 3164 defines UDP as the transport, with no delivery guarantee, ordering, integrity, or confidentiality.

RFC 5424: the IETF syslog protocol

RFC 5424, published in March 2009, obsoletes RFC 3164 and is the current standards-track definition of syslog. It keeps the PRI mechanism and replaces everything after it with a versioned, structured header:

<PRI>VERSION TIMESTAMP HOSTNAME APP-NAME PROCID MSGID STRUCTURED-DATA MSG

The same event from the BSD example looks like this in RFC 5424 format (Section 6.5, Example 1):

<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - BOM'su root' failed for lonvick on /dev/pts/8
Field Value in the example Notes

PRI

<34>

Same facility × 8 + severity calculation as BSD syslog.

VERSION

1

The protocol version; RFC 5424 defines version 1.

TIMESTAMP

2003-10-11T22:14:15.003Z

Based on RFC 3339, the internet profile of ISO 8601: full date, time zone offset, and up to microsecond precision.

HOSTNAME

mymachine.example.com

FQDN preferred, up to 255 characters.

APP-NAME

su

The application name, up to 48 characters.

PROCID

-

Process ID; - is the NILVALUE meaning "not provided."

MSGID

ID47

Identifies the message type, up to 32 characters.

STRUCTURED-DATA

-

None in this example.

MSG

BOM’su root' failed …​

Free-form text; should be UTF-8, signaled by the byte order mark (shown as BOM).

STRUCTURED-DATA is the headline feature. It carries key-value pairs in named blocks, so a receiver can extract fields directly, with no guesswork about the message text. Example 3 from the RFC shows one element with three parameters:

<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] BOMAn application event log entry...

The SD-ID (exampleSDID@32473) is namespaced with an IANA private enterprise number, so vendors can define their own fields without collisions. The <165> decodes to facility 20 (local4) and severity 5 (Notice) with the same formula as before.

RFC 5424 also pins down message sizes: Section 6.1 requires every receiver to accept messages of at least 480 octets and recommends supporting 2,048, with individual transports free to allow more.

One structural change matters for network planning. RFC 5424 defines only the message format; transport moved into companion documents, RFC 5426 for UDP and RFC 5425 for TLS. That is why the port table above references those documents and not RFC 5424 itself.

RFC 3164 vs. RFC 5424: key differences

RFC 3164 (BSD syslog) RFC 5424 (IETF syslog)

Published

August 2001

March 2009

IETF status

Informational; obsoleted by RFC 5424

Proposed Standard

Intent

Documents observed behavior

Prescribes a standard

Timestamp

Mmm dd hh:mm:ss; no year, no time zone, second precision

RFC 3339 profile of ISO 8601; year, offset, up to microseconds

Host identification

Hostname or IP address

FQDN preferred, up to 255 characters

Application identification

TAG (up to 32 alphanumeric characters)

APP-NAME, PROCID, and MSGID fields

Structured data

None; free-form CONTENT

STRUCTURED-DATA blocks with namespaced key-value pairs

Character encoding

Printable ASCII (32-126)

UTF-8 with byte order mark in MSG

Message size

1,024 bytes maximum

480 octets required, 2,048 recommended; transport-dependent

Version field

None

VERSION (currently 1)

Transport

UDP, defined in the same document

Separate RFCs: UDP (5426), TLS (5425)

Which one should you use? Emit RFC 5424 wherever you control the sender — the timestamps alone justify it. On the receiving side, plan to accept both indefinitely. In our experience at NXLog, network appliances, embedded systems, and older Unix hosts still ship BSD-format messages, often with vendor-specific quirks on top, and that traffic won’t disappear on any schedule you control.

Collecting and forwarding syslog with NXLog Agent

NXLog Agent handles both formats through the Syslog extension, which provides parsers, format converters, and the octet framing required by TLS transport. The syslog integration guide covers the full range of scenarios; the three configurations below cover what most teams need first.

Receive syslog on UDP 514 and parse it

The parse_syslog() procedure detects BSD or IETF format automatically and populates fields such as $SyslogSeverity, $SyslogFacility, $Hostname, and $Message in the event record

<Extension syslog>
    Module        xm_syslog
</Extension>

<Input syslog_udp>
    Module        im_udp
    ListenAddr    0.0.0.0:514
    Exec          parse_syslog();
</Input>
On Linux, binding to ports below 1024 requires elevated privileges.
Forward events as RFC 5424 over TLS

This output converts events with to_syslog_ietf() and sends them to TCP 6514 using the Syslog_TLS output type, which implements the octet-counting framing defined in RFC 5425

<Extension syslog>
    Module         xm_syslog
</Extension>

<Output syslog_tls>
    Module         om_ssl
    Host           192.168.1.1:6514
    CAFile         %CERTDIR%/ca.pem
    CertFile       %CERTDIR%/agent-cert.pem
    CertKeyFile    %CERTDIR%/agent-key.pem
    OutputType     Syslog_TLS
    Exec           to_syslog_ietf();
</Output>
Convert BSD syslog to IETF format in transit

A common relay pattern: accept legacy UDP 514 traffic from devices you can’t reconfigure, upgrade it to RFC 5424, and forward it over TCP

<Extension syslog>
    Module        xm_syslog
</Extension>

<Input syslog_bsd>
    Module        im_udp
    ListenAddr    0.0.0.0:514
    Exec          parse_syslog_bsd();
</Input>

<Output syslog_ietf>
    Module        om_tcp
    Host          192.168.1.101:1514
    Exec          to_syslog_ietf();
</Output>

<Route syslog_bsd_to_ietf>
    Path          syslog_bsd => syslog_ietf
</Route>

To test any of these without touching production senders, generate a message with logger, which ships with util-linux:

$ logger --rfc5424 --server 192.168.1.100 --port 514 --udp -p auth.crit "syslog pipeline test"

The -p auth.crit flag produces facility 4, severity 2 — PRI 34, the same value as the RFC examples above.

When you run more than a handful of agents, NXLog Platform manages their configurations centrally and stores or relays what they collect, so you change a port or a certificate once instead of on every machine.

Syslog best practices for security operations

Encrypt anything that crosses an untrusted network

Plain UDP and TCP syslog travel in cleartext. Use TLS on port 6514 — the direction the IESG itself points in RFC 6587 — and validate certificates on both ends.

Keep UDP 514 off the internet

UDP provides no sender authentication, so any host that can reach the port can inject forged events. Restrict listeners to management networks and known source ranges.

Normalize timestamps at the edge

Parse BSD messages as close to the source as you can and convert them to RFC 3339 in UTC before storage, while the collector still knows the sender’s time zone.

Plan for loss and backpressure

UDP drops silently under load, and even TCP senders discard events when a collector stays down too long. Buffer at the agent and monitor queue depth so a collector outage results in minutes of delay rather than hours of evidence.

Parse defensively and keep the raw event

RFC 3164 tolerates wide variation, and devices exercise all of it. Store the raw message alongside parsed fields so a parser bug can’t destroy the original record.

Conclusion

Syslog earned its place by being simple. One name still covers two message formats, three common ports (one of them unofficial), and transports with different delivery guarantees. Once you know where those seams are, the protocol becomes predictable.

Key takeaways:

  • Two RFCs define syslog. RFC 3164 documents the legacy BSD format; RFC 5424 is the current standard and obsoletes it.

  • The default syslog port is UDP 514. TLS transport uses TCP 6514, and TCP 514, though common, officially belongs to the rsh shell service.

  • Severity runs from 0 (Emergency) to 7 (Debug) and combines with a facility code into the PRI value: facility × 8 + severity.

  • RFC 5424 fixes the operational pain points: full timestamps with time zones, UTF-8, structured data, and defined message sizes.

  • Receive both formats, emit the new one. Legacy devices keep sending BSD syslog for years to come, so convert at the collection layer instead of waiting on vendors.

Get the ports right, normalize at ingest, and the rest of the pipeline gets easier. To collect, parse, and forward syslog at scale, see the syslog integration guide or explore how NXLog Platform centralizes agent management.

Frequently asked questions

Is syslog UDP or TCP?

Both. RFC 5426 defines UDP transport on port 514, which remains the default in most implementations. Plain TCP is widespread but is documented only as a historical practice in RFC 6587. The recommended transport for new deployments is TLS over TCP port 6514, as defined in RFC 5425.

Is port 514 TCP or UDP?

IANA assigns UDP 514 to syslog. TCP 514 officially belongs to the shell (rsh) service, so syslog’s use of it is a widespread convention rather than an assignment. If you need reliable delivery to an officially assigned port, use TLS over TCP on port 6514.

What are the 8 syslog severity levels?

From most to least urgent: 0 Emergency, 1 Alert, 2 Critical, 3 Error, 4 Warning, 5 Notice, 6 Informational, and 7 Debug, as defined in RFC 5424 Section 6.2.1.

What is the difference between RFC 3164 and RFC 5424?

RFC 3164 documents the original BSD syslog format: a timestamp without year or time zone, free-form ASCII text, and a 1,024-byte limit. RFC 5424 obsoletes it with a versioned header, RFC 3339 timestamps carrying time zones and sub-second precision, UTF-8 support, structured key-value data, and larger message sizes.

Is RFC 3164 deprecated?

RFC 5424 formally obsoleted it in March 2009, and RFC 3164 was Informational rather than a standard to begin with. Devices still widely emit the BSD format, so collectors need to parse both formats for the foreseeable future.

NXLog Platform is an on-premises solution for centralized log management with
versatile processing forming the backbone of security monitoring.

With our industry-leading expertise in log collection and agent management, we comprehensively
address your security log-related tasks, including collection, parsing, processing, enrichment, storage, management, and analytics.

Start free Contact us
  • syslog
  • Telemetry collection
  • Log aggregation
Share

Facebook Twitter LinkedIn Reddit Mail
Related Posts

Log timestamp normalization to ISO 8601: Getting every source to agree on time
9 minutes | July 20, 2026
Using Raijin Database Engine to aggregate and analyze Windows security events
11 minutes | July 29, 2021
Fluentd vs Logstash: which log pipeline tool fits your stack?
9 minutes | June 15, 2026

Stay connected:

Sign up

Keep up to date with our monthly digest of articles.

By clicking singing up, I agree to the use of my personal data in accordance with NXLog Privacy Policy.

Featured posts

Announcing NXLog Platform 1.13
June 9, 2026
Enterprise IIS log analysis software: top tools, use cases, and NXLog Agent integration
May 7, 2026
Announcing NXLog Platform 1.12
April 21, 2026
How to visualize telemetry data flow and volume with NXLog Platform
March 23, 2026
Security dashboards go dark: why visibility isn't optional, even when your defenses keep running
February 26, 2026
Building a practical OpenTelemetry pipeline with NXLog Platform
February 25, 2026
Announcing NXLog Platform 1.11
February 23, 2026
Adopting OpenTelemetry without changing your applications
February 10, 2026
Linux security monitoring with NXLog Platform: Extracting key events for better monitoring
January 9, 2026
2025 and NXLog - a recap
December 18, 2025
Announcing NXLog Platform 1.10
December 11, 2025
Announcing NXLog Platform 1.9
October 22, 2025
Gaining valuable host performance metrics with NXLog Platform
September 30, 2025
Security Event Logs: Importance, best practices, and management
July 22, 2025
Enhancing security with Microsoft's Expanded Cloud Logs
June 10, 2025

Categories

  • ANNOUNCEMENT
  • COMPARISON
  • COMPLIANCE
  • DEPLOYMENT
  • SECURITY
  • SIEM
  • STRATEGY
  • Products
  • NXLog Platform
  • NXLog Agent
  • NXLog Community Edition
  • Integration
  • Professional Services
  • Licensing
  • Plans
  • Resources
  • Documentation
  • Blog
  • White Papers
  • Videos
  • Webinars
  • Case Studies
  • Community Program
  • Community Forum
  • Compare NXLog Platform
  • Partners
  • Find a Reseller
  • Partner Program
  • Partner Portal
  • About NXLog
  • Company
  • Careers
  • Support Portals
  • Contact Us

Follow us

LinkedIn Facebook YouTube Reddit
logo

© Copyright NXLog Ltd.

Privacy Policy • General Terms of Business