Syslog Implementation: Servers, Integration and Best Practices

Alexandr Bandurchin
May 29, 2025
11 min read

What is Syslog?

Syslog is a fundamental protocol for collecting messages and event data from various devices and applications across a network. Think of it as a universal language that allows your servers, routers, firewalls, and software to send their operational insights to a central logging point. Born from Unix systems, Syslog has evolved to become the industry standard, forming the backbone of effective log management and providing a unified view of your infrastructure's activity.

Key Components:

  • Syslogger: Background process that collects and routes log messages
  • Facilities: Categories of programs generating messages (mail, kernel, auth, etc.)
  • Severity levels: Priority indicators from emergency (0) to debug (7)
  • Message format: Structured format containing timestamp, hostname, and message content

Linux sys log functionality is built into most distributions, handling system messages, application logs, and security events. The syslog protocol operates on UDP port 514 by default, though TCP and encrypted variants are available for reliable transmission.

Syslog Protocols & Standards

RFC 5424 Standard

RFC5424 defines the current syslog protocol standard, replacing the older RFC 3164. This enhanced syslog specification includes:

  • Structured data elements: Machine-parseable key-value pairs for better log analysis
  • UTF-8 encoding support: International character handling for global deployments
  • Microsecond timestamps: Higher precision timing for detailed troubleshooting
  • Message size limits: Up to 2048 bytes for UDP, larger for TCP transmission

Syslog PRI Values

Syslog messages include a syslog pri value calculated as: Facility × 8 + Severity

Common Facilities:

  • 0: Kernel messages (linux sys log core events)
  • 1: User-level messages
  • 2: Mail system
  • 3: System daemons
  • 4: Security/authorization messages
  • 16: Local use facilities (local0-local7)

Severity Levels:

  • 0: Emergency - system unusable
  • 1: Alert - immediate action required
  • 2: Critical - critical conditions
  • 3: Error - error conditions
  • 4: Warning - warning conditions
  • 5: Notice - normal but significant
  • 6: Informational - informational messages
  • 7: Debug - debug-level messages

rsyslog (Default)

Rsyslog is the default syslog implementation on most Linux distributions. This powerful syslogger offers high performance, flexible configuration, and extensive filtering capabilities for linux sys logs.

Key Features:

  • Multi-threading support for high throughput
  • TCP and UDP transport protocols
  • Database output (MySQL, PostgreSQL)
  • TLS encryption for secure syslog transmission
  • Advanced filtering and message modification

Basic rsyslog Configuration (/etc/rsyslog.conf):

bash
# Accept remote syslog messages
$ModLoad imudp
$UDPServerRun 514

# Forward all messages to remote syslog server
*.* @@remote-syslog-server:514

For Ubuntu rsyslog setup, the configuration is straightforward and well-documented.

syslog-ng (Advanced)

Syslog-ng provides advanced log processing with powerful filtering and routing capabilities. Many administrators prefer configuring syslog ng for complex enterprise environments.

Advantages over standard syslog:

  • Sophisticated message parsing
  • Correlation and pattern matching
  • SQL-like filtering syntax
  • Better performance for complex routing rules

Syslog ng syslog Configuration Example:

bash
source s_network {
    udp(ip(0.0.0.0) port(514));
};

destination d_file {
    file("/var/log/network.log");
};

log {
    source(s_network);
    destination(d_file);
};

syslogd (Original/Lightweight)

The original syslog daemon (syslogd), often found as part of the sysklogd package in older Linux distributions, served as the foundational syslog implementation. It's still occasionally encountered in embedded systems, minimal installations, or specific BSD environments due to its small footprint and stability. While it offers limited features compared to its modern successors, it remains a reliable choice for basic log collection where resource efficiency is paramount.

Syslog Servers Overview

Syslog Server Options for Linux

When choosing the best syslog server for Linux environments, consider these top options:

rsyslog - Best free syslog server for general-purpose deployments

  • Pros: Default on most distros, well-documented, reliable
  • Cons: Configuration complexity for advanced scenarios
  • Use case: Standard linux syslog server implementations

syslog-ng - Best for complex log processing

  • Pros: Advanced filtering, better performance, SQL-like syntax
  • Cons: Steeper learning curve, commercial support for some features
  • Use case: Enterprise syslog server linux deployments

Ubuntu Syslog Server Setup

Setting up an ubuntu syslog server involves configuring rsyslog ubuntu for centralized logging:

bash
# Install rsyslog (usually pre-installed)
sudo apt update
sudo apt install rsyslog

# Configure rsyslog on ubuntu
sudo nano /etc/rsyslog.conf

# Enable UDP reception
$ModLoad imudp
$UDPServerRun 514

# Restart rsyslog ubuntu service
sudo systemctl restart rsyslog

Syslog Server Windows Solutions

For syslog server windows deployments, several commercial and open-source options exist:

WinSyslog - Native Windows syslogger

  • Integrates with Windows Event Log
  • Supports syslog forwarding to remote servers
  • GUI-based configuration for ease of use

Free Syslog Server Windows Options:

  • NXLog Community Edition - Cross-platform log collection
  • Kiwi Syslog Server Free - Limited but functional version
  • Visual Syslog Server - Simple Windows-based syslog receiver

Cloud Syslog Server Solutions

Modern cloud syslog server options provide scalable, managed logging:

AWS CloudWatch Logs - Native AWS log aggregation Google Cloud Logging - GCP's centralized logging service Azure Monitor Logs - Microsoft's log analytics platform Cloud-based syslog server providers like Loggly and Papertrail

Mac Syslog Server Options

For mac syslog server needs, consider:

  • syslog for mac using built-in syslogd
  • OSX syslog with custom configurations
  • Third-party mac os syslog tools for advanced features

Specialized Syslog Products

Kiwi Syslog Server

SolarWinds Kiwi Syslog Server is a popular Windows-based commercial solution. The kiwi syslog server offers both free and paid versions.

Kiwi Syslog Features:

  • GUI-based configuration
  • Real-time log viewing with kiwi log analysis
  • Alert and notification system
  • Log archiving and rotation
  • SNMP trap integration

Kiwi Syslog Server Free limitations include reduced functionality but sufficient for small deployments. The full solarwinds kiwi syslog server provides enterprise features.

SolarWinds Log Analyzer

The broader solarwinds syslog ecosystem includes enterprise-grade log management with:

  • Real-time syslog monitoring
  • Compliance reporting (PCI DSS, HIPAA, SOX)
  • Threat detection and alerting
  • Automated log correlation

WinSyslog Integration

WinSyslog bridges Windows environments with syslog infrastructure:

  • Windows Event Log forwarding
  • IIS log processing
  • Active Directory audit logs
  • Exchange server log integration

Syslog Integration & Analysis Tools

Splunk Syslog

Splunk syslog integration enables powerful log analysis. Splunk for syslog provides enterprise-grade search and analytics.

Splunk and Syslog Configuration:

bash
[udp://514]
disabled = false
sourcetype = syslog
index = network_logs

The splunk syslog server functionality allows centralized log collection with advanced analytics capabilities.

Best Practices for Splunk Syslog:

  • Use structured logging when possible
  • Configure appropriate sourcetypes
  • Implement index-time field extraction for performance

Graylog Syslog

Graylog syslog integration provides native syslog input support with powerful search and alerting capabilities.

Graylog Input Configuration:

  1. Navigate to System → Inputs
  2. Select "Syslog UDP" input type
  3. Configure bind address and port
  4. Set up extractors for structured data parsing

Wazuh Syslog

Wazuh syslog integration enables security monitoring and compliance through SIEM capabilities.

Wazuh Agent Configuration (ossec.conf):

xml
<remote>
  <connection>syslog</connection>
  <port>514</port>
  <protocol>udp</protocol>
  <allowed-ips>10.0.0.0/8</allowed-ips>
</remote>

Datadog Syslog

Datadog syslog integration allows log collection and analysis within the Datadog platform.

Datadog Configuration:

yaml
logs:
  - type: udp
    port: 514
    service: syslog
    source: syslog

Grafana Syslog and Loki

Syslog grafana integration through Loki enables log aggregation and visualization. Loki syslog collection provides efficient log storage and querying.

Promtail Configuration for Loki Syslog:

yaml
server:
  http_listen_port: 9080
  grpc_listen_port: 0

clients:
  - url: http://loki:3100/loki/api/v1/push

scrape_configs:
  - job_name: syslog
    syslog:
      listen_address: 0.0.0.0:514
      labels:
        job: syslog

SIEM Syslog

SIEM syslog integration is crucial for security monitoring. Most SIEM platforms support native syslog ingestion for threat detection and compliance reporting. More information you can read here.

Syslog in Network and Cloud Environments

Cisco Logging Config

Cisco logging setup enables network device log collection. Configuring syslog cisco involves several commands:

Basic Cisco Syslog Configuration:

cisco
logging host 192.168.1.100
logging facility local0
logging level 6

Advanced Cisco Logging Options:

cisco
logging buffered 16384
logging console critical
logging monitor warning
logging source-interface loopback0
# Configure cisco logging synchronous for console
logging synchronous

Meraki Syslog Setup

Meraki syslog configuration enables centralized logging for Cisco Meraki devices. Syslog meraki setup is done through the dashboard:

Meraki Configuration Steps:

  1. Navigate to Network-wide → General
  2. Enable "Syslog servers"
  3. Add server IP and port
  4. Select log types to forward

FortiGate Syslog Config

Fortigate syslog setup allows firewall log forwarding to remote servers.

FortiGate CLI Configuration:

bash
config log syslogd setting
    set status enable
    set server "192.168.1.100"
    set port 514
    set facility local0
end

UniFi Syslog

Unifi syslog configuration enables network monitoring for Ubiquiti devices.

UniFi Controller Configuration:

  1. Settings → System Settings → Controller Configuration
  2. Enable "Remote Logging"
  3. Configure syslog server details

vCenter Syslog

Vcenter syslog configuration allows VMware log forwarding for centralized monitoring.

Proxmox Syslog

Proxmox syslog setup enables virtualization platform log collection.

Proxmox Configuration (/etc/rsyslog.conf):

bash
*.* @@syslog-server:514

Syslog Configuration and Management

Platform Syslog Config

Server Configuration

Setting up configuring a syslog server requires several steps:

Server Setup (rsyslog):

bash
# Enable UDP reception
$ModLoad imudp
$UDPServerRun 514

# Enable TCP reception (more reliable)
$ModLoad imtcp
$InputTCPServerRun 514

# Template for organizing logs by hostname
$template RemoteHost,"/var/log/remote/%HOSTNAME%/%$YEAR%-%$MONTH%-%$DAY%.log"
:source, !isequal, "localhost" ?RemoteHost
& stop

Ubuntu Logger Config

Ubuntu logger provides command-line syslog message sending:

bash
# Send message to local ubuntu syslog
logger "System maintenance started"

# Send to remote syslog server
logger -n 192.168.1.100 -P 514 "Remote log message"

# Ubuntu sys log with specific facility
logger -p local0.info "Application event"

Debian Setup

Debian syslog configuration follows similar patterns to Ubuntu:

bash
# View debian syslog
sudo tail -f /var/log/syslog

# Configure debian syslog forwarding
echo "*.* @@remote-server:514" >> /etc/rsyslog.conf

Forwarding Messages

Forward syslog configuration enables centralized log collection:

Reliable TCP Forwarding:

bash
*.* @@remote-server:514

# With connection queuing
$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

Secure Config

Secure syslog implementation protects log data in transit:

TLS Encryption (rsyslog):

bash
# Client secure syslog configuration
$DefaultNetstreamDriverCAFile /etc/ssl/ca.pem
$DefaultNetstreamDriverCertFile /etc/ssl/client-cert.pem
$DefaultNetstreamDriverKeyFile /etc/ssl/client-key.pem
$DefaultNetstreamDriver gtls
$ActionSendStreamDriverMode 1
$ActionSendStreamDriverAuthMode x509/name

*.* @@secure-server:6514

Syslog Examples & Use Cases

Example Messages

Understanding example syslog message formats helps with configuration:

Standard Format (RFC 3164):

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

Enhanced Format (RFC 5424):

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

Python Integration

Python syslog implementation enables application logging:

Basic Python Syslog:

python
import syslog
import logging
from logging.handlers import SysLogHandler

# Direct python syslog usage
syslog.openlog("myapp")
syslog.syslog(syslog.LOG_INFO, "Application started")
syslog.closelog()

# Python sysloghandler with logging module
logger = logging.getLogger('myapp')
handler = SysLogHandler(address=('localhost', 514))
formatter = logging.Formatter('%(name)s: %(levelname)s %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

Docker Integration

Docker syslog configuration enables container log collection:

Docker Container Syslog Setup:

json
{
  "log-driver": "syslog",
  "log-opts": {
    "syslog-address": "tcp://192.168.1.100:514",
    "syslog-facility": "local0",
    "tag": "{{.Name}}/{{.ID}}"
  }
}

Syslog Docker Container Configuration:

bash
docker run -d \
  --log-driver=syslog \
  --log-opt syslog-address=tcp://192.168.1.100:514 \
  --log-opt syslog-facility=local1 \
  --log-opt tag="webapp/{{.ID}}" \
  nginx:latest

Docker Syslog Server Setup:

yaml
version: '3.8'
services:
  syslog-server:
    image: rsyslog/rsyslog_base_ubuntu
    ports:
      - '514:514/udp'
    volumes:
      - ./logs:/var/log

Var Log Analysis

Understanding var log syslog structure helps with troubleshooting:

bash
# View current syslog
tail -f /var/log/syslog

# Search for specific events
grep "error" /var/log/syslog

# Linux view syslog with specific dates
grep "$(date '+%b %d')" /var/log/syslog

Linux Syslog View Commands:

bash
# Real-time syslog monitoring
journalctl -f

# View system logs
systemctl status rsyslog

# Check syslog configuration
rsyslogd -N1

Monitoring and Analysis Tools

Syslog Monitoring Solutions

Effective syslog monitoring requires proper tools and configuration:

SyslogWatcher - Real-time log monitoring tool Visual Syslog Server - Windows-based log viewer Uptrace - A distributed tracing and log management system that can ingest syslog for comprehensive observability. Good Syslog Server options include both commercial and open-source solutions

PRTG Integration

PRTG syslog monitoring enables network infrastructure log analysis through PRTG's monitoring platform.

Zabbix Integration

Zabbix syslog configuration allows log-based monitoring and alerting within the Zabbix ecosystem.

Best Practices for Syslog

Security Best Practices

Secure Syslog Implementation:

  • Use TLS encryption for log transmission
  • Implement client certificate authentication
  • Restrict syslog server access with firewall rules
  • Monitor for unauthorized access attempts
  • Use dedicated logging network segments

Performance Optimization

Syslog Server Performance:

  • Use TCP for reliable transmission
  • Implement log buffering and queuing
  • Monitor network bandwidth usage
  • Consider log compression for storage efficiency
  • Plan capacity for peak log volumes

Log Management

Effective Log Rotation:

bash
# /etc/logrotate.d/rsyslog
/var/log/syslog {
    daily
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 0640 syslog adm
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

FAQ

What is the difference between rsyslog and syslog-ng? Rsyslog is the default syslog daemon on most Linux distributions with simpler configuration, while syslog-ng offers more advanced filtering and processing capabilities with SQL-like syntax. For most users, rsyslog provides sufficient functionality.

How do I set up a free syslog server? The best free syslog server options include rsyslog (built into most Linux distributions), syslog-ng OSE, or Kiwi Syslog Server Free version. Ubuntu syslog server setup is particularly straightforward with rsyslog.

Can I use syslog with Windows servers? Yes, you can use tools like WinSyslog, NXLog, or configure Windows Event Log forwarding to send logs to syslog servers. Several free syslog server windows options are available.

What port does syslog use? Syslog traditionally uses UDP port 514, but can also use TCP port 514 for reliable transmission or custom ports for secure syslog connections with TLS encryption.

How do I view syslog on Linux? To linux view syslog, use commands like tail -f /var/log/syslog, journalctl -f, or less /var/log/syslog. The linux syslog view depends on your distribution and configuration.

What's the best syslog server for enterprise use? The best syslog server depends on requirements. For Linux environments, rsyslog or syslog-ng work well. For Windows, consider SolarWinds Kiwi Syslog Server. Cloud syslog server options provide scalability for large deployments.

How do I configure Docker syslog logging? Configure docker syslog by setting the log driver: --log-driver=syslog --log-opt syslog-address=tcp://server:514. This enables docker container syslog forwarding to your centralized server.

Can I integrate syslog with SIEM systems? Yes, most SIEM systems support syslog integration. Popular options include Splunk syslog, Graylog syslog, and Wazuh syslog integration for security monitoring and compliance.

Conclusion: Building Reliable Syslog Infrastructure

Effective syslog implementation requires careful planning, proper configuration, and ongoing maintenance. Whether you're setting up a simple Ubuntu syslog server or complex enterprise syslog infrastructure with SIEM integration, start with basic rsyslog configuration and gradually add advanced features.

Key success factors include choosing the right syslog server for your environment, implementing secure syslog transmission, and integrating with your existing monitoring tools. Focus on reliability, security, and scalability to build syslog infrastructure that grows with your organization's needs.

You may also be interested in: