Configure the Cisco OS receiver to collect Cisco Nexus metrics

Collect Cisco Nexus metrics with the Collector for Kubernetes.

Cisco AI PODs are integrated with Cisco Nexus data center switches. You can collect Cisco Nexus metrics using the Cisco OS receiver, which exports metrics from Cisco devices through an SSH connection.

To use the Cisco OS receiver to collect Cisco Nexus metrics, you must meet the following requirements.

  1. To activate the Cisco OS receiver for Cisco Nexus manually in the Collector configuration, make the following changes to your values.yaml configuration file.
    1. Add cisco_os to the clusterReceiver/receivers section and specify one or more switches under devices. You can use a single Cisco OS receiver to monitor multiple switches. You can authenticate your Cisco Nexus switches using your username and password, or your username and SSH key file for a more secure approach.
      Note: Add the cisco_os receiver to the clusterReceiver portion of the configuration to ensure that the receivers run on a single OpenShift node, rather than running on every node and generating duplicate data.

      The following examples show configuration files for the two authentication methods.

      Username and password
      YAML
      clusterReceiver:
        ...
        config:
          receivers:
            cisco_os:
              collection_interval: 60s
              timeout: 30s
              devices:
                - name: "core-switch-01"
                  host: "<IP Address>"
                  port: 22
                  auth:
                    username: "<username>"
                    password: "<password>"
                - name: "core-switch-02"
                  host: "<IP Address>"
                  port: 22
                  auth:
                    username: "<username>"
                    password: "<password>"
              scrapers:
                system:
                  metrics:
                    cisco.device.up:
                      enabled: true
                    system.cpu.utilization:
                      enabled: true
                    system.memory.utilization:
                      enabled: true
                interfaces:
                  metrics:
                    system.network.io:
                      enabled: true
                    system.network.errors:
                      enabled: true
                    system.network.packet.dropped:
                      enabled: true
                    system.network.packet.count:
                      enabled: true
                    system.network.interface.status:
                      enabled: true
      Username and SSH key file
      YAML
      clusterReceiver:
        ...
        config:
          receivers:
            cisco_os:
              collection_interval: 60s
              timeout: 30s
              devices:
                - name: "core-switch-01"
                  host: "<IP Address>"
                  port: 22
                  auth:
                    username: "<username>"
                    key_file: "/home/user/.ssh/id_rsa"
                - name: "core-switch-02"
                  host: "<IP Address>"
                  port: 22
                  auth:
                    username: "<username>"
                    key_file: "/home/user/.ssh/id_rsa"
              scrapers:
                system:
                  metrics:
                    cisco.device.up:
                      enabled: true
                    system.cpu.utilization:
                      enabled: true
                    system.memory.utilization:
                      enabled: true
                interfaces:
                  metrics:
                    system.network.io:
                      enabled: true
                    system.network.errors:
                      enabled: true
                    system.network.packet.dropped:
                      enabled: true
                    system.network.packet.count:
                      enabled: true
                    system.network.interface.status:
                      enabled: true
    2. Add the cisco_os receiver to the metrics/cisco-os-metrics pipeline of the service section. For example:
      YAML
      service:
        pipelines:
          metrics/cisco-os-metrics:
            exporters:
              - signalfx
            processors:
              - memory_limiter
              - batch
              - resourcedetection
              - resource
            receivers:
              - cisco_os
  2. If you previously added the prometheus/nexus receiver to your values.yaml file, remove it.
  3. Use Helm to apply the configuration changes:
    CODE
    helm upgrade ucs-otel-collector \ 
    --set="clusterName=$CLUSTER_NAME" \ 
    --set="environment=$ENVIRONMENT_NAME" \ 
    --set="splunkObservability.accessToken=$SPLUNK_ACCESS_TOKEN" \ 
    --set="splunkObservability.realm=$SPLUNK_REALM" \ 
    --set="splunkPlatform.endpoint=$SPLUNK_HEC_URL" \ 
    --set="splunkPlatform.token=$SPLUNK_HEC_TOKEN" \ 
    --set="splunkPlatform.index=$SPLUNK_INDEX" \ 
    -n otel \ 
    -f ./base-otel-collector-config/values.yaml \ 
    splunk-otel-collector-chart/splunk-otel-collector

Configuration settings

Configure scrapers

The Cisco OS receiver supports two types of scrapers, system and interfaces, which collect different metrics. For the list of metrics collected by each scraper, see Metrics.

To activate or deactivate a specific scraper for the Cisco OS receiver, update the scrapers section of the values.yaml configuration file and enable at least one metric. For example:

YAML
scrapers: 
  system: 
    metrics: 
      cisco.device.up: 
        enabled: true

Configure metric collection

To configure which metrics are collected by the Cisco OS receiver, update the metrics section of the values.yaml configuration file to enable specific metrics. For example:
YAML
scrapers: 
  system: 
    metrics: 
      cisco.device.up: 
        enabled: true 
      system.cpu.utilization: 
        enabled: true 
      system.memory.utilization: 
        enabled: true 
  interfaces: 
    metrics: 
      system.network.io: 
        enabled: true 
      system.network.errors: 
        enabled: true 
      system.network.packet.dropped: 
        enabled: true 
      system.network.packet.count: 
        enabled: true 
      system.network.interface.status: 
        enabled: true

For more information on these metrics, see Metrics.

Metrics

The following metrics are available for Cisco Nexus switches.

These metrics are considered custom metrics in Splunk Observability Cloud.

Metric name Unit Description Attributes Scraper
cisco.device.up Binary Device availability (1 = up, 0 = down). None system
system.cpu.utilization Percent Percentage of CPU time in use. None system
system.memory.utilization Percent Percentage of memory bytes in use. None system
system.network.errors Count The number of errors encountered. network.io.direction interfaces
system.network.interface.status Binary Interface operational status (1 = up, 0 = down). None interfaces
system.network.io Bytes The number of bytes transmitted and received. network.io.direction interfaces
system.network.packet.count Count The number of packets transmitted or received, categorized by type. network.packet.type interfaces
system.network.packet.dropped Count The number of packets dropped. network.io.direction interfaces

Attributes

The following resource attributes are available for Cisco Nexus switches.
Resource attribute name Type Description
host.ip string The IP address of the Cisco network device.
hw.type string The type of physical hardware component.
os.name string The operating system type of the Cisco device.
The following attributes are available for Cisco Nexus metrics.
Metric attribute Type Description
network.io.direction string The network IO direction. Possible values: receive, transmit.
network.packet.type string The network packet type. Possible values: multicast, broadcast.