Syslog
Overview
What is its Purpose?
Transfers Apinizer logs to a central syslog collector with low latency via Connection.
Provides flexible log transport compatible with different organization standards through TCP/UDP, TLS, and message format options.
Provides common naming and versioning while maintaining Development/Test/Production separation through environment-based configuration.
Logs transmitted in UDP mode have no delivery guarantee; prefer TCP + SSL/TLS for critical flows.
Working Principle
When a Syslog connection is requested from within an Integration Flow or Connector, the system reads the configured connection parameters.
In TCP mode, one or more persistent sockets are opened for each environment (Connection Count); log messages are queued asynchronously and sent in order — this is not a connection pool, it is a queuing model built on top of persistent socket(s). When the queue is full (whichever limit is reached first — message count or buffer memory), new messages are routed to the failover connector if one is enabled on the Syslog Connector; otherwise (the default) they are dropped. Automatic reconnection is applied when the active connection closes or a write timeout occurs; stateless sending is performed in UDP mode.
If TLS is used, certificate-based Authentication is applied; otherwise, syslog server's IP-based security policies come into play.
Log messages in RFC 3164/5424/5425 format, hostname, and facility/severity fields are transmitted over selected protocol.
After operation completes, the TCP connection stays open and is reused for the next queued message; UDP packets require no additional management as they are stateless.
In case of connection error, timeout, or authentication error, details are shown in deployment-result dialog; error metrics are propagated via Apinizer Event Manager.
Use Cases
Real-time transfer of API Gateway logs to SIEM or SOC platforms
Notification of security events (e.g., WS-Security, Authentication errors) to central alarm system
Providing single log flow for log correlation between operating systems, firewall, and Apinizer services
Validating new rule/transformation developments in test environment without affecting syslog infrastructure in prod environment
Technical Features and Capabilities
Basic Features
TCP/UDP: Selection can be made between low-latency UDP or reliable TCP modes.
RFC 3164, RFC 5424, or RFC 5425 formats; compatible log template is created with hostname, facility, and severity fields.
Routing to different syslog endpoints is performed by selecting target Environment for each Connection via environmentId list.
Ability to define separate connection parameters for each environment (Development, Test, Production).
Activating or deactivating the Connection (enable/disable toggle). In passive state, connection cannot be used but its configuration is preserved.
Advanced Features
IDeploymentResult outputs are shown to user after save and test, real status of log flow is monitored instantly.
Admin users can move connection from project context to global area, thus facilitating reuse.
Can be transferred to other environments by packaging JSON + metadata with ExportFile structure.
Ability to validate connection parameters before saving with "Test Connection" button.
Export connection configuration as ZIP file. Import to different environments (Development, Test, Production). Version control and backup capability.
Monitoring connection health, queue status, and performance metrics.
Optional octet-counted framing (RFC 6587) keeps large, multi-line records intact instead of relying on a trailing line break to mark the end of each message.
Multiple TCP sockets can be opened to the same syslog server to raise throughput under high log volume.
Connection Parameters
Required Parameters
Parameter: Name
Example Value: Production_Syslog
Connection name (must be unique). Cannot start with space, special characters should not be used.
Parameter: Environment
Example Value: prod-env-id
Identity of published environment where logs will be targeted. Environment list comes via Environment Service, cannot be tested if selection is not made.
Parameter: Syslog Protocol Type
Example Value: TCP
TCP or UDP selection. When TCP is selected, timeout and SSL settings become mandatory.
Parameter: Syslog Server Hostname
Example Value: syslog.corp.local
Syslog server name or IP where logs will be sent. FQDN recommended, DNS resolution is performed by gateway.
Parameter: Syslog Port
Example Value: 514
Syslog listening port. 514 for UDP, 6514 for TLS can be commonly used.
Parameter: Syslog Message Format
Example Value: RFC_5424 (the default offered on a new connection; a connection created before this default changed keeps RFC_3164 until you change it)
Message body template (RFC 3164/5424/5425). Should be selected according to SIEM expectations.
Parameter: Syslog App Name
Example Value: ApinizerGateway
Application name that will appear in messages. Recommended not to exceed 48 characters.
Parameter: Syslog Facility
Example Value: AUDIT
Log classification value, chosen from the standard syslog facility list (for example AUDIT, USER, DAEMON, AUTH, or LOCAL0 through LOCAL7).
Parameter: Syslog Severity
Example Value: INFORMATIONAL
Log importance level, chosen from the standard syslog severity list (Emergency, Alert, Critical, Error, Warning, Notice, Informational, Debug).
Parameter: Syslog Timeout (TCP)
Example Value: 500
Wait time in milliseconds for TCP handshake + ACK. Not shown in UDP mode, mandatory in TCP mode.
Optional Parameters
Parameter: Description
Default Value: -
Recommended Value: Specify usage purpose and target syslog cluster
Description about the connection
Parameter: Syslog Message Hostname
Default Value: gateway01
Recommended Value: Use different hostname for each environment to facilitate correlation
Overrides HOSTNAME field in log.
Parameter: Syslog SSL Enabled
Default Value: false
Recommended Value: true in Production, self-signed if needed in Test/Dev
Provides TLS encapsulation over TCP.
Parameter: Deploy To Worker
Default Value: true
Recommended Value: Leave true if network isolation exists
Whether connection will be deployed to worker nodes.
Timeout and Queue Parameters
Description: syslogTimeout value in TCP mode (handshake + ACK wait)
Default: 500
Unit: milliseconds
Notes: UI only enforces a required-field check; there is no min/max.
Description: Maximum number of log messages in the TCP async send queue. Works together with the buffer memory ceiling below — whichever limit is reached first applies. When the queue is full, the message is routed to the failover connector if one is enabled; otherwise it is dropped.
Default: 10000
Min: 100 | Max: 1000000
Unit: messages
Description: If writing a message to the syslog server takes longer than this duration, the connection is forcibly closed and re-established.
Default: 5
Min: 1 | Max: 60
Unit: seconds
Framing and Delivery Parameters
Description: How message boundaries are marked on the wire in TCP mode.
Default: AUTO — derived from Syslog Message Format: RFC_5425 uses octet-counted framing, every other format uses the traditional line-ending framing.
Values: AUTO, NON_TRANSPARENT, OCTET_COUNTING
Description: Number of parallel TCP sockets opened to the syslog server; this is not a connection pool.
Default: 1
Min: 1
Unit: sockets
Notes: The default (1) is intentional — a value greater than 1 can reorder messages, and most existing deployments depend on single-socket, fully-ordered delivery. Review "Delivery Order with Multiple Connections" below before changing it.
Description: Byte ceiling for the outbound send queue, independent of the message-count limit above.
Default: 64 MB
Min: 1 MB (1,048,576 bytes)
Unit: bytes
Notes: A single record larger than a quarter of this value is rejected immediately instead of being queued, so that a record which can never fit cannot block admission for the whole wait period. At the 64 MB default this ceiling is 16 MB; raise the ceiling if individual records can be larger.
Description: Maximum time the sending side waits when the queue is full before giving up on that attempt. The message is then routed to the failover connector if one is enabled; otherwise it is dropped.
Default: 100
Min: 0 | Max: 2000
Unit: milliseconds
Notes: This wait is only applied in full on a virtual thread. When the send runs on a platform thread, the effective wait is capped at 50 ms so it cannot hold a request thread for long.
Description: Number of frames written in one send cycle before the connection is flushed.
Default: 8
Min: 1
Unit: frames
These parameters are all optional and can be left empty. Framing, parallel connection count, and the message-count queue limit keep today's behavior when left empty. The one exception is the Buffer Memory Ceiling: the 64 MB limit applies by default even if the field is never filled in, so installations with large average records reach a full queue earlier than before (at 200 KB per record, 64 MB is roughly 327 messages, where the old count limit was 10,000). Raise the ceiling deliberately on those installations.
Message Splitting Parameter
Description: The largest a single syslog message from this connection may be before a record is sent as several syslog messages instead of one. The size that is measured is the complete syslog message — header, structured data and body together, not just the free-form part — which is the same quantity rsyslog measures with `global(maxMessageSize=...)` (the older `$MaxMessageSize` directive). The RFC 6587 framing around the message — the octet-count prefix in OCTET_COUNTING mode, or the trailing line break in NON_TRANSPARENT mode — is not counted.
Default: 0 — no splitting. Every record is still sent as exactly one message, byte-for-byte the same as before this setting existed.
Unit: bytes (UTF-8)
Notes: For UDP, keep this well under your network path's real datagram size; RFC 5426 recommends staying under 2048 bytes for compatibility with older relays and intermediate devices. See Splitting Oversized Messages below for what a split message looks like on the wire and how it relates to the size policy on the SIEM & Log Forwarding page.
TLS and Structured Data Parameters
These fields appear only where they are relevant: the first three when Enable SSL is on, the last two when the Syslog Message Format is RFC 5424 or RFC 5425. None of them is required — an organization that does not use TLS keeps sending over plain TCP or UDP exactly as before.
Description: The client certificate presented to the syslog server for mutual TLS (mTLS).
Default: empty
Notes: When left empty, no client certificate is presented and the session is server-only TLS. The list is filled from the key stores defined under Secrets; see Keystore Management.
Description: The trust store used to verify the syslog server's certificate chain.
Default: empty
Notes: When left empty, the JVM default trust store is used. When a truststore is selected it becomes the only trust anchor — the public certificate authorities that ship with the JVM are not added to it, so the server certificate must chain to a certificate inside that store.
Description: The name in the server certificate (SAN or CN) must match the Syslog Server Hostname you entered.
Default: on for connections created after the upgrade, off for connections that already existed
Notes: When it is off, only the certificate chain is verified, so a certificate issued for a different name is still accepted. Existing SSL connections keep behaving exactly as before until you turn it on yourself.
Description: Writes the RFC 5424 STRUCTURED-DATA field into the frames this connection sends.
Default: off
Notes: Effective over TCP (with or without TLS) and only with the RFC 5424 or RFC 5425 message format. UDP and RFC 3164 ignore it and the frame stays byte-for-byte what it is today.
Description: Your organization's IANA Private Enterprise Number. It identifies the Apinizer event element inside structured data.
Default: empty
Values: 1 to 10 digits
Notes: Optional. When it is empty, only the origin and timeQuality elements are written. A number can be requested free of charge from IANA.
Turning Enable SSL back off does not erase the three TLS fields. They are kept and take effect again the next time SSL is turned on.
When the certificate inside a key store record that is already selected here is renewed, save the Syslog connection again (or redeploy the environment) so that the open connections are rebuilt with the new material. Changing the server address, port, SSL state, keystore, truststore, hostname verification, framing type or message format rebuilds them as well; changing only the write timeout does not.
Use Cases
Situation: SOC platform accepts logs with TCP + TLS
Solution: Protocol: TCP, SSL Enabled: true, Port: 6514
Expected Behavior: Logs transmitted securely over TLS, facility/severity fields fall to SIEM rules
Situation: Fast UDP required for correlation with firewall logs
Solution: Protocol: UDP, Port: 514, Message Format: RFC_3164
Expected Behavior: Log flow performed with low latency, packet loss is tolerant
Situation: Detailed debug log requested in test environment
Solution: Severity: DEBUG, Facility: LOCAL0, Message Hostname: test-gw
Expected Behavior: Test syslog server receives detailed debug events
Situation: Audit teams request audit trail
Solution: Facility: AUDIT, Severity: NOTICE, App Name: ComplianceGW
Expected Behavior: Separated log flow provided for audit reports
Situation: Multiple projects will use same global syslog
Solution: Move to Global, Environment ID: admin project, Name prefix: Global_
Expected Behavior: Single connection shared across all projects, changes managed centrally
Situation: Production logs will be copied to secondary data center (optional)
Solution: Export ZIP, Import to different environment, Port/Hostname updated to DR address
Expected Behavior: DR syslog server starts receiving logs in same format
Connection Configuration
In this step, you can create a new connection or configure existing connection parameters to set connection rules. Defined parameters directly affect how the connection works and become available for use in Integration Flow or Connector steps.
Creating New Syslog Connection
- Go to Connection → Syslog Connection section from left menu.
- Click [+ Create] button at top right.
Enable Status (Active Status): Set active/passive status with toggle. New connections are active by default.
Name Required:
- Example:
Production_Syslog - Enter unique name, cannot start with space.
- System automatically checks. Green checkmark: available. Red X: existing name.
Description:
- Example: "Gateway prod log flow"
- Max. 1000 characters.
- Describe the purpose of the Connection.
In the action button area at the top of the page, you can use the [<> Variable] button to select dynamic values, and with global variables, you can manage connection parameters with variable-based values instead of fixed values. For detailed information, review the Dynamic Variables page.
- Select environment from dropdown menu: Development, Test, or Production.
- Different connection parameters can be defined for each environment.
- Select TCP or UDP from Syslog Protocol Type field.
- Enter Syslog Server Hostname and Syslog Port values.
- Incorrect port leads to log loss; verify network firewall openings.
- Select Syslog Message Format (RFC 3164/5424/5425).
- Fill Syslog Message Hostname, Syslog App Name, Facility, and Severity fields according to your log policy.
- With RFC 5424 or RFC 5425 you can turn on Write RFC 5424 Structured Data and, if your organization has one, enter your Enterprise Number (PEN).
- When TCP is selected, Syslog Timeout value is entered in milliseconds (default 500).
- Timeout field is hidden in UDP mode.
- Enable TLS tunneling by setting the Enable SSL option to true in TCP mode.
- Select a Truststore when the syslog server's certificate is issued by a private authority; leave it empty to keep using the JVM default trust store.
- Select a Keystore when the syslog server asks the client for a certificate (mutual TLS); leave it empty for server-only TLS.
- Leave Hostname Verification on unless the server certificate deliberately carries a name other than the address you connect to.
- Step-by-step mutual TLS setup, including the syslog server side, is on Syslog Integration.
- Click [Test Connection] button.
- Test whether connection parameters are correct.
- Success: Green confirmation message, Failed: Error details shown.
- On a TLS connection the result box also reports the session that was negotiated, for example
ok: tls: TLSv1.3 / TLS_AES_256_GCM_SHA384 / peer=CN=syslog.example.com / clientCert=CN=apinizer-gateway (expires 2036-08-31).clientCert=nonemeans no client certificate was presented. - When the selected keystore or truststore cannot be read, the test fails with an explicit message; the connection is never retried without TLS.
- A successful test against a TLS server takes about a second longer than a plain one, because a server that rejects the client certificate only says so after the handshake and Apinizer waits for that answer.
- Click [Save and Deploy] button at top right.
Checklist: Unique name. Required fields filled. Test connection successful (recommended)
Result:
- Connection is added to list.
- Becomes available in Integration Flow and Connector steps.
- Becomes active according to environment.
Connection created successfully! You can now use it in Integration Flow and Connector steps.
Deleting Connection
Select Delete from ⋮ menu at end of row or click [Delete] button on connection detail page
Check Before Deleting: May be used in Integration Flow or Connector steps. If necessary, assign an alternative connection. Back up with Export before deleting
Use Disable option instead of deleting. Connection becomes passive but is not deleted. Can be reactivated when needed
Exporting/Importing Connection
In this step, you can export existing connections for backup, moving to different environments, or sharing purposes, or import a previously exported connection again. This operation is used to maintain data integrity in version control, transitions between test and production environments, or inter-team sharing processes.
Export
Click [Export] button on connection detail page. ZIP file is downloaded.
The row's ⋮ menu now has two items: the primary Export opens the Export/Import Wizard with this connection preselected — its certificate/key store and any ${VARIABLE} reference surface automatically on the dependency step; the secondary Export as File downloads the ZIP described below directly, without going through the wizard.
Format: Date-connection-ConnectionName-export.zip
Example: 13 Nov 2025-connection-Production_Syslog-export.zip
- Connection JSON file
- Metadata information
- Dependency information (e.g., certificates, key store)
- Backup
- Moving between environments (Test → Prod)
- Versioning
- Team or project-based sharing
Import
- Click [Import Syslog Connection] button on the main list — it now opens the Export/Import Wizard's import step with type Connection preselected (Admin scope when opened from Administration); the old upload dialog is gone.
- Select the exported package and follow the wizard's steps.
- The wizard checks format, name conflicts and dependency availability before you confirm the import.
Scenario 1: Name Conflict → Overwrite old connection or create with new name.
Scenario 2: Missing Dependencies → Create missing certificates or key stores first or exclude during import.