NetApp Storage Monitor
Introduction
The NetApp Storage Monitoring O11ySource enables real-time collection of storage metrics from CIM/WBEM-compliant systems, providing comprehensive visibility into controllers, aggregates, volumes, disks, and protocols. It captures key metrics such as IOPS, latency, throughput, capacity utilization, and hardware health to support proactive performance management and early fault detection.
Getting Started
Compatibility
This O11ySource supports monitoring of storage systems that implement the SMI-S (Storage Management Initiative Specification) standard, including:
• NetApp FAS 8300 • NetApp AFF C800 • NetApp ONTAP version 9.16.1P10 • Storage environments using NFS, CIFS, and SAN protocols • OpenPegasus CIMOM, for testing and development • Other SMI-S compliant storage arrays
Data Collection Method
This data collection component uses the WBEM protocol over HTTP/HTTPS to gather storage-related information. It:
- Connects to the CIMOM server at configured intervals
- Enumerates CIM class instances from default namespace
- Default namespace queried: root/cimv2
- Default CIM classes queried: CIM_StoragePool, CIM_DiskDrive, CIM_StorageVolume, CIM_StorageSystem, CIM_StorageExtent, CIM_BlockStorageStatisticalData, CIM_ProtocolController, CIM_StorageHardwareID, CIM_AlertIndication, CIM_NetworkPort, ONTAP_Controller, ONTAP_Snapshot, ONTAP_StoragePoolPerformance, ONTAP_Aggregate, ONTAP_RAIDGroup
- Extracts properties from each instance (capacity, performance metrics, identifiers, etc.)
- Supports parallel collection of multiple classes for efficient data gathering
Prerequisites
Dependent Configuration
To configure this O11ySource, create a 'credential' of type 'user' under the 'Definition' tab.
Inputs for Configuring Data Source
- Endpoint: Add the IP Address or FQDN
- Endpoint URL: Add the endpoint URL for the Storage Array
- Resource Path: The resource path, eg : /ecomconfig, /cimom
- Polling Interval (in seconds): Time interval for polling data from the Storage Array endpoint 300 seconds – 3000 seconds.
- Authentication Method: Select the Authentication Method
- Credential: Credentials to access the storage Array endpoint
Applications
Firewall Requirement
To collect data from this O11ySource, ensure the following ports are opened:
| Source IP | Destination IP | Destination Port | Protocol | Direction |
|---|---|---|---|---|
| vuSmartMaps IP | Storage System endpoint | 5988 (HTTP), 5989 (HTTPS) | TCP | Outbound |
*Before providing the firewall requirements, please update the port based on the customer environment.
Configuring the Target
Before configuring the O11ysource, ensure that:
- The NetApp server is running and accessible on the storage system
- Network connectivity exists between the vuSmartMaps Cluster and the storage system's CIMOM port
- If the endpoint is authenticated, make sure valid credentials are available
- The required CIM classes exist in the default namespace root/cimv2 on the storage system
Configuration Steps
Metrics Collected
| Name | Description | Data Type |
|---|---|---|
| @timestamp | Original event timestamp as a string (raw ingestion time). | String |
| timestamp | Parsed event timestamp with millisecond precision for querying and analytics. | DateTime64(3) |
| DeviceID | Unique identifier of the storage device. | LowCardinality(String) |
| InstanceID | Unique identifier for a specific instance of a CIM object. | LowCardinality(String) |
| ElementName | Human-readable name of the storage component (e.g., volume, disk). | LowCardinality(String) |
| PoolID | Identifier of the storage pool or aggregate. | LowCardinality(String) |
| VolumeID | Unique identifier of the storage volume. | LowCardinality(String) |
| SystemName | Name of the storage system or cluster. | LowCardinality(String) |
| AggregateID | Identifier of the aggregate within the storage system. | LowCardinality(String) |
| cim_class | CIM class representing the type of storage entity. | LowCardinality(String) |
| device_type | Type or category of the storage device. | LowCardinality(String) |
| host | Hostname of the system where data is collected or associated. | LowCardinality(String) |
| target | Target IP or identifier of the monitored device. | LowCardinality(String) |
| endpoint | CIM/WBEM endpoint URL used for data collection. | String |
| namespace | CIM namespace used for querying the storage data. | LowCardinality(String) |
| kafka_topic | Kafka topic to which the metric/event is published. | LowCardinality(String) |
| name | Name of the data collector or input plugin. | LowCardinality(String) |
| BlockSize | Size of each block in bytes. | UInt64 |
| ConsumableBlocks | Number of blocks available for consumption. | UInt64 |
| UsedBytes | Total bytes currently used in the storage entity. | UInt64 |
| RemainingManagedSpace | Available space remaining under management. | UInt64 |
| TotalManagedSpace | Total storage capacity managed by the system. | UInt64 |
| NumberOfBlocks | Total number of blocks in the storage entity. | UInt64 |
| MaxMediaSize | Maximum capacity supported by the storage media. | UInt64 |
| ConsumedSpace | Total consumed storage space. | UInt64 |
| PercentSpace | Percentage of storage space utilized. | Float64 |
| ReadLatencyUS | Average read latency in microseconds. | Float64 |
| WriteLatencyUS | Average write latency in microseconds. | Float64 |
| AvgResponseTimeUS | Average response time for I/O operations. | Float64 |
| LatencyUS | Overall I/O latency in microseconds. | Float64 |
| ReadIOs | Total number of read I/O operations. | UInt64 |
| WriteIOs | Total number of write I/O operations. | UInt64 |
| DiskIOPS | Total disk I/O operations per second. | Float64 |
| DiskLatencyUS | Disk-level latency in microseconds. | Float64 |
| ReadIOPS | Read operations per second. | Float64 |
| WriteIOPS | Write operations per second. | Float64 |
| TotalIOPS | Total I/O operations per second. | Float64 |
| ThroughputKBps | Data throughput in KB per second. | Float64 |
| KBytesRead | Total KB read from storage. | UInt64 |
| KBytesWritten | Total KB written to storage. | UInt64 |
| QueueDepth | Number of I/O requests waiting in the queue. | Float64 |
| IOTimeCounter | Cumulative time spent in I/O operations. | UInt64 |
| QosLimitIOPS | Configured QoS limit for IOPS. | Float64 |
| CacheHitRatioPct | Percentage of reads served from cache. | UInt64 |
| HealthState | Overall health status of the component. | LowCardinality(String) |
| State | Current operational state. | LowCardinality(String) |
| FailoverStatus | Status of failover configuration. | LowCardinality(String) |
| HAState | High availability state. | LowCardinality(String) |
| RebuildStatus | Status of rebuild operations. | LowCardinality(String) |
| ReconstructInProgress | Indicates if reconstruction is in progress. | LowCardinality(String) |
| DiskFailureIndicators | Indicator for disk failure conditions. | UInt32 |
| FailedDiskCount | Number of failed disks. | UInt32 |
| CPUUtilizationPct | CPU utilization percentage. | Float64 |
| MemoryUtilizationPct | Memory utilization percentage. | Float64 |
| NVRAMStatus | Status of NVRAM. | LowCardinality(String) |
| NVRAMBatteryStatus | Status of NVRAM battery. | LowCardinality(String) |
| BandwidthMBps | Bandwidth in MB per second. | Float64 |
| InterfaceUtilizationPct | Network interface utilization. | Float64 |
| ErrorPackets | Number of erroneous packets. | UInt64 |
| Speed | Current interface speed. | UInt64 |
| MaxSpeed | Maximum supported interface speed. | UInt64 |
| LinkTechnology | Type of link technology. | LowCardinality(String) |
| Protocol | Storage or network protocol used. | LowCardinality(String) |
| StorageID | Identifier of the storage resource. | String |
| IDType | Type of identifier. | LowCardinality(String) |
| AlertType | Type of alert. | LowCardinality(String) |
| Description | Description of the event. | String |
| EventID | Unique identifier of the event. | LowCardinality(String) |
| IndicationIdentifier | Identifier for CIM event. | LowCardinality(String) |
| PerceivedSeverity | Severity level of the event. | LowCardinality(String) |
| ProbableCause | Likely cause of the issue. | LowCardinality(String) |
| SnapshotAgeHours | Age of snapshot in hours. | Float64 |
| DiskType | Type of disk. | LowCardinality(String) |
