Collecting syslog at scale with Apache NiFi

A planning and build guide for receiving syslog from network and server fleets with ListenSyslog, covering transport, parsing, invalid messages, cluster listeners and TLS.

On this page

Collecting syslog at scale with Apache NiFi starts with the transport decision

Picture a team whose firewalls, switches and servers all send syslog to several collectors that were added at different times. Each source has its own idea of where logs go, and nobody can say with confidence which events are lost during a collector restart. The first decision is whether NiFi should be that single intake. ListenSyslog is the NiFi processor that opens a socket, receives syslog messages over UDP or TCP, and emits each message as a flowfile for parsing and routing. A team needs it when it wants NiFi to own the intake, so that parsing, filtering and delivery to the SIEM or data lake follow one set of rules and one provenance trail.

Apache NiFi is an Apache Software Foundation project released under the Apache License 2.0, and the project itself offers no paid edition. That means the work is not a license purchase. It is planning, building and operating a self-hosted NiFi cluster inside your own networks, including the listener addresses, firewall rules, certificates and monitoring. Ask any partner to separate those one-time build tasks from the recurring operations you will carry, and to state who owns each. Confirm with your own network team whether syslog senders can reach the listener ports directly or only through a load balancer or existing relay.

Choose NiFi when you need parsing, enrichment or multi-destination routing close to the source, and when the same team already runs NiFi. Choose a dedicated external collector when the job is only to receive and forward syslog with minimal transformation, or when your operations team already runs one well. Some organizations do both, with the external collector handling the raw intake and NiFi handling enrichment. Do not decide on throughput alone. Benchmark the expected message rate, message size and burst pattern in a lab that matches your production network, because this page does not make performance claims for any transport or processor.

ListenSyslog options and when each fits

This table compares the ListenSyslog settings that shape what NiFi accepts from network and server senders, including transport, message format, invalid input and listener limits. Read each row for the fit, the delivery or parsing trade-off, and the item to confirm in the processor documentation for your NiFi version before you test with real senders.

SettingFitTrade-offConfirm before go-live
TCP transportSources that need acknowledged delivery and ordered streams, such as firewalls and servers configured for reliable forwardingConnections are stateful, so each sender holds a connection to one node; a node failure drops in-flight connections and senders must retryConnection limits per listener and idle timeout behavior in your NiFi version
UDP transportLegacy network gear and high-volume sources that only send UDPPackets can be lost or reordered without notice, and bursts can overflow socket buffers before NiFi reads themReceive buffer size and whether drops appear in your monitoring
RFC 5424 parsingModern senders that emit structured headers, sequence fields and structured dataStricter structure means more messages can fail validation if a sender deviates from the standardWhich parser the processor applies to 5424 messages and how structured data is exposed as attributes
RFC 3164 parsingOlder BSD-style senders and devices that cannot produce RFC 5424 outputTimestamps lack year and time zone, and message content is less consistently delimited, so field extraction is less exactHow the processor derives the year and time zone for 3164 messages and whether your senders include a hostname
Invalid message handlingKeeping malformed lines for review instead of losing them silentlyRouting invalid messages to a separate relationship adds flow logic and storage that must be watchedWhich relationship receives unparsed messages and whether the raw bytes are preserved
Port and bindingDedicated ports per source class so routing and filtering can rely on the listenerPrivileged ports below 1024 need extra OS configuration, and port conflicts block startup on a nodePort range permitted by your OS and firewall rules for each node in the cluster
Maximum message sizeLimiting memory use from oversized or malicious framesSet too low, long stack traces and verbose application logs are truncated or rejectedDefault limit in the processor documentation and the largest message your senders produce
TLS contextSources that must send over encrypted TCP and be authenticated to the listenerCertificate rotation, client authentication and cipher choice add operational work on every nodeWhich SSL context service the processor accepts, how client certificates are verified and the TLS versions enabled

How to set up ListenSyslog across a NiFi cluster

This sequence takes syslog from an inventory of senders to a load-balanced, TLS-protected ListenSyslog deployment across a NiFi cluster, with parsing, invalid message handling and replay-based validation confirmed before production traffic arrives.

  1. Confirm runtime and release line

    The platform team confirms that each NiFi node runs Java 21, the minimum runtime listed in the NiFi administration guide, and that the cluster is on the NiFi 2.x release line rather than 1.x, which the project has stopped maintaining. Check the installed version on every node, not only the first one, and record the NiFi, Java and operating system versions in the change record. The step is done when all nodes report the same 2.x version and the Java runtime check passes on each host. Confirm the exact current 2.x release with your own change control process before you pin it.

  2. Inventory sender protocols and formats

    The network and server teams list every source that sends syslog, including the device or OS family, the transport (UDP or TCP), whether TLS is available on the sender, the message format (RFC 5424 or RFC 3164, or a vendor variant), the expected message rate and the source networks that will reach the listener. Group senders that share a format and transport, since each group usually needs its own listener and parsing path. The output is a sender matrix that the team signs off. Confirm with each device owner which syslog options their platform actually supports, because vendor implementations differ from the RFCs.

  3. Create a test listener on an unprivileged port

    On one node, add a ListenSyslog processor with a non-privileged port and the transport chosen from the inventory, then connect its success relationship to a LogAttribute or a terminal sink so you can observe what arrives. Keep the listener bound to a test interface or a restricted source range and avoid the standard port 514 until the design is proven. Send a few messages from one known sender and confirm that the processor emits FlowFiles and that the attributes show the sender address and the message content. The step is complete when a test message from a known sender appears in the output queue with the expected content.

  4. Configure parsing and invalid message routing

    Attach a record reader that matches the format in the inventory, such as a syslog-aware reader for RFC 5424 or RFC 3164 messages, and route the parse failure relationship to a separate path that stores the raw message with its source attributes. Decide how unmatched vendor formats are handled, either by a second parser or by quarantine, and document the choice. Check the parse counts in the flow statistics after sending a mixed sample of valid and malformed messages. The step is done when valid messages reach the parsed path, malformed messages reach the quarantine path with no loss, and both counts match the number of messages sent.

  5. Enable TLS and certificate-based client identity

    For TCP senders that support TLS, configure the listener with an SSL context service that uses a certificate issued from your internal PKI, and require client certificates where the senders can present them. Restrict the accepted client identities to the certificates in your sender inventory, and confirm the cluster's own TLS and authentication settings in the NiFi administration guide, including the note that NiFi binds to 127.0.0.1 without a security configuration. Test with one client that presents a valid certificate and one that does not, and confirm the second connection is refused. The step is done when the authorized sender delivers messages and the unauthorized connection is rejected and logged. UDP has no TLS, so document the compensating network controls for UDP senders.

  6. Distribute listeners across nodes with a load balancer

    Run ListenSyslog on the primary node set and place an external load balancer or virtual IP in front of the nodes, so each sender reaches one stable address. Confirm which processor execution mode fits the design, since a listener on every node can receive traffic on each host, and make sure the cluster coordination method (embedded or external ZooKeeper, or Kubernetes state through ConfigMaps or Leases, per the administration guide) is healthy before traffic moves. Check that the load balancer health checks fail when a node leaves the cluster. The step is done when traffic sent to the shared address is spread across more than one node and a single node stop does not stop intake.

  7. Validate with replayed traffic and provenance

    Replay recorded or generated syslog traffic at the expected rate from each sender group, including malformed samples and a burst above normal volume, and watch queue depth, back pressure and error counts on each node. Use data provenance to trace a sample of messages from receipt through parsing to the destination, confirming that every replayed message has a receive event and a terminal event. Record the observed results against the sender matrix from step two. The step is complete when provenance shows no unexplained gaps, the quarantine path holds only the expected malformed messages, and the results are filed for the go-live review. Confirm the sustainable message rate with your own load test, since the supplied facts do not give throughput figures.

How TCP and UDP senders change what NiFi must handle

A UDP sender does not wait for acknowledgment, so loss and reordering happen before NiFi sees a message and outside NiFi's control. When a UDP datagram is dropped by a congested link, a full socket buffer on the listener host, or a busy network device, neither the sender nor NiFi knows it was lost. NiFi can only count what arrives. The practical consequence is that NiFi's own queues and back pressure cannot protect against loss on that path. Capacity has to be planned at the network and host level, including the receive buffer sizes on the operating system that hosts the listener, and drops have to be watched through host and network counters, not through NiFi flow metrics alone. Confirm with each sender's documentation whether it retransmits, whether it can be told to buffer locally, and how it orders messages across retries.

Many network devices send syslog over UDP by default, which makes UDP the transport you are most likely to inherit. Firewalls, switches, routers and some appliances are often configured this way, and the default may differ between firmware versions and between the device's own logging and its forwarding feature. Treat the fleet inventory as a planning input: for each device class, record the transport, port, message format and whether the sender can switch to TCP or TLS. Then size the listener for bursts, not averages, and alert on evidence of drops, such as gaps in sequence fields where the vendor provides them, or a sudden fall in event counts from a source that normally logs steadily. These checks are qualitative until you have baseline volumes from your own environment.

A TCP connection gives the sender a way to slow down and gives NiFi a stream that must be split into messages correctly. When the listener is busy, TCP flow control pushes back on the sender, so messages are delayed instead of silently dropped, provided the sender handles the stall well. TCP also means that message boundaries are not guaranteed by the network, so the listener must frame each syslog message, which is the job of the ListenSyslog configuration when you choose a TCP framing approach. Ask each sender team whether it expects a connection to stay open for long periods, how it reconnects after a reset, and whether it can use TLS. Those answers determine connection limits, timeouts and the load balancing design across cluster nodes covered elsewhere on this page.

Securing syslog intake and protecting the cluster

A syslog listener is an open door into your flow, and a NiFi cluster that accepts it is also a control plane for every flow on it. The cards below cover the controls that protect both: encrypting the listener, deciding who may send, keeping the UI off the open network, limiting who can change flows, protecting secrets, and recording what was rejected.

Encrypt the listener with TLS

Plain TCP syslog carries credentials, usernames and internal hostnames across the network in clear text. When you use ListenSyslog over TCP, configure an SSL Context Service so the listener accepts only TLS connections, and confirm that each sending device or relay supports the TLS version and certificate chain you issue. Test with one sender before cutting over the fleet, because devices that cannot negotiate TLS will silently stop delivering.

Restrict which senders connect

A listener bound to a network interface accepts traffic from any host that can reach it. Limit exposure with host firewall rules or network access lists that allow only known device subnets and syslog relays, and use client certificates where your devices can present them. Check the source address and certificate identity in your tests, since a permitted network does not prove the sender is the device you expect.

Keep the UI on a secured interface

NiFi binds to 127.0.0.1 when no security configuration is supplied, so the UI is reachable only from the host itself. Before opening the UI to operators, configure HTTPS and an authentication provider so the interface is not exposed without login. Decide which network the UI listens on, and keep the syslog listening port on a separate interface or firewall zone where it is possible to do so.

Separate flow operator access

Anyone who can edit the listener or its downstream routing can change where log data goes, including sending it to an unmonitored destination. Use NiFi's authorization policies to give operators view access, give a small group modify rights on the syslog process group, and keep cluster administration separate. Review those policies whenever a team changes, since access is granted per component and per process group.

Protect sensitive values

Listener certificates, keystore passwords and destination API tokens are sensitive values that should not appear in flow exports or Git-versioned flow definitions. Store them as sensitive parameters or in an external parameter provider, mark them as sensitive in the flow, and check that exported flow files and registry commits contain no plain-text secrets before they are shared. Confirm your encryption and key handling with your NiFi version's documentation.

Log rejected and malformed messages

Invalid syslog lines are a signal, whether they come from misconfigured devices, scanning or spoofed senders. Route the failure relationship of ListenSyslog and the parser to a dedicated path that records the sender address, the byte count and a sample of the raw line, with a retention rule set by your logging policy. Watch that path for sudden growth, because an unbounded error queue can fill the repository and slow the cluster.

Questions buyers ask before collecting syslog in NiFi

What drives the cost of a syslog collection project in NiFi?

The main drivers are the number of sending devices and servers, how many distinct message formats they emit, how much parsing and routing logic each format needs, and how TLS and cluster design are handled. A fleet of a few well-documented sources with one format is a much smaller job than hundreds of sources across vendors with inconsistent output. Fixed-scope engagements are priced from a written scope, so the quote should list sender groups, formats, listener protocols, destinations and the cluster layout. One-time costs cover design, build, testing and handover. Recurring costs cover support, upgrades and any retainer you choose, and they grow when new sender types keep arriving. Ask for each cost line to be tied to a named sender group or deliverable.

How long does it take to collect syslog at scale with NiFi?

Duration depends on the environment and the agreed scope more than on NiFi itself. The biggest variables are how many sender groups need onboarding, how quickly network and firewall changes can be approved, whether TLS certificates must be issued by an internal PKI, and whether the target cluster already exists. Each new message format adds parsing and testing work, and each SIEM destination adds its own onboarding step. Because most engagements are fixed-scope, the timeline should be written into the agreement with milestones for listeners, parsing, invalid message handling, cluster rollout and cutover. Ask for the timeline to show which steps depend on your teams, since those are the usual sources of delay.

What do we need to provide before the work starts?

You will need to provide the following before the work starts:

  • Network paths from each sender group to the NiFi listener addresses, including firewall rules for the chosen ports and protocol.
  • A sender inventory that lists each device or server group, its syslog format, its transport (UDP or TCP), and whether it can use TLS.
  • Certificates for the listeners, along with the CA chain that senders and NiFi trust, and a plan for renewal.
  • Target SIEM or storage endpoints, credentials for them, and the expected event formats they accept.
  • Access to the hosts that will run NiFi, or to the Kubernetes or cloud accounts where they will run.

Missing or inaccurate sender inventories are one of the most common causes of rework, so ask the team to validate the list before design begins.

Can our internal team build syslog collection in NiFi without a partner?

Yes, a capable internal team can build it, provided it has NiFi operations experience, someone who understands syslog formats and network behavior, and time to test. Apache NiFi is licensed under the Apache License 2.0 and has no paid edition from the project, so licensing is not the barrier. The harder parts are sizing the cluster, deciding how TLS and client certificates are managed, handling malformed messages without losing data, and proving that every sender reaches the right destination. A partner can shorten the path by bringing a tested build sequence and verification checks. Either way, the decision depends on whether your team can staff design, testing and ongoing operations without pulling people from other priorities.

Should we use TCP or UDP for syslog, and does it change the work?

UDP is simple to configure and senders often support it by default, but it offers no delivery acknowledgement, so messages can be lost under load or network loss. TCP provides connection-level reliability and is the usual choice where losing events is unacceptable, and it is also the transport where TLS is commonly used. The choice affects the work in several ways: listener sizing, how back pressure reaches senders, how many concurrent connections the cluster must hold, and how load balancing is designed. Confirm with each sender owner which transports their devices support, because some older equipment only sends UDP. Mixed transports usually mean separate listeners and separate verification steps.

What breaks most often in a syslog pipeline, and how is it checked?

The most common failures are unexpected message formats, malformed lines that a parser rejects, senders that send RFC 3164 messages where RFC 5424 is expected, timestamps in unexpected time zones, and listeners that stop accepting connections when a cluster node is overloaded or unreachable. Invalid messages should be routed to a separate relationship and stored, not silently dropped, so they can be reviewed and fixed. Verification should include test senders for each format, deliberately malformed samples, load tests at expected event rates, failover tests for a node loss, and a check that every event reaches its destination with the expected fields. Ask for these checks to be written into the test plan with pass criteria.

How do TLS and cluster design affect the scope?

TLS adds work in certificate issuance, distribution to senders and NiFi, trust configuration, renewal and testing of failure modes when a certificate expires. Some senders cannot use TLS at all, so they need a separate, documented path or a compensating control agreed with the security owner. Cluster design affects load balancing across listeners, how a failed node is replaced, and where state is kept. NiFi clusters can coordinate through embedded or external ZooKeeper, or on Kubernetes using ConfigMaps or Leases, and that choice should be made early because it shapes the deployment. Confirm the hosting model and the coordination approach with your platform team before the quote is finalized.

Which NiFi version and Java runtime should the collection cluster use?

New collection clusters should target NiFi 2, since NiFi 1.28 is the last minor release of the version 1 series and the project strongly encourages upgrades to NiFi 2. The latest NiFi 2 release listed on the downloads page is 2.12.0, released on September 13, 2026, so confirm the version you deploy against that page at build time. The NiFi administration guide lists Java 21 as the minimum runtime. Python 3.10, 3.11 or 3.12 is needed only for optional Python-based processors, which the guide describes as a beta feature, so avoid depending on them for syslog collection unless you have accepted that status.

What to confirm in your environment before committing to a design

The right syslog design depends on facts only your environment can supply: how many messages your senders emit, what formats they actually send, and which runtime and NiFi line your platform team can support. Check these items first, because each one changes the listener choice, the parsing approach and the cluster layout.

Sender volume and burst profile

Measure steady-state events per second and peak bursts per sender group, not just daily totals. Firewalls and domain controllers often spike during incidents or scans, and a listener sized for averages will drop or queue messages exactly when you need them. Ask each team for their logging configuration and a sample of a busy hour, then size queues, back pressure thresholds and node counts against the peak. Document the burst window you expect to absorb.

Syslog variants your devices emit

Network gear, Linux hosts and appliances often mix RFC 5424 and RFC 3164 formats, and some vendors add their own timestamp or header conventions. Pull a sample of raw messages from each device class and confirm the framing, the timestamp format and whether structured data is present. Your parser choice and the invalid message route depend on what you find, so do not assume one format for the whole fleet.

Java 21 availability on NiFi hosts

The NiFi administration guide lists Java 21 as the minimum runtime. Confirm that your hosts, base images and change process can deliver that JDK version and that your security team has approved it. If your standard build still ships an older JDK, the upgrade becomes a prerequisite for the listener work and should be scheduled before the design is locked.

Python processor requirements

Python-based processors are an optional feature that the administration guide describes as beta, and they support Python 3.10, 3.11 or 3.12. Confirm whether any parsing or enrichment step truly needs Python. If it does, check that those interpreter versions are available and accepted by your platform team. Most syslog collection can run on built-in Java processors, so keep Python out of the critical path unless the requirement is firm.

Load balancer behavior with UDP

UDP syslog has no connection state, so a load balancer distributes datagrams without the sender knowing which node received them. Confirm how your network team's load balancer hashes traffic, whether it preserves source address and whether a node failure drops in-flight messages. Test with a sustained sender and a node removed mid-run, and record the loss you accept. This is the check most likely to change the design.

Certificate lifecycle for TLS listeners

TLS syslog needs server certificates on every listening node, trust configuration on each sending device, and a renewal process that touches both. Confirm who issues the certificates, how long they last, how a rotated certificate reaches devices that cannot reload trust automatically, and whether senders support the TLS version and cipher set you require. Gaps here tend to appear as silent drops rather than clear errors.

NiFi release line and support status

Confirm that your NiFi deployment sits on the 2.x line, which receives current releases, and not on 1.x, which has reached end of support. The NiFi downloads page lists NiFi 2.12.0 as the most recent release in the material supplied for this page, so check the current version before you pin one. Plan a migration path if you are still on 1.x, because the listener configuration and flow files change during that move.

How the syslog intake scope is agreed before build

Syslog intake work is agreed as a fixed scope with written deliverables and timelines before any build starts. The scope document should name every listener, every port and protocol pair, the NiFi version and cluster topology, the destinations that receive parsed output, and the acceptance tests that show the intake works. Because DeployOpen does not publish a price list, the quote follows from that written scope. Ask for the quote to list each deliverable separately, for example the ListenSyslog flow, the parser and invalid-message branch, the TLS configuration, the load balancing design and the test evidence, so you can see which items are one-time work and which recur, such as patching, retention review or a retainer for support.

The sender inventory is the input that drives most of the effort. For each source class (firewalls, switches, Linux servers, appliances, cloud agents) record the transport it uses, UDP or TCP, whether it can use TLS, the RFC 5424 or RFC 3164 format it emits, the expected messages per second at peak, and the owner who can change its configuration. Sources that cannot be reconfigured determine what the listener must accept, which is often the largest scope driver. The test plan should replay captured samples from each class, include malformed and truncated messages, run a sustained load test on the cluster and confirm that loss, duplication and ordering behave as the design states. Confirm with your network and security teams which of these tests may run against production senders and which need a staging copy.

How DeployOpen works on this

DeployOpen plans, builds, documents and supports NiFi syslog collection inside your own infrastructure, whether that is your cloud accounts, data centers or an isolated network. Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.

How we scope

  • Inventory the sending fleets, device types and syslog formats, including which senders use RFC 5424 and which use RFC 3164.
  • Decide TCP or UDP per source and document the message loss and back pressure trade-offs your teams accept.
  • Agree in writing how invalid messages are routed, retained and reported, and which listeners run in the cluster.

How we build

  • Configure ListenSyslog listeners, parsing readers, TLS settings and load balancing across cluster nodes in your environment.
  • Test parsing with captured samples from each sender type, including malformed lines, and tune the failure routing.
  • Version flows in a Git repository where the target NiFi release supports it, and check that the build matches the agreed scope.

How we hand over

  • Deliver written documentation covering listener addresses, ports, certificates, parsing rules and failure queues.
  • Walk your operations and security teams through monitoring points, provenance checks and the runbook for a stuck or full queue.
  • Provide a test record showing which senders were verified against which listeners, so your team can repeat the checks.

How we support

  • Offer ongoing support, upgrades and continuous testing as a retainer after handover, scoped separately from the build.
  • Plan certificate renewal, sender onboarding and parser updates as recurring work with named owners on your side.
  • Confirm with your team how NiFi version upgrades will be tested against live syslog samples before they reach production.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.