SNMP Support
DataCore SANsymphony software allows SNMP (Simple Network Management Protocol) compliant tools to access internal DataCore SANsymphony monitor data and receive trap notifications from DataCore Servers whenever a monitor changes state. Monitors provide basic health information about resources managed by DataCore 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, DataCore 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. DataCore 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
DataCore SANsymphony system. A SANsymphony-V monitor is a software object
that monitors a particular aspect of a target object in the DataCore 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 DataCore 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
DataCore 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 DataCore 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 DataCore SANsymphony
monitor occurs."
::= 1
END