OPNsense Syslog Configuration

This role configures OPNsense firewall to forward system logs to a remote Graylog server via the REST API.

Overview

This role configures OPNsense firewall to forward system logs to a remote Graylog server via the REST API. It manages syslog destinations using an idempotent approach: searching for existing configurations, creating new destinations if needed, or updating existing ones. The role applies configuration changes to activate log forwarding immediately.

What This Role Does

  1. Search for existing syslog destination:

    • Calls API: /api/syslog/settings/searchDestinations
    • Filters by: Server IP and port
    • Determines: Create new or update existing
  2. If no existing destination found:

    • Creates new destination via /api/syslog/settings/addDestination
    • Configures: IP, port, transport, log levels
  3. If existing destination found:

    • Updates destination via /api/syslog/settings/setDestination/{uuid}
    • Ensures: Configuration matches desired state
  4. Apply configuration:

    • Reconfigures service via /api/syslog/service/reconfigure
    • Activates changes immediately
    • Starts forwarding logs to Graylog

Role Variables

VariableDescription
vault_opnsense_bjoffrey_user_api_keyOPNsense API key (from vault)
vault_opnsense_bjoffrey_user_api_secretOPNsense API secret (from vault)
opnsense_syslog_configuration_firewall_hostOPNsense firewall hostname or IP
opnsense_syslog_configuration_api_protocolAPI protocol (https)
opnsense_syslog_configuration_server_ipGraylog server IP
opnsense_syslog_configuration_server_portSyslog port
opnsense_syslog_configuration_transportTransport (udp4, tcp4, tls4, tls6)
opnsense_syslog_configuration_rfc5424Enable RFC5424 syslog format (0 or 1)
opnsense_syslog_configuration_levelsLog severity levels to forward (comma-separated)
opnsense_syslog_configuration_facilityFacility filter (empty = all facilities)
opnsense_syslog_configuration_programProgram filter (empty = all programs)
opnsense_syslog_configuration_certificateTLS certificate ID (for tls4/tls6 transport)
opnsense_syslog_configuration_descriptionDestination description label
opnsense_syslog_configuration_enabledEnable the syslog destination (0 or 1)
opnsense_syslog_configuration_validate_certsValidate SSL certificates

Notes

  • Configuration is applied immediately via the OPNsense syslog reconfigure API
  • Use tcp4 transport for guaranteed log delivery (UDP may lose packets under load)
  • Configure a matching syslog UDP/TCP input in Graylog before enabling forwarding