SNMP Support

SANsymphony software allows SNMP (Simple Network Management Protocol) compliant tools to access internal SANsymphony monitor data and receive trap notifications from DataCore Servers whenever a monitor changes state. Monitors provide basic health information about resources managed by SANsymphony software. (These monitors are also used in the System Health tool.)

All instantiated monitors can be retrieved as an indexed list via the SNMP operations get and getnext. Additionally, SANsymphony software can be configured to send SNMP Version 1 trap messages to one or more trap receivers. These traps contain the following data: monitorHashId,

SNMP Support is installed as part of the Server component. SANsymphony software supports SNMP Versions 1 and 2.

In this topic:

Configuring SNMP support

Example monitor table output

Example trap data

MIB file

Configuring SNMP Support

  • The DataCore SNMP Agent Service (DcsSNMP) is set to manual startup type by default, which means that it must be manually started or changed to automatic in Windows Services. This is required for each DataCore Server in the server group.
  • The DataCore SNMP Agent Service must be installed and running in order for the DataCore SNMP Agent Service to make data available to SNMP clients.
  • The community is not set by default. The community must be known to SNMP tools or the service will not respond. The community string can be changed by editing the SNMP Service Properties dialog box available with the Microsoft Windows SNMP Service feature. Refer to Microsoft documentation for additional information about configuring this service.
    • Note: The Microsoft Windows SNMP Service feature is not installed by default. If it does not exist, the SNMP Service can be added from Add Roles and Features Wizard in the Windows operating system.
    • The Microsoft Windows SNMP Service must be restarted after making changes to the Security tab. The DataCore SNMP Agent Service need not be restarted.

Trap Destinations

Trap destinations are configured by editing the Windows SNMP Service Properties dialog. Refer to Microsoft documentation for additional information about configuring this service. The Microsoft SNMP Service must be restarted after making changes to the Security tab. The DataCore SNMP Agent Service need not be restarted.

MIB File

Some SNMP compliant tools require that the DCSW-SSV-MONITOR.MIB file be loaded into the tool. The MIB file is stored in the installation folder (default location C:\Program Files\DataCore\SANsymphony).

Example Monitor Table Output

Newly created monitors will display the state as Undefined until the state is updated.

Example row of the monitor table:

Object ID Object Value








Virtual disk 2 on RC301




Up to date


Monitors the data status of virtual disk sources.

Example Trap Output

Traps are sent from the server in control of the server group at the time of an event.

Trap data:

  Variable =
  Value    = String 7FDA65194E4861A0B2A810BEEBFB1B23
  Variable =
  Value    = String LogicalDiskDataStatusMonitor59d0ba06-d9d7-473f-8e11-7157f49d3d52
  Variable =
  Value    = String 59d0ba06-d9d7-473f-8e11-7157f49d3d52
  Variable =
  Value    = String Virtual disk 2 on RC301
  Variable =
  Value    = String Healthy
  Variable =
  Value    = String Up to date
  Variable =
  Value    = String Monitors the data status of virtual disk sources.


        FROM RFC1155-SMI
        FROM RFC-1212
        FROM RFC-1215
        FROM RFC1213-MIB;
    datacore OBJECT IDENTIFIER ::= { enterprises 7652 }
    objects     OBJECT IDENTIFIER ::= { datacore 1 }
    traps       OBJECT IDENTIFIER ::= { datacore 2 }
   -- a multi-row table describing the monitors
    monitorTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MonitorEntry
        ACCESS not-accessible
        STATUS mandatory
            "The monitor table contains information about all monitors in the
            SANsymphony system.  A SANsymphony-V monitor is a software object
            that monitors a particular aspect of a target object in the SANsymphony configuration; for
            example, there are several monitors associated with a given virtual disk.
            By polling the monitorTable, an application can learn detailed status
            of the health of the SANsymphony configuration."
        ::= { objects 1 }
    monitorEntry OBJECT-TYPE
        SYNTAX MonitorEntry
        ACCESS not-accessible
        STATUS mandatory
            "An entry in the monitorTable, corresponding to an individual monitor.
        INDEX { monitorHashId }
        ::= { monitorTable 1 }
            SEQUENCE {
    monitorHashId OBJECT-TYPE
        SYNTAX DisplayString (SIZE (32))
        ACCESS read-only
        STATUS mandatory
            "The monitorHashId is a fixed-width hash of
            unique and persistent index of the monitorTable.
        ::= { monitorEntry 1 }
    monitorId OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-only
        STATUS mandatory
            "The monitorId is the unique and persistent identifier of this particular
            instance of the monitorTable. There is only one row of the
            with a given monitorId. Contrast with
        ::= { monitorEntry 2 }
    monitorTargetId OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-only
        STATUS mandatory
            "The monitorTargetId is the unique and persistent identifier of the
            SANsymphony configuration object with which this particular instance of
            the monitorTable is associated. For example, this would be the ID of a
            particular virtual disk in the SANsymphony configuration.  There may
            be many rows in the monitorTable sharing the same
            multiple different aspects of a given target object can be monitored.
            Contrast with monitorId above.
        ::= { monitorEntry 3 }
    monitorTargetCaption OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-only
        STATUS mandatory
            "The monitorTargetCaption describes the target object of the monitor.
            It is usually based on the user-supplied name of the object.  For example,
            this would contain the virtual disk name, or the pool name, or the server
            name, etc."
        ::= { monitorEntry 4 }
    monitorState OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-only
        STATUS mandatory
            "The monitorState provides one of several values which indicates the
            current general state of the monitor itself.  That is, monitorState
            indicates the state of a particular aspect of the associated target
            object.  Possible values are: Healthy, Attention, Warning, Critical."
        ::= { monitorEntry 5 }
    monitorStateMessage OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-only
        STATUS mandatory
            "The monitorStateMessage describes in plain language the specific reason
            for the monitor state.  The reasons vary with each type of target object.
            For example, this might read 'Available space > 30%', or 'AC line power
        ::= { monitorEntry 6 }
    monitorDesc OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-only
        STATUS mandatory
            "The monitorDesc describes in general what aspect of the associated
            configuration object the monitor is monitoring.  For example, this might
            read 'Monitors the disk pools available space percentage' or 'Monitors
            the battery power state for DataCore Servers'."
        ::= { monitorEntry 7 }
   -- trap definitions
     trapMonitorEvent TRAP-TYPE
        ENTERPRISE  traps
        VARIABLES { monitorHashId, monitorId, monitorTargetId, monitorTargetCaption, monitorState, monitorStateMessage, monitorDesc }
        DESCRIPTION "Trap sent when an update to a SANsymphony monitor occurs."
        ::= 1