Skip to main content
Migration Notice
We're migrating documentation from the old portal into this one. Some things may look a little different or out of place in the meantime — we know, and we're working to get it right. If something's unclear or doesn't look right, let us know.
Version: 4.4.0

Eyeglass Alarm Forwarding and Syslog Guide

Overview​

Alarms can be forwarded over syslog. This guide explains how to filter alarms by severity, application, or alarm code, and forward the matching alarms to a syslog server.

Scope note

For richer, field-level alarm integration (JSON payloads, SIEM/SOAR/ITSM tools), the Webhook alarm integration and the vendor-specific SIEM integrations under the Integration Guide are the recommended and better-supported path. Syslog forwarding has a lower data ceiling than webhooks — see Limitations below.

Limitations​

  • Syslog messages carry limited information compared to email or webhook alerts. This mechanism only provides the alarm type, source application, and severity — not full event detail.
  • Only the forwarding methods documented below are supported.

Deprecation Notice​

  • SNMP forwarding was deprecated as of release 2.5.8.1.
  • /var/log/messages is being deprecated as a log source for alarm forwarding. As of release 2.5.7, alarms are written to a dedicated log using syslog-ng.

Supported Alarms​

All Eyeglass alarms are documented in the Alarm Codes reference.

Requirements​

  • Eyeglass OVF version 2.5.8 or later, on openSUSE 15.1 or later.

Configure Syslog Forwarding​

Release 2.5.7 or later is required. Alarms are written to a dedicated log (/opt/superna/sca/logs/igls_alarms.log) that rolls over independently of the database-backed alarm history shown in the GUI.

  1. SSH to the appliance as admin, then elevate to root:

    sudo -s
  2. Edit the syslog-ng configuration:

    nano /etc/syslog-ng/conf.d/superna.conf
  3. Check your syslog-ng version, since the config file's @version line must match it:

    syslog-ng --version
  4. Add a filter, source, destination, and log block. Example — forward two specific Ransomware Defender alarm codes to a syslog server:

    @version: 3.29

    filter f_superna {
    message("RSW0002") or message("RSW0011") ;
    };

    source igls_src { file("/opt/superna/sca/logs/igls_alarms.log"); };

    destination logserver { udp("x.x.x.x" port(514)); };

    log {
    source(igls_src);
    filter(f_superna);
    destination(logserver);
    };

    Replace x.x.x.x with your syslog server's IP address, and @version with the value returned by syslog-ng --version.

  5. Restart the service for changes to take effect:

    systemctl restart syslog-ng
  6. Confirm it's running:

    systemctl status syslog-ng

    It should show an active/running state.

How to Filter and Forward Alarms​

Forward by Severity​

filter f_superna {
message("Severity:CRITICAL") or message("Severity:MAJOR") ;
};

The most precise option — forward only the exact alarm codes you need. See the Alarm Codes reference for the full list.

filter f_superna {
message("RSW0002") or message("RSW0011") ;
};

Filter by Application​

Each Eyeglass feature has an alarm-code prefix:

  • Ransomware Defender: RSW
  • Easy Auditor: EAU
  • DR: SCA

Forward Ransomware Defender lockout/restore alarms, excluding Security Guard test alarms (replace igls-sg with your configured Security Guard service account name):

filter f_superna {
(message("RSW0002") or message("RSW0011")) and not message("igls-sg") ;
};

Forward all Ransomware Defender and Easy Auditor alarms:

filter f_superna {
message("RSW") or message("EAU") ;
};

Forward all Ransomware Defender alarms except Security Guard alarms:

filter f_superna {
(message("RSW")) and not message("igls-sg");
};

Integrating Ransomware Defender Events with a SIEM​

Best Practice

Syslog and log-length limits mean not all data available in Ransomware Defender is captured this way. The Webhook alarm integration is the recommended integration path — it delivers a full JSON payload with field-level data for programmatic SIEM processing.

The syslog alarm raised when Ransomware Defender detects a user includes the user ID, IP address, and a subset of the affected files. This IP address can be used in a SIEM trigger to locate and disable the corresponding network port. Example:

[DEBUG] IGLS_ALARMS:168 - Eyeglass, , Event: 2021-02-26 19:28:23.916, AID:AD02\sgdemo, Port:Nil, Type:null, EntityType:, Extra Data:{"clientIps":"172.31.1.65","info":"Successfully locked out user AD02\\sgdemo"}, Description:Locked user access.172.31.1.65, NSA, Severity:CRITICAL, Impact:false, Category:RSW0002

Use the client IP and user fields to build a trigger in your SIEM to disable the port the affected host is connected to.

Finding Example Syslog Formats​

cat /opt/superna/sca/logs/igls_alarms.log

Syslog Message Format​

Eyeglass syslog messages are comma-separated with the following sections:

#SectionDescription
1[DEBUG] IGLS_ALARMS:168 - EyeglassAlways the same literal prefix
2(empty)Always blank
3Event: <value>Timestamp of the event
4AID:<value>Entity of the alarm — varies by alarm type (e.g. affected user for Ransomware Defender, source/target cluster + access zone for DR Zone Readiness)
5Port:NilAlways Nil
6Type:nullAlways null
7EntityType:Always blank
8Extra Data:{<value>}Alarm-type-specific detail — may include info, event severity, user, affected zone, affected cluster, detectors, number of affected files, status, start/finish times, job source, or a failover log URL
9Description: <value>Human-readable description, e.g. "Readiness job execution found warnings."
10NSAAlways NSA
11Severity:<value>Alarm severity
12Impact:falseAlways false
13Category:<value>Alarm code — see the Alarm Codes reference

Example: Ransomware Event​

[DEBUG] IGLS_ALARMS:168 - Eyeglass, , Event: 2023-04-27 01:39:11.445, AID:ADTEST1\tuser1, Port:Nil, Type:null, EntityType:, Extra Data: {"clientIps":"172.25.22.21","event severity":"WARNING","user name":"ADTEST1\\tuser1","affected zone":"System","affected Isilon clusters":["dg-isi34"],"detectors":"THREAT_DETECTOR_03","number of affected files":"60","info":"Lockout required."}, Description:Ransomware event received. Event severity: WARNING, user: ADTEST1\tuser1172.25.22.21, NSA, Severity:CRITICAL, Impact:false, Category:RSW0001

Example: DR Failover​

[DEBUG] IGLS_ALARMS:168 - Eyeglass, , Event: 2023-04-27 22:44:34.25, AID:DFS Policy Failover 2023-04-27_22-40-01, Port:Nil, Type:null, EntityType:, Extra Data: {"Status":"Success","Finished":1682649874241,"Started":1682649601989,"URL":"https://172.25.22.42/failover_logs/DFS_Failover__dg-isi34__2023-04-27_22-40-01__SUCCESS/DFS_Failover__dg-isi34__2023-04-27_22-40-01__SUCCESS.html"}, Description:Failover Succeeded, NSA, Severity:INFORMATIONAL, Impact:false, Category:SCA0040

Example: Easy Auditor​

[DEBUG] IGLS_ALARMS:168 - Eyeglass, , Event: 2023-04-27 23:21:42.879, AID:auditreport1, Port:Nil, Type:null, EntityType:, Extra Data: {"info":[{"Search type:":"MANUAL"},{"Query name:":"auditreport1"},{"Number of records:":0}]}, Description:Easy Auditor Report job succeeded., NSA, Severity:INFORMATIONAL, Impact:false, Category:EAU0006

Troubleshooting Syslog Forwarding​

  1. Enable verbose logging:
    syslog-ng-ctl verbose --set=on
  2. Check forwarding statistics for the destination label used in your config (logserver in the examples above):
    syslog-ng-ctl stats | grep logserver
    If the counters are zero or not incrementing, nothing has matched your filter.
  3. Reset the stats to re-test:
    syslog-ng-ctl stats --reset

Packet Capture for Syslog Messages​

  1. Log in as admin, then elevate to root:
    sudo -s
  2. Monitor UDP traffic to your syslog server (replace x.x.x.x with its IP address):
    tcpdump -nnAs0 -i eth0 udp port 514 -v | grep -A 2 "x.x.x.x"
    This produces no output until a matching alarm is forwarded — leave it running.
  3. In a second SSH session, trigger a test alarm:
    igls test AlarmTest
    note

    The random test alarm may not match your configured filter — adjust your filter to match on severity (see the examples above) if needed.

  4. Repeat the test and check the stats counter until you see a packet appear in the first session, then verify the message arrives on your actual syslog server.