SNMP Support

SANsymphony software allows SNMP 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, monitorId, monitorTargetId, monitorTargetCaption, monitorState, monitorStateMessage, and monitorDesc.  The monitor table and trap definitions are described in the DCSW-SSV-MONITOR.MIB file.

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

 IMPORTANT:

o           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.

o           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.

o           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

monitorHashId.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

7FDA65194E4861A0B2A810BEEBFB1B23

monitorId.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

LogicalDiskDataStatusMonitor<59d0ba06-d9d7-473f-8e11-7157f49d3d52>

monitorTargetId.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

59d0ba06-d9d7-473f-8e11-7157f49d3d52

monitorTargetCaption.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

Virtual disk 2 on RC301

monitorState.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

Healthy

monitorStateMessage.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

Up to date

monitorDesc.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

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:

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 LogicalDiskDataStatusMonitor<59d0ba06-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 monitorId.  This is the

            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 monitorTable

            with a given monitorId.  Contrast with monitorTargetId below."

        ::= { 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 monitorTargetId, since

            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