# Cisco UCS Manager SNMP ## Overview For Zabbix version: 6.2 and higher Cisco UCS® Manager provides unified, embedded management of all software and hardware components of the Cisco Unified Computing System™ (Cisco UCS) across multiple chassis and rack servers. It enables server, fabric, and storage provisioning as well as, device discovery, inventory, configuration, diagnostics, monitoring, fault detection, auditing, and statistics collection. This is a template for Cisco UCS Manager monitoring via Zabbix SNMP Agent that works without any external scripts. You can download UCS MIB files there ftp://ftp.cisco.com/pub/mibs/ucs-mibs/. ## Setup > See [Zabbix template operation](https://www.zabbix.com/documentation/6.2/manual/config/templates_out_of_the_box/network_devices) for basic instructions. 1\. Create a host for Cisco USC Manager IP as SNMPv2 interface. 2\. Link the template to the host. 3\. Customize macro values if needed. ## Zabbix configuration No specific Zabbix configuration is required. ### Macros used |Name|Description|Default| |----|-----------|-------| |{$DISK.ARRAY.CACHE.BATTERY.STATUS.CRIT} |

The cache battery critical state for trigger expression.

|`2` | |{$DISK.ARRAY.CACHE.BATTERY.STATUS.OK} |

The cache battery normal state for trigger expression.

|`1` | |{$DISK.ARRAY.STATUS.CRIT:"inoperable"} |

The array controller critical state for trigger expression.

|`2` | |{$DISK.ARRAY.STATUS.OK:"operable"} |

The array controller normal state for trigger expression.

|`1` | |{$DISK.ARRAY.STATUS.WARN:"degraded"} |

The array controller warning state for trigger expression.

|`3` | |{$DISK.STATUS.CRIT:"bad"} |

The disk critical state for trigger expression.

|`16` | |{$DISK.STATUS.CRIT:"predictiveFailure"} |

The disk critical state for trigger expression.

|`11` | |{$DISK.STATUS.FAIL:"failed"} |

The disk fail state for trigger expression.

|`9` | |{$FAN.STATUS.CRIT:"inoperable"} |

The critical value of the FAN sensor for trigger expression.

|`2` | |{$FAN.STATUS.WARN:"degraded"} |

The warning value of the FAN sensor for trigger expression.

|`3` | |{$HEALTH.STATUS.CRIT:"computeFailed"} |

The unit health critical state for trigger expression.

|`30` | |{$HEALTH.STATUS.CRIT:"configFailure"} |

The unit health critical state for trigger expression.

|`33` | |{$HEALTH.STATUS.CRIT:"inoperable"} |

The unit health critical state for trigger expression.

|`60` | |{$HEALTH.STATUS.CRIT:"unconfigFailure"} |

The unit health critical state for trigger expression.

|`34` | |{$HEALTH.STATUS.WARN:"diagnosticsFailed"} |

The unit health warning state for trigger expression.

|`204` | |{$HEALTH.STATUS.WARN:"powerProblem"} |

The unit health warning state for trigger expression.

|`62` | |{$HEALTH.STATUS.WARN:"testFailed"} |

The unit health warning state for trigger expression.

|`35` | |{$HEALTH.STATUS.WARN:"thermalProblem"} |

The unit health warning state for trigger expression.

|`60` | |{$HEALTH.STATUS.WARN:"voltageProblem"} |

The unit health warning state for trigger expression.

|`62` | |{$IF.ERRORS.WARN} |

-

|`2` | |{$IFCONTROL} |

-

|`1` | |{$NET.IFADMINSTATUS.MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level. Ignore notPresent(6) by default.

|`^.*` | |{$NET.IFADMINSTATUS.NOT_MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level. Ignore down(2) administrative status by default.

|`^2$` | |{$NET.IFALIAS.MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level.

|`.*` | |{$NET.IFALIAS.NOT_MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level.

|`CHANGE_IF_NEEDED` | |{$NET.IFDESCR.MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level.

|`.*` | |{$NET.IFDESCR.NOT_MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level.

|`CHANGE_IF_NEEDED` | |{$NET.IFNAME.MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level.

|`^.*$` | |{$NET.IFNAME.NOT_MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level. Filter out loopbacks, sup-fc0, nulls, docker veth links and docker0 bridge by default.

|`(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9a-z]+$|docker[0-9]+|br-[a-z0-9]{12}|sup-fc0)` | |{$NET.IFOPERSTATUS.MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level.

|`^.*$` | |{$NET.IFOPERSTATUS.NOT_MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level. Ignore notPresent(6) by default.

|`^6$` | |{$NET.IFTYPE.MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level.

|`.*` | |{$NET.IFTYPE.NOT_MATCHES} |

This macro is used in network interface discovery. Can be overridden on the host level.

|`CHANGE_IF_NEEDED` | |{$PSU.STATUS.CRIT:"inoperable"} |

The critical value of the PSU sensor for trigger expression.

|`2` | |{$PSU.STATUS.WARN:"degraded"} |

The warning value of the PSU sensor for trigger expression.

|`3` | |{$SNMP.TIMEOUT} |

The time interval for SNMP agent availability trigger expression.

|`5m` | |{$TEMP.MAX.CRIT:"Ambient"} |

The temperature maximum critical value for trigger expression.

|`35` | |{$TEMP.MAX.WARN:"Ambient"} |

The temperature maximum warning value for trigger expression.

|`30` | |{$VDISK.STATUS.OK:"equipped"} |

The vdisk normal state for trigger expression.

|`10` | ## Template links There are no template links in this template. ## Discovery rules |Name|Description|Type|Key and additional info| |----|-----------|----|----| |Array controller cache discovery |

Scanning table of Array controllers: CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageControllerTable.

|SNMP |cisco.ucs.array.cache.discovery | |Array controller discovery |

Scanning table of Array controllers: CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageControllerTable.

|SNMP |cisco.ucs.array.discovery | |FAN discovery |

-

|SNMP |cisco.ucs.fan.discovery | |Network interface discovery |

Discovering interfaces from IF-MIB.

|SNMP |cisco.ucs.net.if.discovery

**Preprocessing**:

- JAVASCRIPT: `The text is too long. Please see the template.`

**Filter**:

AND

- {#IFADMINSTATUS} MATCHES_REGEX `{$NET.IFADMINSTATUS.MATCHES}`

- {#IFADMINSTATUS} NOT_MATCHES_REGEX `{$NET.IFADMINSTATUS.NOT_MATCHES}`

- {#IFOPERSTATUS} MATCHES_REGEX `{$NET.IFOPERSTATUS.MATCHES}`

- {#IFOPERSTATUS} NOT_MATCHES_REGEX `{$NET.IFOPERSTATUS.NOT_MATCHES}`

- {#IFNAME} MATCHES_REGEX `{$NET.IFNAME.MATCHES}`

- {#IFNAME} NOT_MATCHES_REGEX `{$NET.IFNAME.NOT_MATCHES}`

- {#IFDESCR} MATCHES_REGEX `{$NET.IFDESCR.MATCHES}`

- {#IFDESCR} NOT_MATCHES_REGEX `{$NET.IFDESCR.NOT_MATCHES}`

- {#IFALIAS} MATCHES_REGEX `{$NET.IFALIAS.MATCHES}`

- {#IFALIAS} NOT_MATCHES_REGEX `{$NET.IFALIAS.NOT_MATCHES}`

- {#IFTYPE} MATCHES_REGEX `{$NET.IFTYPE.MATCHES}`

- {#IFTYPE} NOT_MATCHES_REGEX `{$NET.IFTYPE.NOT_MATCHES}`

| |Physical disk discovery |

Scanning table of physical drive entries CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageLocalDiskTable.

|SNMP |cisco.ucs.physicalDisk.discovery | |PSU discovery |

-

|SNMP |cisco.ucs.psu.discovery | |Temperature CPU discovery |

-

|SNMP |cisco.ucs.temp.cpu.discovery | |Temperature discovery |

-

|SNMP |cisco.ucs.temp.discovery | |Unit discovery |

-

|SNMP |cisco.ucs.unit.discovery | |Virtual disk discovery |

CISCO-UNIFIED-COMPUTING-STORAGE-MIB::cucsStorageLocalLunTable

|SNMP |cisco.ucs.virtualDisk.discovery | ## Items collected |Group|Name|Description|Type|Key and additional info| |-----|----|-----------|----|---------------------| |Disk arrays |{#DISKARRAY_LOCATION}: Disk array controller status |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

Cisco UCS storage:RaidBattery:operability managed object property.

|SNMP |cisco.ucs.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Disk arrays |{#DISKARRAY_LOCATION}: Disk array controller model |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

|SNMP |cisco.ucs.hw.diskarray.model[cucsStorageControllerModel.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| |Disk arrays |{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery status |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

|SNMP |cisco.ucs.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Fans |{#FAN_LOCATION}: Fan status |

MIB: CISCO-UNIFIED-COMPUTING-EQUIPMENT-MIB

Cisco UCS equipment:Fan:operState managed object property

|SNMP |cisco.ucs.sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |General |SNMP traps (fallback) |

The item is used to collect all SNMP traps unmatched by other snmptrap items

|SNMP_TRAP |snmptrap.fallback | |General |System location |

MIB: SNMPv2-MIB

The physical location of this node (e.g., `telephone closet,

3rd floor'). If the location is unknown, the value is the zero-length string.

|SNMP |cisco.ucs.location[sysLocation.0]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `12h`

| |General |System contact details |

MIB: SNMPv2-MIB

The textual identification of the contact person for this managed

node, together with information on how to contact this person. If no contact

information is known, the value is the zero-length string.

|SNMP |cisco.ucs.contact[sysContact.0]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `12h`

| |General |System object ID |

MIB: SNMPv2-MIB

The vendor's authoritative identification of the network management

subsystem contained in the entity. This value is allocated within the SMI enterprises

subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining 'what

kind of box' is being managed. For example, if vendor 'Flintstones, Inc.' was

assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1

to its 'Fred Router'.

|SNMP |cisco.ucs.objectid[sysObjectID.0]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `12h`

| |General |System name |

MIB: SNMPv2-MIB

An administratively-assigned name for this managed node.By

convention, this is the node's fully-qualified domain name. If the name is unknown,

the value is the zero-length string.

|SNMP |cisco.ucs.name[sysName.0]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `12h`

| |General |System description |

MIB: SNMPv2-MIB

A textual description of the entity. This value should

include the full name and version identification of the system's hardware type, software operating-system, and

networking software.

|SNMP |cisco.ucs.descr[sysDescr.0]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `12h`

| |Inventory |{#UNIT_LOCATION}: Hardware model name |

MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB

Cisco UCS compute:RackUnit:model managed object property

|SNMP |cisco.ucs.hw.model[cucsComputeRackUnitModel.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| |Inventory |{#UNIT_LOCATION}: Hardware serial number |

MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB

Cisco UCS compute:RackUnit:serial managed object property

|SNMP |cisco.ucs.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Operational status |

MIB: IF-MIB

The current operational state of the interface.

- The testing(3) state indicates that no operational packet scan be passed

- If ifAdminStatus is down(2) then ifOperStatus should be down(2)

- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic

- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)

- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state

- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.

|SNMP |cisco.ucs.if.status[ifOperStatus.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Bits received |

MIB: IF-MIB

The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.

|SNMP |cisco.ucs.if.in[ifHCInOctets.{#SNMPINDEX}]

**Preprocessing**:

- CHANGE_PER_SECOND

- MULTIPLIER: `8`

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Bits sent |

MIB: IF-MIB

The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.

|SNMP |cisco.ucs.if.out[ifHCOutOctets.{#SNMPINDEX}]

**Preprocessing**:

- CHANGE_PER_SECOND

- MULTIPLIER: `8`

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors |

MIB: IF-MIB

For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.

|SNMP |cisco.ucs.if.in.errors[ifInErrors.{#SNMPINDEX}]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors |

MIB: IF-MIB

For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.

|SNMP |cisco.ucs.if.out.errors[ifOutErrors.{#SNMPINDEX}]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded |

MIB: IF-MIB

The number of outbound packets which were chosen to be discarded

even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.

One possible reason for discarding such a packet could be to free up buffer space.

Discontinuities in the value of this counter can occur at re-initialization of the management system,

and at other times as indicated by the value of ifCounterDiscontinuityTime.

|SNMP |cisco.ucs.if.out.discards[ifOutDiscards.{#SNMPINDEX}]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded |

MIB: IF-MIB

The number of inbound packets which were chosen to be discarded

even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.

One possible reason for discarding such a packet could be to free up buffer space.

Discontinuities in the value of this counter can occur at re-initialization of the management system,

and at other times as indicated by the value of ifCounterDiscontinuityTime.

|SNMP |cisco.ucs.if.in.discards[ifInDiscards.{#SNMPINDEX}]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Multicast packets received |

MIB: IF-MIB

The number of packets, delivered by this sub-layer to a

higher (sub-)layer, which were addressed to a multicast

address at this sub-layer. For a MAC layer protocol, this

includes both Group and Functional addresses. This object

is a 64-bit version of ifInMulticastPkts.

Discontinuities in the value of this counter can occur at

re-initialization of the management system, and at other

times as indicated by the value of ifCounterDiscontinuityTime.

|SNMP |cisco.ucs.if.in.multicast[ifHCInMulticastPkts.{#SNMPINDEX}]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Multicast packets sent |

MIB: IF-MIB

The total number of packets that higher-level protocols

requested be transmitted, and which were addressed to a

multicast address at this sub-layer, including those that

were discarded or not sent. For a MAC layer protocol, this

includes both Group and Functional addresses. This object

is a 64-bit version of ifOutMulticastPkts.

Discontinuities in the value of this counter can occur at

re-initialization of the management system, and at other

times as indicated by the value of ifCounterDiscontinuityTime.

|SNMP |cisco.ucs.if.out.multicast[ifHCOutMulticastPkts.{#SNMPINDEX}]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Broadcast packets received |

MIB: IF-MIB

The number of packets, delivered by this sub-layer to a

higher (sub-)layer, which were addressed to a broadcast

address at this sub-layer. This object is a 64-bit version

of ifInBroadcastPkts.

Discontinuities in the value of this counter can occur at

re-initialization of the management system, and at other

times as indicated by the value of ifCounterDiscontinuityTime.

|SNMP |cisco.ucs.if.in.broadcast[ifHCInBroadcastPkts.{#SNMPINDEX}]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Broadcast packets sent |

MIB: IF-MIB

The total number of packets that higher-level protocols

requested be transmitted, and which were addressed to a

broadcast address at this sub-layer, including those that

were discarded or not sent. This object is a 64-bit version

of ifOutBroadcastPkts.

Discontinuities in the value of this counter can occur at

re-initialization of the management system, and at other

times as indicated by the value of ifCounterDiscontinuityTime.

|SNMP |cisco.ucs.if.out.broadcast[ifHCOutBroadcastPkts.{#SNMPINDEX}]

**Preprocessing**:

- CHANGE_PER_SECOND

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Interface type |

MIB: IF-MIB

The type of interface.

Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA),

through updating the syntax of the IANAifType textual convention.

|SNMP |cisco.ucs.if.type[ifType.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Interface description |

MIB: IF-MIB

A textual string containing information about the

interface. This string should include the name of the

manufacturer, the product name and the version of the

interface hardware/software.

|SNMP |cisco.ucs.if.descr[ifDescr.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| |Network interfaces |Interface {#IFNAME}({#IFALIAS}): Speed |

MIB: IF-MIB

An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero.

|SNMP |cisco.ucs.if.speed[ifHighSpeed.{#SNMPINDEX}]

**Preprocessing**:

- MULTIPLIER: `1000000`

- DISCARD_UNCHANGED_HEARTBEAT: `1h`

| |Physical disks |{#DISK_LOCATION}: Physical disk status |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

Cisco UCS storage:LocalDisk:diskState managed object property.

|SNMP |cisco.ucs.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Physical disks |{#DISK_LOCATION}: Physical disk model name |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

Cisco UCS storage:LocalDisk:model managed object property.

|SNMP |cisco.ucs.hw.physicaldisk.model[cucsStorageLocalDiskModel.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| |Physical disks |{#DISK_LOCATION}: Physical disk serial number |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

Cisco UCS storage:LocalDisk:serial managed object property. Actually returns part number code.

|SNMP |cisco.ucs.hw.physicaldisk.serialnumber[cucsStorageLocalDiskSerial.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| |Physical disks |{#DISK_LOCATION}: Physical disk media type |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

Cisco UCS storage:LocalDisk:deviceType managed object property. Actually returns 'HDD' or 'SSD'.

|SNMP |cisco.ucs.hw.physicaldisk.media_type[cucsStorageLocalDiskDeviceType.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| |Physical disks |{#DISK_LOCATION}: Disk size |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

Cisco UCS storage:LocalDisk:size managed object property. In MB.

|SNMP |cisco.ucs.hw.physicaldisk.size[cucsStorageLocalDiskSize.{#SNMPINDEX}]

**Preprocessing**:

- MULTIPLIER: `1048576`

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| |Power supply |{#PSU_LOCATION}: Power supply status |

MIB: CISCO-UNIFIED-COMPUTING-EQUIPMENT-MIB

Cisco UCS equipment:Psu:operState managed object property

|SNMP |cisco.ucs.sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Uptime |

MIB: SNMPv2-MIB

The time in seconds since the network management

portion of the system was last re-initialized.

|SNMP |cisco.ucs.uptime[sysUpTime.0]

**Preprocessing**:

- MULTIPLIER: `0.01`

| |Status |SNMP agent availability |

Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.

Possible value:

0 - not available

1 - available

2 - unknown

|INTERNAL |zabbix[host,snmp,available]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `1h`

| |Status |{#UNIT_LOCATION}: Overall system health status |

MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB

Cisco UCS compute:RackUnit:operState managed object property

|SNMP |cisco.ucs.status[cucsComputeRackUnitOperState.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Temperature |{#SENSOR_LOCATION}.Ambient: Temperature |

MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB

Temperature readings of testpoint: {#SENSOR_LOCATION}.Ambient

|SNMP |cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Temperature |{#SENSOR_LOCATION}.Front: Temperature |

MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB

Cisco UCS compute:RackUnitMbTempStats:frontTemp managed object property

|SNMP |cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Temperature |{#SENSOR_LOCATION}.Rear: Temperature |

MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB

Cisco UCS compute:RackUnitMbTempStats:rearTemp managed object property

|SNMP |cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Temperature |{#SENSOR_LOCATION}.IOH: Temperature |

MIB: CISCO-UNIFIED-COMPUTING-COMPUTE-MIB

Cisco UCS compute:RackUnitMbTempStats:ioh1Temp managed object property

|SNMP |cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Temperature |{#SENSOR_LOCATION}: Temperature |

MIB: CISCO-UNIFIED-COMPUTING-PROCESSOR-MIB

Cisco UCS processor:EnvStats:temperature managed object property

|SNMP |cisco.ucs.sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Virtual disks |{#VDISK_LOCATION}: Status |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

Cisco UCS storage:LocalLun:presence managed object property

|SNMP |cisco.ucs.hw.virtualdisk.status[cucsStorageLocalLunPresence.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Virtual disks |{#VDISK_LOCATION}: Layout type |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

Cisco UCS storage:LocalLun:type managed object property

|SNMP |cisco.ucs.hw.virtualdisk.layout[cucsStorageLocalLunType.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| |Virtual disks |{#VDISK_LOCATION}: Disk size |

MIB: CISCO-UNIFIED-COMPUTING-STORAGE-MIB

Cisco UCS storage:LocalLun:size managed object property in MB.

|SNMP |cisco.ucs.hw.virtualdisk.size[cucsStorageLocalLunSize.{#SNMPINDEX}]

**Preprocessing**:

- MULTIPLIER: `1048576`

- DISCARD_UNCHANGED_HEARTBEAT: `1d`

| ## Triggers |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----|----|----| |{#DISKARRAY_LOCATION}: Disk array controller is in critical state |

Please check the device for faults

|`last(/Cisco UCS Manager SNMP/cisco.ucs.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}])={$DISK.ARRAY.STATUS.CRIT:"inoperable"}` |HIGH | | |{#DISKARRAY_LOCATION}: Disk array controller is in warning state |

Please check the device for faults

|`last(/Cisco UCS Manager SNMP/cisco.ucs.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}])={$DISK.ARRAY.STATUS.WARN:"degraded"}` |AVERAGE |

**Depends on**:

- {#DISKARRAY_LOCATION}: Disk array controller is in critical state

| |{#DISKARRAY_LOCATION}: Disk array controller is not in optimal state |

Please check the device for faults

|`last(/Cisco UCS Manager SNMP/cisco.ucs.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}])>{$DISK.ARRAY.STATUS.OK:"operable"}` |WARNING |

**Depends on**:

- {#DISKARRAY_LOCATION}: Disk array controller is in critical state

- {#DISKARRAY_LOCATION}: Disk array controller is in warning state

| |{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is in critical state! |

Please check the device for faults

|`last(/Cisco UCS Manager SNMP/cisco.ucs.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}])={$DISK.ARRAY.CACHE.BATTERY.STATUS.CRIT}` |AVERAGE | | |{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is not in optimal state |

Please check the device for faults

|`last(/Cisco UCS Manager SNMP/cisco.ucs.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}])<>{$DISK.ARRAY.CACHE.BATTERY.STATUS.OK}` |WARNING |

**Depends on**:

- {#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is in critical state!

| |{#FAN_LOCATION}: Fan is in critical state |

Please check the fan unit

|`last(/Cisco UCS Manager SNMP/cisco.ucs.sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}])={$FAN.STATUS.CRIT:"inoperable"}` |AVERAGE | | |{#FAN_LOCATION}: Fan is in warning state |

Please check the fan unit

|`last(/Cisco UCS Manager SNMP/cisco.ucs.sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}])={$FAN.STATUS.WARN:"degraded"}` |WARNING |

**Depends on**:

- {#FAN_LOCATION}: Fan is in critical state

| |System name has changed |

System name has changed. Ack to close.

|`last(/Cisco UCS Manager SNMP/cisco.ucs.name[sysName.0],#1)<>last(/Cisco UCS Manager SNMP/cisco.ucs.name[sysName.0],#2) and length(last(/Cisco UCS Manager SNMP/cisco.ucs.name[sysName.0]))>0` |INFO |

Manual close: YES

| |{#UNIT_LOCATION}: Device has been replaced |

Device serial number has changed. Ack to close

|`last(/Cisco UCS Manager SNMP/cisco.ucs.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}],#1)<>last(/Cisco UCS Manager SNMP/cisco.ucs.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}],#2) and length(last(/Cisco UCS Manager SNMP/cisco.ucs.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}]))>0` |INFO |

Manual close: YES

| |Interface {#IFNAME}({#IFALIAS}): Link down |

This trigger expression works as follows:

1. Can be triggered if operations status is down.

2. {$IFCONTROL:"{#IFNAME}"}=1 - user can redefine Context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down.

3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)

WARNING: if closed manually - won't fire again on next poll, because of .diff.

|`{$IFCONTROL:"{#IFNAME}"}=1 and last(/Cisco UCS Manager SNMP/cisco.ucs.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Cisco UCS Manager SNMP/cisco.ucs.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Cisco UCS Manager SNMP/cisco.ucs.if.status[ifOperStatus.{#SNMPINDEX}],#2))`

Recovery expression:

`last(/Cisco UCS Manager SNMP/cisco.ucs.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0` |AVERAGE |

Manual close: YES

| |Interface {#IFNAME}({#IFALIAS}): High error rate on {#IFNAME} |

Recovers when value below {$IF.ERRORS.WARN:"{#IFNAME}"} threshold.

|`min(/Cisco UCS Manager SNMP/cisco.ucs.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Cisco UCS Manager SNMP/cisco.ucs.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} ` |WARNING |

Manual close: YES

**Depends on**:

- Interface {#IFNAME}({#IFALIAS}): Link down

| |{#DISK_LOCATION}: Physical disk failed |

Please check physical disk for warnings or errors

|`last(/Cisco UCS Manager SNMP/cisco.ucs.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}])={$DISK.STATUS.FAIL:"failed"}` |HIGH | | |{#DISK_LOCATION}: Physical disk error |

Please check physical disk for warnings or errors

|`last(/Cisco UCS Manager SNMP/cisco.ucs.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}])={$DISK.STATUS.CRIT:"bad"} or last(/Cisco UCS Manager SNMP/cisco.ucs.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}])={$DISK.STATUS.CRIT:"predictiveFailure"}` |AVERAGE |

**Depends on**:

- {#DISK_LOCATION}: Physical disk failed

| |{#DISK_LOCATION}: Disk has been replaced |

Disk serial number has changed. Ack to close

|`last(/Cisco UCS Manager SNMP/cisco.ucs.hw.physicaldisk.serialnumber[cucsStorageLocalDiskSerial.{#SNMPINDEX}],#1)<>last(/Cisco UCS Manager SNMP/cisco.ucs.hw.physicaldisk.serialnumber[cucsStorageLocalDiskSerial.{#SNMPINDEX}],#2) and length(last(/Cisco UCS Manager SNMP/cisco.ucs.hw.physicaldisk.serialnumber[cucsStorageLocalDiskSerial.{#SNMPINDEX}]))>0` |INFO |

Manual close: YES

| |{#PSU_LOCATION}: Power supply is in critical state |

Please check the power supply unit for errors

|`last(/Cisco UCS Manager SNMP/cisco.ucs.sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}])={$PSU.STATUS.CRIT:"inoperable"}` |AVERAGE | | |{#PSU_LOCATION}: Power supply is in warning state |

Please check the power supply unit for errors

|`last(/Cisco UCS Manager SNMP/cisco.ucs.sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}])={$PSU.STATUS.WARN:"degraded"}` |WARNING |

**Depends on**:

- {#PSU_LOCATION}: Power supply is in critical state

| |has been restarted |

Uptime is less than 10 minutes

|`last(/Cisco UCS Manager SNMP/cisco.ucs.uptime[sysUpTime.0])<10m` |WARNING |

Manual close: YES

**Depends on**:

- No SNMP data collection

| |No SNMP data collection |

SNMP is not available for polling. Please check device connectivity and SNMP settings.

|`max(/Cisco UCS Manager SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0` |WARNING | | |{#UNIT_LOCATION}: System status is in critical state |

Please check the device for errors

|`last(/Cisco UCS Manager SNMP/cisco.ucs.status[cucsComputeRackUnitOperState.{#SNMPINDEX}])={$HEALTH.STATUS.CRIT:"computeFailed"} or last(/Cisco UCS Manager SNMP/cisco.ucs.status[cucsComputeRackUnitOperState.{#SNMPINDEX}])={$HEALTH.STATUS.CRIT:"configFailure"} or last(/Cisco UCS Manager SNMP/cisco.ucs.status[cucsComputeRackUnitOperState.{#SNMPINDEX}])={$HEALTH.STATUS.CRIT:"unconfigFailure"} or last(/Cisco UCS Manager SNMP/cisco.ucs.status[cucsComputeRackUnitOperState.{#SNMPINDEX}])={$HEALTH.STATUS.CRIT:"inoperable"}` |HIGH | | |{#UNIT_LOCATION}: System status is in warning state |

Please check the device for warnings

|`last(/Cisco UCS Manager SNMP/cisco.ucs.status[cucsComputeRackUnitOperState.{#SNMPINDEX}])={$HEALTH.STATUS.WARN:"testFailed"} or last(/Cisco UCS Manager SNMP/cisco.ucs.status[cucsComputeRackUnitOperState.{#SNMPINDEX}])={$HEALTH.STATUS.WARN:"thermalProblem"} or last(/Cisco UCS Manager SNMP/cisco.ucs.status[cucsComputeRackUnitOperState.{#SNMPINDEX}])={$HEALTH.STATUS.WARN:"powerProblem"} or last(/Cisco UCS Manager SNMP/cisco.ucs.status[cucsComputeRackUnitOperState.{#SNMPINDEX}])={$HEALTH.STATUS.WARN:"voltageProblem"} or last(/Cisco UCS Manager SNMP/cisco.ucs.status[cucsComputeRackUnitOperState.{#SNMPINDEX}])={$HEALTH.STATUS.WARN:"diagnosticsFailed"}` |WARNING |

**Depends on**:

- {#UNIT_LOCATION}: System status is in critical state

| |{#SENSOR_LOCATION}.Ambient: Temperature is above warning threshold |

This trigger uses temperature sensor values as well as temperature sensor status if available

|`avg(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)>{$TEMP.MAX.WARN:"Ambient"}`

Recovery expression:

`max(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)<{$TEMP.MAX.WARN:"Ambient"}-3` |WARNING |

**Depends on**:

- {#SENSOR_LOCATION}.Ambient: Temperature is above critical threshold

| |{#SENSOR_LOCATION}.Ambient: Temperature is above critical threshold |

This trigger uses temperature sensor values as well as temperature sensor status if available

|`avg(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)>{$TEMP.MAX.CRIT:"Ambient"}`

Recovery expression:

`max(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)<{$TEMP.MAX.CRIT:"Ambient"}-3` |HIGH | | |{#SENSOR_LOCATION}.Front: Temperature is above warning threshold |

This trigger uses temperature sensor values as well as temperature sensor status if available

|`avg(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)>{$TEMP.MAX.WARN:"Ambient"}`

Recovery expression:

`max(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)<{$TEMP.MAX.WARN:"Ambient"}-3` |WARNING |

**Depends on**:

- {#SENSOR_LOCATION}.Front: Temperature is above critical threshold

| |{#SENSOR_LOCATION}.Front: Temperature is above critical threshold |

This trigger uses temperature sensor values as well as temperature sensor status if available

|`avg(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)>{$TEMP.MAX.CRIT:"Ambient"}`

Recovery expression:

`max(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)<{$TEMP.MAX.CRIT:"Ambient"}-3` |HIGH | | |{#SENSOR_LOCATION}.Rear: Temperature is above warning threshold |

This trigger uses temperature sensor values as well as temperature sensor status if available

|`avg(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)>{$TEMP.MAX.WARN:"Ambient"}`

Recovery expression:

`max(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)<{$TEMP.MAX.WARN:"Ambient"}-3` |WARNING |

**Depends on**:

- {#SENSOR_LOCATION}.Rear: Temperature is above critical threshold

| |{#SENSOR_LOCATION}.Rear: Temperature is above critical threshold |

This trigger uses temperature sensor values as well as temperature sensor status if available

|`avg(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)>{$TEMP.MAX.CRIT:"Ambient"}`

Recovery expression:

`max(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)<{$TEMP.MAX.CRIT:"Ambient"}-3` |HIGH | | |{#SENSOR_LOCATION}.IOH: Temperature is above warning threshold |

This trigger uses temperature sensor values as well as temperature sensor status if available

|`avg(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)>{$TEMP.MAX.WARN:"Ambient"}`

Recovery expression:

`max(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)<{$TEMP.MAX.WARN:"Ambient"}-3` |WARNING |

**Depends on**:

- {#SENSOR_LOCATION}.IOH: Temperature is above critical threshold

| |{#SENSOR_LOCATION}.IOH: Temperature is above critical threshold |

This trigger uses temperature sensor values as well as temperature sensor status if available

|`avg(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)>{$TEMP.MAX.CRIT:"Ambient"}`

Recovery expression:

`max(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)<{$TEMP.MAX.CRIT:"Ambient"}-3` |HIGH | | |{#SENSOR_LOCATION}: Temperature is above warning threshold |

This trigger uses temperature sensor values as well as temperature sensor status if available

|`avg(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)>{$TEMP.MAX.WARN:"CPU"}`

Recovery expression:

`max(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)<{$TEMP.MAX.WARN:"CPU"}-3` |WARNING |

**Depends on**:

- {#SENSOR_LOCATION}: Temperature is above critical threshold

| |{#SENSOR_LOCATION}: Temperature is above critical threshold |

This trigger uses temperature sensor values as well as temperature sensor status if available

|`avg(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)>{$TEMP.MAX.CRIT:"CPU"}`

Recovery expression:

`max(/Cisco UCS Manager SNMP/cisco.ucs.sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)<{$TEMP.MAX.CRIT:"CPU"}-3` |HIGH | | |{#VDISK_LOCATION}: Virtual disk is not in OK state |

Please check virtual disk for warnings or errors

|`last(/Cisco UCS Manager SNMP/cisco.ucs.hw.virtualdisk.status[cucsStorageLocalLunPresence.{#SNMPINDEX}])<>{$VDISK.STATUS.OK:"equipped"}` |WARNING | | ## Feedback Please report any issues with the template at https://support.zabbix.com You can also provide feedback, discuss the template or ask for help with it at [ZABBIX forums](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/418396-discussion-thread-for-official-zabbix-templates-for-cisco).