# APC UPS SNMP ## Overview For Zabbix version: 6.2 and higher The template to monitor APC UPS with NMC by Zabbix SNMP agent. Note: please, use the latest version of the firmware for your NMC in order for the template to work correctly. ## 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 APC UPS management 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| |----|-----------|-------| |{$BATTERY.CAPACITY.MIN.WARN} |

Minimum battery capacity percentage for trigger expression.

|`50` | |{$BATTERY.TEMP.MAX.WARN} |

Maximum battery temperature for trigger expression.

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

The time interval for SNMP agent availability trigger expression.

|`5m` | |{$TIME.PERIOD} |

Time period for trigger expression.

|`15m` | |{$UPS.INPUT_FREQ.MAX.WARN} |

Maximum input frequency for trigger expression.

|`50.3` | |{$UPS.INPUT_FREQ.MIN.WARN} |

Minimum input frequency for trigger expression.

|`49.7` | |{$UPS.INPUT_VOLT.MAX.WARN} |

Maximum input voltage for trigger expression.

|`243` | |{$UPS.INPUT_VOLT.MIN.WARN} |

Minimum input voltage for trigger expression.

|`197` | |{$UPS.OUTPUT.MAX.WARN} |

Maximum output load in % for trigger expression.

|`80` | ## Template links There are no template links in this template. ## Discovery rules |Name|Description|Type|Key and additional info| |----|-----------|----|----| |External bad battery packs discovery |

Discovery of the number of external defective battery packs.

|SNMP |battery.packs.bad.discovery | |External battery packs discovery | |SNMP |battery.packs.discovery

**Filter**:

AND

- {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`

| |External sensor port 1 discovery |

uioSensorStatusTable

|SNMP |external.sensor1.discovery

**Overrides:**

Temp
- {#EXTERNAL_SENSOR1_NAME} MATCHES_REGEX `Temp`
- ITEM_PROTOTYPE LIKE `Humidity` - NO_DISCOVER

| |External sensor port 2 discovery |

uioSensorStatusTable

|SNMP |external.sensor2.discovery

**Overrides:**

Temp
- {#EXTERNAL_SENSOR2_NAME} MATCHES_REGEX `Temp`
- ITEM_PROTOTYPE LIKE `Humidity` - NO_DISCOVER

| |Input phases discovery |

The input phase identifier. OID upsPhaseInputPhaseIndex.1.1

|SNMP |input.phases.discovery | |Output phases discovery |

The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1

|SNMP |output.phases.discovery | ## Items collected |Group|Name|Description|Type|Key and additional info| |-----|----|-----------|----|---------------------| |General |Model |

MIB: PowerNet-MIB

The UPS model name (e.g. 'APC Smart-UPS 600').

|SNMP |system.model[upsBasicIdentModel]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |General |Serial number |

MIB: PowerNet-MIB

An 8-character string identifying the serial number of

the UPS internal microprocessor. This number is set at

the factory. NOTE: This number does NOT correspond to

the serial number on the rear of the UPS.

|SNMP |system.sn[upsAdvIdentSerialNumber]

**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 |system.location[sysLocation.0]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |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 |system.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 |system.objectid[sysObjectID.0]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |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 |system.name[sysName.0]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |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 |system.descr[sysDescr.0]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `12h`

| |General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |

MIB: PowerNet-MIB

The battery pack serial number.

|SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Battery status |

MIB: PowerNet-MIB

The status of the UPS batteries. A batteryLow(3) value

indicates the UPS will be unable to sustain the current

load, and its services will be lost if power is not restored.

The amount of run time in reserve at the time of low battery

can be configured by the upsAdvConfigLowBatteryRunTime.

A batteryInFaultCondition(4)value indicates that a battery

installed has an internal error condition.

|SNMP |battery.status[upsBasicBatteryStatus]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Battery capacity |

MIB: PowerNet-MIB

The remaining battery capacity expressed as

percentage of full capacity.

|SNMP |battery.capacity[upsHighPrecBatteryCapacity]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Battery runtime remaining |

MIB: PowerNet-MIB

The UPS battery run time remaining before battery

exhaustion.

|SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]

**Preprocessing**:

- MULTIPLIER: `0.01`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Battery voltage |

MIB: PowerNet-MIB

The actual battery bus voltage in Volts.

|SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Battery last replace date |

MIB: PowerNet-MIB

The date when the UPS system's batteries were last replaced

in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value

is originally set at the factory. When the UPS batteries

are replaced, this value should be reset by the administrator.

For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.

|SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Battery replace indicator |

MIB: PowerNet-MIB

Indicates whether the UPS batteries need replacement.

|SNMP |battery.replace_indicator[upsAdvBatteryReplaceIndicator]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |External battery packs count |

MIB: PowerNet-MIB

The number of external battery packs connected to the UPS. If

the UPS does not use smart cells then the agent reports

ERROR_NO_SUCH_NAME.

|SNMP |battery.external_packs_count[upsAdvBatteryNumOfBattPacks]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Battery temperature |

MIB: PowerNet-MIB

The current internal UPS temperature in Celsius.

Temperatures below zero read as 0.

|SNMP |battery.temperature[upsHighPrecBatteryTemperature]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Input voltage |

MIB: PowerNet-MIB

The current utility line voltage in VAC.

|SNMP |input.voltage[upsHighPrecInputLineVoltage]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Input frequency |

MIB: PowerNet-MIB

The current input frequency to the UPS system in Hz.

|SNMP |input.frequency[upsHighPrecInputFrequency]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Input fail cause |

MIB: PowerNet-MIB

The reason for the occurrence of the last transfer to UPS

battery power. The variable is set to:

- noTransfer(1) -- if there is no transfer yet.

- highLineVoltage(2) -- if the transfer to battery is caused

by an over voltage greater than the high transfer voltage.

- brownout(3) -- if the duration of the outage is greater than

five seconds and the line voltage is between 40% of the

rated output voltage and the low transfer voltage.

- blackout(4) -- if the duration of the outage is greater than five

seconds and the line voltage is between 40% of the rated

output voltage and ground.

- smallMomentarySag(5) -- if the duration of the outage is less

than five seconds and the line voltage is between 40% of the

rated output voltage and the low transfer voltage.

- deepMomentarySag(6) -- if the duration of the outage is less

than five seconds and the line voltage is between 40% of the

rated output voltage and ground. The variable is set to

- smallMomentarySpike(7) -- if the line failure is caused by a

rate of change of input voltage less than ten volts per cycle.

- largeMomentarySpike(8) -- if the line failure is caused by

a rate of change of input voltage greater than ten volts per cycle.

- selfTest(9) -- if the UPS was commanded to do a self test.

- rateOfVoltageChange(10) -- if the failure is due to the rate of change of

the line voltage.

|SNMP |input.fail[upsAdvInputLineFailCause]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Output voltage |

MIB: PowerNet-MIB

The output voltage of the UPS system in VAC.

|SNMP |output.voltage[upsHighPrecOutputVoltage]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Output load |

MIB: PowerNet-MIB

The current UPS load expressed as percentage

of rated capacity.

|SNMP |output.load[upsHighPrecOutputLoad]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Output current |

MIB: PowerNet-MIB

The current in amperes drawn by the load on the UPS.

|SNMP |output.current[upsHighPrecOutputCurrent]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Output status |

MIB: PowerNet-MIB

The current state of the UPS. If the UPS is unable to

determine the state of the UPS this variable is set

to unknown(1).

During self-test most UPSes report onBattery(3) but

some that support it will report onBatteryTest(15).

To determine self-test status across all UPSes, refer

to the upsBasicStateOutputState OID.

|SNMP |output.status[upsBasicOutputStatus]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |Uptime |

MIB: SNMPv2-MIB

The time (in hundredths of a second) since the network management

portion of the system was last re-initialized.

|SNMP |system.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: `6h`

| |Status |{#PHASEINDEX}: Phase input voltage |

MIB: PowerNet-MIB

The input voltage in VAC, or -1 if it's unsupported

by this UPS.

|SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#PHASEINDEX}: Phase input current |

MIB: PowerNet-MIB

The input current in 0.1 amperes, or -0.1 if it's

unsupported by this UPS.

|SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#PHASEINDEX}: Phase output voltage |

MIB: PowerNet-MIB

The output voltage in VAC, or -1 if it's unsupported

by this UPS.

|SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#PHASEINDEX}: Phase output current |

MIB: PowerNet-MIB

The output current in 0.1 amperes drawn

by the load on the UPS, or -1 if it's unsupported

by this UPS.

|SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#PHASEINDEX}: Phase output load, % |

MIB: PowerNet-MIB

The percentage of the UPS load capacity in VA at

redundancy @ (n + x) presently being used on this

output phase, or -1 if it's unsupported by this UPS.

|SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |

MIB: PowerNet-MIB

The battery cartridge status.

bit 0 Disconnected

bit 1 Overvoltage

bit 2 NeedsReplacement

bit 3 OvertemperatureCritical

bit 4 Charger

bit 5 TemperatureSensor

bit 6 BusSoftStart

bit 7 OvertemperatureWarning

bit 8 GeneralError

bit 9 Communication

bit 10 DisconnectedFrame

bit 11 FirmwareMismatch

|SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |

MIB: PowerNet-MIB

The battery pack temperature in Celsius.

|SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]

**Preprocessing**:

- MULTIPLIER: `0.1`

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date |

MIB: PowerNet-MIB

The battery cartridge estimated battery replace date.

|SNMP |battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health |

MIB: PowerNet-MIB

The battery cartridge health.

bit 0 Battery lifetime okay

bit 1 Battery lifetime near end, order replacement cartridge

bit 2 Battery lifetime exceeded, replace battery

bit 3 Battery lifetime near end acknowledged, order replacement cartridge

bit 4 Battery lifetime exceeded acknowledged, replace battery

bit 5 Battery measured lifetime near end, order replacement cartridge

bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge

|SNMP |battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#SNMPINDEX}: External battery packs bad |

MIB: PowerNet-MIB

The number of external battery packs connected to the UPS that

are defective. If the UPS does not use smart cells then the

agent reports ERROR_NO_SUCH_NAME.

|SNMP |battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#EXTERNAL_SENSOR1_NAME}: Temperature sensor |

MIB: PowerNet-MIB

The sensor's current temperature reading in Celsius.

-1 indicates an invalid reading due to lost communications.

|SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#EXTERNAL_SENSOR1_NAME}: Humidity sensor |

MIB: PowerNet-MIB

The sensor's current humidity reading - a relative humidity

percentage. -1 indicates an invalid reading due to either a

sensor that doesn't read humidity or lost communications.

|SNMP |external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status |

MIB: PowerNet-MIB

The alarm status of the sensor. Possible values:

uioNormal (1),

uioWarning (2),

uioCritical (3),

sensorStatusNotApplicable (4)

|SNMP |external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#EXTERNAL_SENSOR2_NAME}: Temperature sensor |

MIB: PowerNet-MIB

The sensor's current temperature reading in Celsius.

-1 indicates an invalid reading due to lost communications.

|SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#EXTERNAL_SENSOR2_NAME}: Humidity sensor |

MIB: PowerNet-MIB

The sensor's current humidity reading - a relative humidity

percentage. -1 indicates an invalid reading due to either a

sensor that doesn't read humidity or lost communications.

|SNMP |external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| |Status |{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status |

MIB: PowerNet-MIB

The alarm status of the sensor. Possible values:

uioNormal (1),

uioWarning (2),

uioCritical (3),

sensorStatusNotApplicable (4)

|SNMP |external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]

**Preprocessing**:

- DISCARD_UNCHANGED_HEARTBEAT: `6h`

| ## Triggers |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----|----|----| |System name has changed |

System name has changed. Ack to close.

|`last(/APC UPS SNMP/system.name[sysName.0],#1)<>last(/APC UPS SNMP/system.name[sysName.0],#2) and length(last(/APC UPS SNMP/system.name[sysName.0]))>0` |INFO |

Manual close: YES

| |Battery has an internal error condition |

A battery installed has an internal error condition.

|`last(/APC UPS SNMP/battery.status[upsBasicBatteryStatus])=4` |AVERAGE | | |Battery is Low |

The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.

|`last(/APC UPS SNMP/battery.status[upsBasicBatteryStatus])=3` |AVERAGE | | |Battery has low capacity |

-

|`last(/APC UPS SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | |Battery needs replacement |

A battery installed has an internal error condition.

|`last(/APC UPS SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2` |HIGH | | |Battery has high temperature |

-

|`min(/APC UPS SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | |Unacceptable input voltage |

-

|`min(/APC UPS SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC UPS SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | |Unacceptable input frequency |

-

|`min(/APC UPS SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC UPS SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC UPS SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})` |HIGH | | |Output load is high |

A battery installed has an internal error condition.

|`min(/APC UPS SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}` |HIGH | | |UPS is Timed Sleeping |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=5` |AVERAGE | | |UPS is Switched Bypass |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=9` |AVERAGE | | |UPS is Software Bypass |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=6` |AVERAGE | | |UPS is Sleeping Until Power Return |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=11` |AVERAGE | | |UPS is Rebooting |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=8` |AVERAGE | | |UPS is On Smart Trim |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=12` |AVERAGE | | |UPS is on Smart Boost |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=4` |AVERAGE | | |UPS is on battery |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=3` |AVERAGE | | |UPS is Off |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=7` |AVERAGE | | |UPS is Emergency Static Bypass |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=16` |AVERAGE | | |UPS is Hardware Failure Bypass |

-

|`last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=10` |AVERAGE | | |has been restarted |

Uptime is less than 10 minutes.

|`last(/APC UPS SNMP/system.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(/APC UPS SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0` |WARNING | | |{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage |

-

|`min(/APC UPS SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | |{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage |

-

|`min(/APC UPS SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |

The battery cartridge status:

bit 0 Disconnected

bit 1 Overvoltage

bit 2 NeedsReplacement

bit 3 OvertemperatureCritical

bit 4 Charger

bit 5 TemperatureSensor

bit 6 BusSoftStart

bit 7 OvertemperatureWarning

bit 8 GeneralError

bit 9 Communication

bit 10 DisconnectedFrame

bit 11 FirmwareMismatch

|`find(/APC UPS SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0` |WARNING | | |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature |

-

|`min(/APC UPS SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |

The battery cartridge health.

bit 0 Battery lifetime okay

bit 1 Battery lifetime near end, order replacement cartridge

bit 2 Battery lifetime exceeded, replace battery

bit 3 Battery lifetime near end acknowledged, order replacement cartridge

bit 4 Battery lifetime exceeded acknowledged, replace battery

bit 5 Battery measured lifetime near end, order replacement cartridge

bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge

|`find(/APC UPS SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1` |WARNING | | |{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |

The external sensor does not work or is not connected.

|`last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4` |INFO | | |{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning |

The external sensor has returned a value greater than the warning threshold.

|`last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2` |AVERAGE | | |{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical |

The external sensor has returned a value greater than the critical threshold.

|`last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3` |HIGH | | |{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable |

The external sensor does not work or is not connected.

|`last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4` |INFO | | |{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning |

The external sensor has returned a value greater than the warning threshold.

|`last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2` |AVERAGE | | |{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical |

The external sensor has returned a value greater than the critical threshold.

|`last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3` |HIGH | | ## 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/420730-discussion-thread-for-official-zabbix-template-apc-ups).