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
- 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 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
Example Trap Output
Traps are sent from the server in control of the server group at the time of an event.
Trap data:
snmputil:
        trap
          generic=6
          specific=1
          enterprise=.iso.org.dod.internet.private.enterprises.7652.2
          Variable = .iso.org.dod.internet.private.enterprises.7652.1.1.1.1.32.55.70.68.65.54.53.49.57.52.69.52.56.54.49.65.48.66.50.65.56.49.48.66.69.69.66.70.66.49.66.50.51
          Value    = String 7FDA65194E4861A0B2A810BEEBFB1B23
          Variable = .iso.org.dod.internet.private.enterprises.7652.1.1.1.2.32.55.70.68.65.54.53.49.57.52.69.52.56.54.49.65.48.66.50.65.56.49.48.66.69.69.66.70.66.49.66.50.51
          Value    = String LogicalDiskDataStatusMonitor59d0ba06-d9d7-473f-8e11-7157f49d3d52
          Variable = .iso.org.dod.internet.private.enterprises.7652.1.1.1.3.32.55.70.68.65.54.53.49.57.52.69.52.56.54.49.65.48.66.50.65.56.49.48.66.69.69.66.70.66.49.66.50.51
          Value    = String 59d0ba06-d9d7-473f-8e11-7157f49d3d52
          Variable = .iso.org.dod.internet.private.enterprises.7652.1.1.1.4.32.55.70.68.65.54.53.49.57.52.69.52.56.54.49.65.48.66.50.65.56.49.48.66.69.69.66.70.66.49.66.50.51
          Value    = String Virtual disk 2 on RC301
          Variable = .iso.org.dod.internet.private.enterprises.7652.1.1.1.5.32.55.70.68.65.54.53.49.57.52.69.52.56.54.49.65.48.66.50.65.56.49.48.66.69.69.66.70.66.49.66.50.51
          Value    = String Healthy
          Variable = .iso.org.dod.internet.private.enterprises.7652.1.1.1.6.32.55.70.68.65.54.53.49.57.52.69.52.56.54.49.65.48.66.50.65.56.49.48.66.69.69.66.70.66.49.66.50.51
          Value    = String Up to date
          Variable = .iso.org.dod.internet.private.enterprises.7652.1.1.1.7.32.55.70.68.65.54.53.49.57.52.69.52.56.54.49.65.48.66.50.65.56.49.48.66.69.69.66.70.66.49.66.50.51
          Value    = String Monitors the data status of virtual disk sources.
                                        DCSW-SSV-MONITOR-MIB FILE
DCSW-SSV-MONITOR-MIB DEFINITIONS 
 ::= BEGIN
        IMPORTS
            enterprises
                FROM RFC1155-SMI
            OBJECT-TYPE
                FROM RFC-1212
            TRAP-TYPE
                FROM RFC-1215
            DisplayString
                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
                DESCRIPTION
                    "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
                DESCRIPTION
                    "An entry in the monitorTable, corresponding to an individual monitor.
                INDEX { monitorHashId }
                ::= { monitorTable 1 }
                MonitorEntry::=
                    SEQUENCE {
                        monitorHashId
                            DisplayString,
                        monitorId
                            DisplayString,
                        monitorTargetId
                            DisplayString,
                        monitorTargetCaption
                            DisplayString,
                        monitorState
                            DisplayString,
                        monitorStateMessage
                            DisplayString,
                        monitorDesc
                            DisplayString
                    }
            monitorHashId OBJECT-TYPE
                SYNTAX DisplayString (SIZE (32))
                ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                    "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
                DESCRIPTION
                    "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
                DESCRIPTION
                    "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
                DESCRIPTION
                    "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
                DESCRIPTION
                    "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
                DESCRIPTION
                    "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
                    available'."
                ::= { monitorEntry 6 }
            monitorDesc OBJECT-TYPE
                SYNTAX DisplayString
                ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                    "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
        END