diff options
author | Maxim Chudinov <maxim.chudinov@zabbix.com> | 2021-03-31 12:17:15 +0300 |
---|---|---|
committer | Maxim Chudinov <maxim.chudinov@zabbix.com> | 2021-03-31 12:17:15 +0300 |
commit | 40998827d807c26830bfb3a00c8e335fda1389fa (patch) | |
tree | 6be90d7020a2ff712ce60d6069dfd5354fa8e0fe /templates | |
parent | 69634bae64eab48505006f734c57742bee2abab0 (diff) | |
parent | 30e33cfef785e76be1251bb2dc7026c1dfa89dc1 (diff) |
.........T [ZBXNEXT-6571] added templates for APC UPSs Galaxy 3500, Smart-UPS, Smart-UPS SRT, Symmetra RM
Merge in ZBX/zabbix from feature/ZBXNEXT-6571-5.3 to master
* commit '30e33cfef785e76be1251bb2dc7026c1dfa89dc1':
.........T [ZBXNEXT-6571] added templates for APC UPSs Galaxy 3500, Smart-UPS, Smart-UPS SRT, Symmetra RM
Diffstat (limited to 'templates')
20 files changed, 15024 insertions, 27 deletions
diff --git a/templates/power/apc/apc_ups_galaxy_3500_snmp/README.md b/templates/power/apc/apc_ups_galaxy_3500_snmp/README.md new file mode 100644 index 00000000000..5719bc1dec2 --- /dev/null +++ b/templates/power/apc/apc_ups_galaxy_3500_snmp/README.md @@ -0,0 +1,159 @@ + +# APC UPS Galaxy 3500 SNMP + +## Overview + +For Zabbix version: 5.4 and higher +The template to monitor APC UPS Galaxy 3500 by Zabbix SNMP agent. +Note: please, use the latest version of the firmware for your NMC in order for the template to work correctly. + + + +This template was tested on: + +- APC UPS Galaxy 3500 + +## Setup + +> See [Zabbix template operation](https://www.zabbix.com/documentation/5.4/manual/config/templates_out_of_the_box/network_devices) for basic instructions. + +1\. Create a host for APC UPS Galaxy 3500 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} |<p>Minimum battery capacity percentage for trigger expression.</p> |`50` | +|{$BATTERY.TEMP.MAX.WARN} |<p>Maximum battery temperature for trigger expression.</p> |`55` | +|{$ICMP.LOSS.WARN} |<p>-</p> |`20` | +|{$ICMP.RESPONSE_TIME.WARN} |<p>-</p> |`0.15` | +|{$SNMP.TIMEOUT} |<p>The time interval for SNMP agent availability trigger expression.</p> |`5m` | +|{$TIME.PERIOD} |<p>Time period for trigger expression.</p> |`15m` | +|{$UPS.INPUT_FREQ.MAX.WARN} |<p>Maximum input frequency for trigger expression.</p> |`50.3` | +|{$UPS.INPUT_FREQ.MIN.WARN} |<p>Minimum input frequency for trigger expression.</p> |`49.7` | +|{$UPS.INPUT_VOLT.MAX.WARN} |<p>Maximum input voltage for trigger expression.</p> |`243` | +|{$UPS.INPUT_VOLT.MIN.WARN} |<p>Minimum input voltage for trigger expression.</p> |`197` | +|{$UPS.OUTPUT.MAX.WARN} |<p>Maximum output load in % for trigger expression.</p> |`80` | + +## Template links + +There are no template links in this template. + +## Discovery rules + +|Name|Description|Type|Key and additional info| +|----|-----------|----|----| +|Input phases discovery |<p>The input phase identifier. OID upsPhaseInputPhaseIndex.1.1</p> |SNMP |input.phases.discovery | +|Output phases discovery |<p>The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1</p> |SNMP |output.phases.discovery | +|External battery packs discovery | |SNMP |battery.packs.discovery<p>**Filter**:</p>AND <p>- A: {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`</p> | +|External bad battery packs discovery |<p>Discovery of the number of external defective battery packs.</p> |SNMP |battery.packs.bad.discovery | +|External sensor port 1 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor1.discovery | +|External sensor port 2 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor2.discovery | + +## Items collected + +|Group|Name|Description|Type|Key and additional info| +|-----|----|-----------|----|---------------------| +|General |Model |<p>MIB: PowerNet-MIB</p><p>The UPS model name (e.g. 'APC Smart-UPS 600').</p> |SNMP |system.model[upsBasicIdentModel]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Serial number |<p>MIB: PowerNet-MIB</p><p>An 8-character string identifying the serial number of</p><p> the UPS internal microprocessor. This number is set at</p><p> the factory. NOTE: This number does NOT correspond to</p><p> the serial number on the rear of the UPS.</p> |SNMP |system.sn[upsAdvIdentSerialNumber]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery status |<p>MIB: PowerNet-MIB</p><p>The status of the UPS batteries. A batteryLow(3) value</p><p> indicates the UPS will be unable to sustain the current</p><p> load, and its services will be lost if power is not restored.</p><p> The amount of run time in reserve at the time of low battery</p><p> can be configured by the upsAdvConfigLowBatteryRunTime.</p><p> A batteryInFaultCondition(4)value indicates that a battery</p><p> installed has an internal error condition.</p> |SNMP |battery.status[upsBasicBatteryStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsHighPrecBatteryCapacity]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery runtime remaining |<p>MIB: PowerNet-MIB</p><p>The UPS battery run time remaining before battery</p><p> exhaustion.</p> |SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery voltage |<p>MIB: PowerNet-MIB</p><p>The actual battery bus voltage in Volts.</p> |SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery last replace date |<p>MIB: PowerNet-MIB</p><p>The date when the UPS system's batteries were last replaced</p><p> in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value</p><p> is originally set at the factory. When the UPS batteries</p><p> are replaced, this value should be reset by the administrator.</p><p> For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.</p> |SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery replace indicator |<p>MIB: PowerNet-MIB</p><p>Indicates whether the UPS batteries need replacement.</p> |SNMP |battery.replace_indicator[upsAdvBatteryReplaceIndicator]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |External battery packs count |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS. If</p><p> the UPS does not use smart cells then the agent reports</p><p> ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_count[upsAdvBatteryNumOfBattPacks]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery temperature |<p>MIB: PowerNet-MIB</p><p>The current internal UPS temperature in Celsius.</p><p> Temperatures below zero read as 0.</p> |SNMP |battery.temperature[upsHighPrecBatteryTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input voltage |<p>MIB: PowerNet-MIB</p><p>The current utility line voltage in VAC.</p> |SNMP |input.voltage[upsHighPrecInputLineVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input frequency |<p>MIB: PowerNet-MIB</p><p>The current input frequency to the UPS system in Hz.</p> |SNMP |input.frequency[upsHighPrecInputFrequency]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input fail cause |<p>MIB: PowerNet-MIB</p><p>The reason for the occurrence of the last transfer to UPS</p><p>battery power. The variable is set to:</p><p>- noTransfer(1) -- if there is no transfer yet.</p><p>- highLineVoltage(2) -- if the transfer to battery is caused</p><p>by an over voltage greater than the high transfer voltage.</p><p>- brownout(3) -- if the duration of the outage is greater than</p><p>five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- blackout(4) -- if the duration of the outage is greater than five</p><p>seconds and the line voltage is between 40% of the rated</p><p>output voltage and ground.</p><p>- smallMomentarySag(5) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- deepMomentarySag(6) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and ground. The variable is set to</p><p>- smallMomentarySpike(7) -- if the line failure is caused by a</p><p>rate of change of input voltage less than ten volts per cycle.</p><p>- largeMomentarySpike(8) -- if the line failure is caused by</p><p>a rate of change of input voltage greater than ten volts per cycle.</p><p>- selfTest(9) -- if the UPS was commanded to do a self test.</p><p>- rateOfVoltageChange(10) -- if the failure is due to the rate of change of</p><p>the line voltage.</p> |SNMP |input.fail[upsAdvInputLineFailCause]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage of the UPS system in VAC.</p> |SNMP |output.voltage[upsHighPrecOutputVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output load |<p>MIB: PowerNet-MIB</p><p>The current UPS load expressed as percentage</p><p>of rated capacity.</p> |SNMP |output.load[upsHighPrecOutputLoad]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output current |<p>MIB: PowerNet-MIB</p><p>The current in amperes drawn by the load on the UPS.</p> |SNMP |output.current[upsHighPrecOutputCurrent]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output status |<p>MIB: PowerNet-MIB</p><p>The current state of the UPS. If the UPS is unable to</p><p> determine the state of the UPS this variable is set</p><p> to unknown(1).</p><p>During self-test most UPSes report onBattery(3) but</p><p> some that support it will report onBatteryTest(15).</p><p> To determine self-test status across all UPSes, refer</p><p> to the upsBasicStateOutputState OID.</p> |SNMP |output.status[upsBasicOutputStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |SNMP traps (fallback) |<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p> |SNMP_TRAP |snmptrap.fallback | +|General |System location |<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet,</p><p>3rd floor'). If the location is unknown, the value is the zero-length string.</p> |SNMP |system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System contact details |<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed</p><p>node, together with information on how to contact this person. If no contact</p><p>information is known, the value is the zero-length string.</p> |SNMP |system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |System object ID |<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management</p><p>subsystem contained in the entity. This value is allocated within the SMI enterprises</p><p>subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what</p><p>kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was</p><p>assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1</p><p>to its `Fred Router'.</p> |SNMP |system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System name |<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By</p><p>convention, this is the node's fully-qualified domain name. If the name is unknown,</p><p>the value is the zero-length string.</p> |SNMP |system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |{#PHASEINDEX}: Phase input voltage |<p>MIB: PowerNet-MIB</p><p>The input voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase input current |<p>MIB: PowerNet-MIB</p><p>The input current in 0.1 amperes, or -0.1 if it's</p><p> unsupported by this UPS.</p> |SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output current |<p>MIB: PowerNet-MIB</p><p>The output current in 0.1 amperes drawn</p><p> by the load on the UPS, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output load, % |<p>MIB: PowerNet-MIB</p><p>The percentage of the UPS load capacity in VA at</p><p> redundancy @ (n + x) presently being used on this</p><p> output phase, or -1 if it's unsupported by this UPS.</p> |SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |<p>MIB: PowerNet-MIB</p><p>The battery cartridge status.</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |<p>MIB: PowerNet-MIB</p><p>The battery pack temperature in Celsius.</p> |SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |<p>MIB: PowerNet-MIB</p><p>The battery pack serial number.</p> |SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date |<p>MIB: PowerNet-MIB</p><p>The battery cartridge estimated battery replace date.</p> |SNMP |battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health |<p>MIB: PowerNet-MIB</p><p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |SNMP |battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#SNMPINDEX}: External battery packs bad |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS that</p><p>are defective. If the UPS does not use smart cells then the</p><p>agent reports ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Status |Uptime |<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management</p><p>portion of the system was last re-initialized.</p> |SNMP |system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p> | +|Status |SNMP agent availability |<p>-</p> |INTERNAL |zabbix[host,snmp,available] | +|Status |ICMP ping |<p>-</p> |SIMPLE |icmpping | +|Status |ICMP loss |<p>-</p> |SIMPLE |icmppingloss | +|Status |ICMP response time |<p>-</p> |SIMPLE |icmppingsec | + +## Triggers + +|Name|Description|Expression|Severity|Dependencies and additional info| +|----|-----------|----|----|----| +|Battery has an internal error condition |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=4` |AVERAGE | | +|Battery is Low |<p>The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=3` |AVERAGE | | +|Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%) | |`{TEMPLATE_NAME:battery.capacity[upsHighPrecBatteryCapacity].last()} < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | +|Battery needs replacement |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.replace_indicator[upsAdvBatteryReplaceIndicator].last()}=2` |HIGH | | +|Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryTemperature].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | +|Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})` |HIGH | | +|Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD}) |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:output.load[upsHighPrecOutputLoad].min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}` |HIGH | | +|UPS is Timed Sleeping | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=5` |AVERAGE | | +|UPS is Switched Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=9` |AVERAGE | | +|UPS is Software Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=6` |AVERAGE | | +|UPS is Sleeping Until Power Return | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=11` |AVERAGE | | +|UPS is Rebooting | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=8` |AVERAGE | | +|UPS is On Smart Trim | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=12` |AVERAGE | | +|UPS is on Smart Boost | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=4` |AVERAGE | | +|UPS is on battery | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=3` |AVERAGE | | +|UPS is Off | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=7` |AVERAGE | | +|UPS is Emergency Static Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=16` |AVERAGE | | +|UPS is Hardware Failure Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=10` |AVERAGE | | +|System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=0` |WARNING | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |<p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |`{TEMPLATE_NAME:battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0)[0|1]{15}$")}=1` |WARNING | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=3` |HIGH | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=3` |HIGH | | +|{HOST.NAME} has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> | +|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`{TEMPLATE_NAME:icmpping.max(#3)}=0` |HIGH | | +|High ICMP ping loss |<p>-</p> |`{TEMPLATE_NAME:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {TEMPLATE_NAME:icmppingloss.min(5m)}<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|High ICMP ping response time |<p>-</p> |`{TEMPLATE_NAME:icmppingsec.avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> | + +## Feedback + +Please report any issues with the template at https://support.zabbix.com + +You can also provide a 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). + diff --git a/templates/power/apc/apc_ups_galaxy_3500_snmp/template_power_apc_ups_galaxy_3500_snmp.yaml b/templates/power/apc/apc_ups_galaxy_3500_snmp/template_power_apc_ups_galaxy_3500_snmp.yaml new file mode 100644 index 00000000000..c7c910f8606 --- /dev/null +++ b/templates/power/apc/apc_ups_galaxy_3500_snmp/template_power_apc_ups_galaxy_3500_snmp.yaml @@ -0,0 +1,1498 @@ +zabbix_export: + version: '5.4' + date: '2021-03-24T17:25:41Z' + groups: + - + name: Templates/Power + templates: + - + template: 'APC UPS Galaxy 3500 SNMP' + name: 'APC UPS Galaxy 3500 SNMP' + description: | + Template Power APC UPS Galaxy 3500 + + MIBs used: + PowerNet-MIB + SNMPv2-MIB + + You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups + + Template tooling version used: 0.38 + groups: + - + name: Templates/Power + applications: + - + name: General + - + name: Status + items: + - + name: 'Battery capacity' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.1.0 + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The remaining battery capacity expressed as + percentage of full capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' + opdata: 'Current capacity: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'External battery packs count' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.5.0 + key: 'battery.external_packs_count[upsAdvBatteryNumOfBattPacks]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery last replace date' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.3.0 + key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery replace indicator' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.4.0 + key: 'battery.replace_indicator[upsAdvBatteryReplaceIndicator]' + history: 7d + description: | + MIB: PowerNet-MIB + Indicates whether the UPS batteries need replacement. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=2' + name: 'Battery needs replacement' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Battery runtime remaining' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.3.0 + key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' + history: 7d + value_type: FLOAT + units: s + description: | + MIB: PowerNet-MIB + The UPS battery run time remaining before battery + exhaustion. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.1.0 + key: 'battery.status[upsBasicBatteryStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=4' + name: 'Battery has an internal error condition' + priority: AVERAGE + description: 'A battery installed has an internal error condition.' + - + expression: '{last()}=3' + name: 'Battery is Low' + priority: AVERAGE + description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' + - + name: 'Battery temperature' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.2.0 + key: 'battery.temperature[upsHighPrecBatteryTemperature]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The current internal UPS temperature in Celsius. + Temperatures below zero read as 0. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Battery voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.4.0 + key: 'battery.voltage[upsHighPrecBatteryActualVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The actual battery bus voltage in Volts. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'ICMP ping' + type: SIMPLE + key: icmpping + history: 1w + applications: + - + name: Status + valuemap: + name: 'Service state' + triggers: + - + expression: '{max(#3)}=0' + name: 'Unavailable by ICMP ping' + priority: HIGH + description: 'Last three attempts returned timeout. Please check device connectivity.' + - + name: 'ICMP loss' + type: SIMPLE + key: icmppingloss + history: 1w + value_type: FLOAT + units: '%' + applications: + - + name: Status + triggers: + - + expression: '{min(5m)}>{$ICMP.LOSS.WARN} and {min(5m)}<100' + name: 'High ICMP ping loss' + opdata: 'Loss: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC UPS Galaxy 3500 SNMP:icmpping.max(#3)}=0' + - + name: 'ICMP response time' + type: SIMPLE + key: icmppingsec + history: 1w + value_type: FLOAT + units: s + applications: + - + name: Status + triggers: + - + expression: '{avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}' + name: 'High ICMP ping response time' + opdata: 'Value: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'High ICMP ping loss' + expression: '{APC UPS Galaxy 3500 SNMP:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {APC UPS Galaxy 3500 SNMP:icmppingloss.min(5m)}<100' + - + name: 'Unavailable by ICMP ping' + expression: '{APC UPS Galaxy 3500 SNMP:icmpping.max(#3)}=0' + - + name: 'Input fail cause' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.2.5.0 + key: 'input.fail[upsAdvInputLineFailCause]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Input frequency' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.4.0 + key: 'input.frequency[upsHighPrecInputFrequency]' + history: 7d + value_type: FLOAT + units: Hz + description: | + MIB: PowerNet-MIB + The current input frequency to the UPS system in Hz. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' + opdata: 'Current frequency: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Input voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.1.0 + key: 'input.voltage[upsHighPrecInputLineVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The current utility line voltage in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.4.0 + key: 'output.current[upsHighPrecOutputCurrent]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The current in amperes drawn by the load on the UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Output load' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.3.0 + key: 'output.load[upsHighPrecOutputLoad]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The current UPS load expressed as percentage + of rated capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' + opdata: 'Current load: {ITEM.LASTVALUE1}' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Output status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.1.1.0 + key: 'output.status[upsBasicOutputStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=16' + name: 'UPS is Emergency Static Bypass' + priority: AVERAGE + - + expression: '{last()}=10' + name: 'UPS is Hardware Failure Bypass' + priority: AVERAGE + - + expression: '{last()}=7' + name: 'UPS is Off' + priority: AVERAGE + - + expression: '{last()}=3' + name: 'UPS is on battery' + priority: AVERAGE + - + expression: '{last()}=4' + name: 'UPS is on Smart Boost' + priority: AVERAGE + - + expression: '{last()}=12' + name: 'UPS is On Smart Trim' + priority: AVERAGE + - + expression: '{last()}=8' + name: 'UPS is Rebooting' + priority: AVERAGE + - + expression: '{last()}=11' + name: 'UPS is Sleeping Until Power Return' + priority: AVERAGE + - + expression: '{last()}=6' + name: 'UPS is Software Bypass' + priority: AVERAGE + - + expression: '{last()}=9' + name: 'UPS is Switched Bypass' + priority: AVERAGE + - + expression: '{last()}=5' + name: 'UPS is Timed Sleeping' + priority: AVERAGE + - + name: 'Output voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.1.0 + key: 'output.voltage[upsHighPrecOutputVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage of the UPS system in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'SNMP traps (fallback)' + type: SNMP_TRAP + key: snmptrap.fallback + history: 2w + trends: '0' + value_type: LOG + description: 'Item is used to collect all SNMP traps unmatched by other snmptrap items' + applications: + - + name: General + logtimefmt: 'hh:mm:sszyyyy/MM/dd' + - + name: 'System contact details' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.4.0 + key: 'system.contact[sysContact.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: CONTACT + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System description' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.1.0 + key: 'system.descr[sysDescr.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System location' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.6.0 + key: 'system.location[sysLocation.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: LOCATION + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: Model + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.1.1.0 + key: 'system.model[upsBasicIdentModel]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The UPS model name (e.g. 'APC Smart-UPS 600'). + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'System name' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.5.0 + key: system.name + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: NAME + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + triggers: + - + expression: '{diff()}=1 and {strlen()}>0' + name: 'System name has changed (new name: {ITEM.VALUE})' + priority: INFO + description: 'System name has changed. Ack to close.' + manual_close: 'YES' + - + name: 'System object ID' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.2.0 + key: 'system.objectid[sysObjectID.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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'. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: 'Serial number' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.2.3.0 + key: 'system.sn[upsAdvIdentSerialNumber]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: Uptime + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.3.0 + key: 'system.uptime[sysUpTime.0]' + delay: 30s + history: 2w + trends: 0d + units: uptime + description: | + MIB: SNMPv2-MIB + The time (in hundredths of a second) since the network management + portion of the system was last re-initialized. + applications: + - + name: Status + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + triggers: + - + expression: '{last()}<10m' + name: '{HOST.NAME} has been restarted (uptime < 10m)' + priority: WARNING + description: 'Uptime is less than 10 minutes' + manual_close: 'YES' + dependencies: + - + name: 'No SNMP data collection' + expression: '{APC UPS Galaxy 3500 SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + - + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' + history: 7d + applications: + - + name: Status + valuemap: + name: zabbix.host.available + triggers: + - + expression: '{max({$SNMP.TIMEOUT})}=0' + name: 'No SNMP data collection' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.' + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC UPS Galaxy 3500 SNMP:icmpping.max(#3)}=0' + discovery_rules: + - + name: 'External bad battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_PACKS},1.3.6.1.4.1.318.1.1.1.2.2.6]' + key: battery.packs.bad.discovery + delay: 1h + description: 'Discovery of the number of external defective battery packs.' + item_prototypes: + - + name: '{#SNMPINDEX}: External battery packs bad' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.6.0 + key: 'battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#CARTRIDGE_STATUS},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7,{#BATTERY_PACK},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.1,{#CARTRIDGE_INDEX},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.2]' + key: battery.packs.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - + macro: '{#CARTRIDGE_STATUS}' + value: ^$ + operator: NOT_MATCHES_REGEX + formulaid: A + item_prototypes: + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.8.{#SNMPINDEX}' + key: 'battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery cartridge estimated battery replace date. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7.{#SNMPINDEX}' + key: 'battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0)[0|1]{15}$")}=1' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.10.{#SNMPINDEX}' + key: 'battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0{16})$")}=0' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.5.{#SNMPINDEX}' + key: 'battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The battery pack temperature in Celsius. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.4.{#SNMPINDEX}' + key: 'system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery pack serial number. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External sensor port 1 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR1_NAME},1.3.6.1.4.1.318.1.1.25.1.2.1.3]' + key: external.sensor1.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR1_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR1_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR1_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'External sensor port 2 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR2_NAME},1.3.6.1.4.1.318.1.1.25.1.2.2.3]' + key: external.sensor2.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR2_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR2_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR2_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'Input phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.2.3.1.2.1.1]' + key: input.phases.discovery + delay: 1h + description: 'The input phase identifier. OID upsPhaseInputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase input current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.6.1.1.{#PHASEINDEX}' + key: 'phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The input current in 0.1 amperes, or -0.1 if it's + unsupported by this UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase input voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The input voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1]' + key: output.phases.discovery + delay: 1h + description: 'The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase output current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.4.1.1.{#PHASEINDEX}' + key: 'phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output load, %' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.10.1.1.{#PHASEINDEX}' + key: 'phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + macros: + - + macro: '{$BATTERY.CAPACITY.MIN.WARN}' + value: '50' + description: 'Minimum battery capacity percentage for trigger expression.' + - + macro: '{$BATTERY.TEMP.MAX.WARN}' + value: '55' + description: 'Maximum battery temperature for trigger expression.' + - + macro: '{$ICMP.LOSS.WARN}' + value: '20' + - + macro: '{$ICMP.RESPONSE_TIME.WARN}' + value: '0.15' + - + macro: '{$SNMP.TIMEOUT}' + value: 5m + description: 'The time interval for SNMP agent availability trigger expression.' + - + macro: '{$TIME.PERIOD}' + value: 15m + description: 'Time period for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MAX.WARN}' + value: '50.3' + description: 'Maximum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MIN.WARN}' + value: '49.7' + description: 'Minimum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MAX.WARN}' + value: '243' + description: 'Maximum input voltage for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MIN.WARN}' + value: '197' + description: 'Minimum input voltage for trigger expression.' + - + macro: '{$UPS.OUTPUT.MAX.WARN}' + value: '80' + description: 'Maximum output load in % for trigger expression.' + valuemaps: + - + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + mappings: + - + value: '1' + newvalue: Normal + - + value: '2' + newvalue: Warning + - + value: '3' + newvalue: Critical + - + value: '4' + newvalue: 'Not applicable' + - + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + mappings: + - + value: '1' + newvalue: 'no Battery Needs Replacing' + - + value: '2' + newvalue: 'battery Needs Replacing' + - + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + mappings: + - + value: '1' + newvalue: 'no Transfer' + - + value: '2' + newvalue: 'High Line Voltage' + - + value: '3' + newvalue: Brownout + - + value: '4' + newvalue: Blackout + - + value: '5' + newvalue: 'Small Momentary Sag' + - + value: '6' + newvalue: 'Deep Momentary Sag' + - + value: '7' + newvalue: 'Small Momentary Spike' + - + value: '8' + newvalue: 'Large Momentary Spike' + - + value: '9' + newvalue: 'Self Test' + - + value: '10' + newvalue: 'Rate of Voltage Change' + - + name: 'PowerNet-MIB::upsBasicBatteryStatus' + mappings: + - + value: '1' + newvalue: Unknown + - + value: '2' + newvalue: Normal + - + value: '3' + newvalue: Low + - + value: '4' + newvalue: 'In Fault Condition' + - + name: 'Service state' + mappings: + - + value: '0' + newvalue: Down + - + value: '1' + newvalue: Up + - + name: zabbix.host.available + mappings: + - + value: '0' + newvalue: 'not available' + - + value: '1' + newvalue: available + - + value: '2' + newvalue: unknown + graphs: + - + name: 'Capacity of the UPS batteries' + type: PIE + graph_items: + - + color: 1A7C11 + item: + host: 'APC UPS Galaxy 3500 SNMP' + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + - + name: Output + graph_items: + - + color: 1A7C11 + item: + host: 'APC UPS Galaxy 3500 SNMP' + key: 'output.current[upsHighPrecOutputCurrent]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC UPS Galaxy 3500 SNMP' + key: 'output.load[upsHighPrecOutputLoad]' + - + name: Voltage + graph_items: + - + color: 1A7C11 + item: + host: 'APC UPS Galaxy 3500 SNMP' + key: 'input.voltage[upsHighPrecInputLineVoltage]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC UPS Galaxy 3500 SNMP' + key: 'output.voltage[upsHighPrecOutputVoltage]' diff --git a/templates/power/apc/apc_ups_smart_2200_rm_snmp/README.md b/templates/power/apc/apc_ups_smart_2200_rm_snmp/README.md new file mode 100644 index 00000000000..e49c5229d06 --- /dev/null +++ b/templates/power/apc/apc_ups_smart_2200_rm_snmp/README.md @@ -0,0 +1,159 @@ + +# APC Smart-UPS 2200 RM SNMP + +## Overview + +For Zabbix version: 5.4 and higher +The template to monitor APC Smart-UPS 2200 RM by Zabbix SNMP agent. +Note: please, use the latest version of the firmware for your NMC in order for the template to work correctly. + + + +This template was tested on: + +- APC Smart-UPS 2200 RM + +## Setup + +> See [Zabbix template operation](https://www.zabbix.com/documentation/5.4/manual/config/templates_out_of_the_box/network_devices) for basic instructions. + +1\. Create a host for APC Smart-UPS 2200 RM 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} |<p>Minimum battery capacity percentage for trigger expression.</p> |`50` | +|{$BATTERY.TEMP.MAX.WARN} |<p>Maximum battery temperature for trigger expression.</p> |`55` | +|{$ICMP.LOSS.WARN} |<p>-</p> |`20` | +|{$ICMP.RESPONSE_TIME.WARN} |<p>-</p> |`0.15` | +|{$SNMP.TIMEOUT} |<p>The time interval for SNMP agent availability trigger expression.</p> |`5m` | +|{$TIME.PERIOD} |<p>Time period for trigger expression.</p> |`15m` | +|{$UPS.INPUT_FREQ.MAX.WARN} |<p>Maximum input frequency for trigger expression.</p> |`50.3` | +|{$UPS.INPUT_FREQ.MIN.WARN} |<p>Minimum input frequency for trigger expression.</p> |`49.7` | +|{$UPS.INPUT_VOLT.MAX.WARN} |<p>Maximum input voltage for trigger expression.</p> |`243` | +|{$UPS.INPUT_VOLT.MIN.WARN} |<p>Minimum input voltage for trigger expression.</p> |`197` | +|{$UPS.OUTPUT.MAX.WARN} |<p>Maximum output load in % for trigger expression.</p> |`80` | + +## Template links + +There are no template links in this template. + +## Discovery rules + +|Name|Description|Type|Key and additional info| +|----|-----------|----|----| +|Input phases discovery |<p>The input phase identifier. OID upsPhaseInputPhaseIndex.1.1</p> |SNMP |input.phases.discovery | +|Output phases discovery |<p>The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1</p> |SNMP |output.phases.discovery | +|External battery packs discovery | |SNMP |battery.packs.discovery<p>**Filter**:</p>AND <p>- A: {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`</p> | +|External bad battery packs discovery |<p>Discovery of the number of external defective battery packs.</p> |SNMP |battery.packs.bad.discovery | +|External sensor port 1 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor1.discovery | +|External sensor port 2 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor2.discovery | + +## Items collected + +|Group|Name|Description|Type|Key and additional info| +|-----|----|-----------|----|---------------------| +|General |Model |<p>MIB: PowerNet-MIB</p><p>The UPS model name (e.g. 'APC Smart-UPS 600').</p> |SNMP |system.model[upsBasicIdentModel]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Serial number |<p>MIB: PowerNet-MIB</p><p>An 8-character string identifying the serial number of</p><p> the UPS internal microprocessor. This number is set at</p><p> the factory. NOTE: This number does NOT correspond to</p><p> the serial number on the rear of the UPS.</p> |SNMP |system.sn[upsAdvIdentSerialNumber]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery status |<p>MIB: PowerNet-MIB</p><p>The status of the UPS batteries. A batteryLow(3) value</p><p> indicates the UPS will be unable to sustain the current</p><p> load, and its services will be lost if power is not restored.</p><p> The amount of run time in reserve at the time of low battery</p><p> can be configured by the upsAdvConfigLowBatteryRunTime.</p><p> A batteryInFaultCondition(4)value indicates that a battery</p><p> installed has an internal error condition.</p> |SNMP |battery.status[upsBasicBatteryStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsHighPrecBatteryCapacity]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery runtime remaining |<p>MIB: PowerNet-MIB</p><p>The UPS battery run time remaining before battery</p><p> exhaustion.</p> |SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery voltage |<p>MIB: PowerNet-MIB</p><p>The actual battery bus voltage in Volts.</p> |SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery last replace date |<p>MIB: PowerNet-MIB</p><p>The date when the UPS system's batteries were last replaced</p><p> in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value</p><p> is originally set at the factory. When the UPS batteries</p><p> are replaced, this value should be reset by the administrator.</p><p> For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.</p> |SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery replace indicator |<p>MIB: PowerNet-MIB</p><p>Indicates whether the UPS batteries need replacement.</p> |SNMP |battery.replace_indicator[upsAdvBatteryReplaceIndicator]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |External battery packs count |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS. If</p><p> the UPS does not use smart cells then the agent reports</p><p> ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_count[upsAdvBatteryNumOfBattPacks]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery temperature |<p>MIB: PowerNet-MIB</p><p>The current internal UPS temperature in Celsius.</p><p> Temperatures below zero read as 0.</p> |SNMP |battery.temperature[upsHighPrecBatteryTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input voltage |<p>MIB: PowerNet-MIB</p><p>The current utility line voltage in VAC.</p> |SNMP |input.voltage[upsHighPrecInputLineVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input frequency |<p>MIB: PowerNet-MIB</p><p>The current input frequency to the UPS system in Hz.</p> |SNMP |input.frequency[upsHighPrecInputFrequency]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input fail cause |<p>MIB: PowerNet-MIB</p><p>The reason for the occurrence of the last transfer to UPS</p><p>battery power. The variable is set to:</p><p>- noTransfer(1) -- if there is no transfer yet.</p><p>- highLineVoltage(2) -- if the transfer to battery is caused</p><p>by an over voltage greater than the high transfer voltage.</p><p>- brownout(3) -- if the duration of the outage is greater than</p><p>five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- blackout(4) -- if the duration of the outage is greater than five</p><p>seconds and the line voltage is between 40% of the rated</p><p>output voltage and ground.</p><p>- smallMomentarySag(5) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- deepMomentarySag(6) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and ground. The variable is set to</p><p>- smallMomentarySpike(7) -- if the line failure is caused by a</p><p>rate of change of input voltage less than ten volts per cycle.</p><p>- largeMomentarySpike(8) -- if the line failure is caused by</p><p>a rate of change of input voltage greater than ten volts per cycle.</p><p>- selfTest(9) -- if the UPS was commanded to do a self test.</p><p>- rateOfVoltageChange(10) -- if the failure is due to the rate of change of</p><p>the line voltage.</p> |SNMP |input.fail[upsAdvInputLineFailCause]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage of the UPS system in VAC.</p> |SNMP |output.voltage[upsHighPrecOutputVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output load |<p>MIB: PowerNet-MIB</p><p>The current UPS load expressed as percentage</p><p>of rated capacity.</p> |SNMP |output.load[upsHighPrecOutputLoad]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output current |<p>MIB: PowerNet-MIB</p><p>The current in amperes drawn by the load on the UPS.</p> |SNMP |output.current[upsHighPrecOutputCurrent]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output status |<p>MIB: PowerNet-MIB</p><p>The current state of the UPS. If the UPS is unable to</p><p> determine the state of the UPS this variable is set</p><p> to unknown(1).</p><p>During self-test most UPSes report onBattery(3) but</p><p> some that support it will report onBatteryTest(15).</p><p> To determine self-test status across all UPSes, refer</p><p> to the upsBasicStateOutputState OID.</p> |SNMP |output.status[upsBasicOutputStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |SNMP traps (fallback) |<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p> |SNMP_TRAP |snmptrap.fallback | +|General |System location |<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet,</p><p>3rd floor'). If the location is unknown, the value is the zero-length string.</p> |SNMP |system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System contact details |<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed</p><p>node, together with information on how to contact this person. If no contact</p><p>information is known, the value is the zero-length string.</p> |SNMP |system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |System object ID |<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management</p><p>subsystem contained in the entity. This value is allocated within the SMI enterprises</p><p>subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what</p><p>kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was</p><p>assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1</p><p>to its `Fred Router'.</p> |SNMP |system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System name |<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By</p><p>convention, this is the node's fully-qualified domain name. If the name is unknown,</p><p>the value is the zero-length string.</p> |SNMP |system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |{#PHASEINDEX}: Phase input voltage |<p>MIB: PowerNet-MIB</p><p>The input voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase input current |<p>MIB: PowerNet-MIB</p><p>The input current in 0.1 amperes, or -0.1 if it's</p><p> unsupported by this UPS.</p> |SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output current |<p>MIB: PowerNet-MIB</p><p>The output current in 0.1 amperes drawn</p><p> by the load on the UPS, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output load, % |<p>MIB: PowerNet-MIB</p><p>The percentage of the UPS load capacity in VA at</p><p> redundancy @ (n + x) presently being used on this</p><p> output phase, or -1 if it's unsupported by this UPS.</p> |SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |<p>MIB: PowerNet-MIB</p><p>The battery cartridge status.</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |<p>MIB: PowerNet-MIB</p><p>The battery pack temperature in Celsius.</p> |SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |<p>MIB: PowerNet-MIB</p><p>The battery pack serial number.</p> |SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date |<p>MIB: PowerNet-MIB</p><p>The battery cartridge estimated battery replace date.</p> |SNMP |battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health |<p>MIB: PowerNet-MIB</p><p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |SNMP |battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#SNMPINDEX}: External battery packs bad |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS that</p><p>are defective. If the UPS does not use smart cells then the</p><p>agent reports ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Status |Uptime |<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management</p><p>portion of the system was last re-initialized.</p> |SNMP |system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p> | +|Status |SNMP agent availability |<p>-</p> |INTERNAL |zabbix[host,snmp,available] | +|Status |ICMP ping |<p>-</p> |SIMPLE |icmpping | +|Status |ICMP loss |<p>-</p> |SIMPLE |icmppingloss | +|Status |ICMP response time |<p>-</p> |SIMPLE |icmppingsec | + +## Triggers + +|Name|Description|Expression|Severity|Dependencies and additional info| +|----|-----------|----|----|----| +|Battery has an internal error condition |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=4` |AVERAGE | | +|Battery is Low |<p>The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=3` |AVERAGE | | +|Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%) | |`{TEMPLATE_NAME:battery.capacity[upsHighPrecBatteryCapacity].last()} < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | +|Battery needs replacement |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.replace_indicator[upsAdvBatteryReplaceIndicator].last()}=2` |HIGH | | +|Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryTemperature].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | +|Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})` |HIGH | | +|Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD}) |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:output.load[upsHighPrecOutputLoad].min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}` |HIGH | | +|UPS is Timed Sleeping | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=5` |AVERAGE | | +|UPS is Switched Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=9` |AVERAGE | | +|UPS is Software Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=6` |AVERAGE | | +|UPS is Sleeping Until Power Return | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=11` |AVERAGE | | +|UPS is Rebooting | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=8` |AVERAGE | | +|UPS is On Smart Trim | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=12` |AVERAGE | | +|UPS is on Smart Boost | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=4` |AVERAGE | | +|UPS is on battery | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=3` |AVERAGE | | +|UPS is Off | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=7` |AVERAGE | | +|UPS is Emergency Static Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=16` |AVERAGE | | +|UPS is Hardware Failure Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=10` |AVERAGE | | +|System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=0` |WARNING | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |<p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |`{TEMPLATE_NAME:battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0)[0|1]{15}$")}=1` |WARNING | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=3` |HIGH | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=3` |HIGH | | +|{HOST.NAME} has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> | +|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`{TEMPLATE_NAME:icmpping.max(#3)}=0` |HIGH | | +|High ICMP ping loss |<p>-</p> |`{TEMPLATE_NAME:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {TEMPLATE_NAME:icmppingloss.min(5m)}<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|High ICMP ping response time |<p>-</p> |`{TEMPLATE_NAME:icmppingsec.avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> | + +## Feedback + +Please report any issues with the template at https://support.zabbix.com + +You can also provide a 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). + diff --git a/templates/power/apc/apc_ups_smart_2200_rm_snmp/template_power_apc_ups_smart_2200_rm_snmp.yaml b/templates/power/apc/apc_ups_smart_2200_rm_snmp/template_power_apc_ups_smart_2200_rm_snmp.yaml new file mode 100644 index 00000000000..aa50adadcaf --- /dev/null +++ b/templates/power/apc/apc_ups_smart_2200_rm_snmp/template_power_apc_ups_smart_2200_rm_snmp.yaml @@ -0,0 +1,1498 @@ +zabbix_export: + version: '5.4' + date: '2021-03-24T17:27:21Z' + groups: + - + name: Templates/Power + templates: + - + template: 'APC Smart-UPS 2200 RM SNMP' + name: 'APC Smart-UPS 2200 RM SNMP' + description: | + Template Power APC Smart-UPS 2200 RM + + MIBs used: + PowerNet-MIB + SNMPv2-MIB + + You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups + + Template tooling version used: 0.38 + groups: + - + name: Templates/Power + applications: + - + name: General + - + name: Status + items: + - + name: 'Battery capacity' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.1.0 + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The remaining battery capacity expressed as + percentage of full capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' + opdata: 'Current capacity: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'External battery packs count' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.5.0 + key: 'battery.external_packs_count[upsAdvBatteryNumOfBattPacks]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery last replace date' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.3.0 + key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery replace indicator' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.4.0 + key: 'battery.replace_indicator[upsAdvBatteryReplaceIndicator]' + history: 7d + description: | + MIB: PowerNet-MIB + Indicates whether the UPS batteries need replacement. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=2' + name: 'Battery needs replacement' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Battery runtime remaining' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.3.0 + key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' + history: 7d + value_type: FLOAT + units: s + description: | + MIB: PowerNet-MIB + The UPS battery run time remaining before battery + exhaustion. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.1.0 + key: 'battery.status[upsBasicBatteryStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=4' + name: 'Battery has an internal error condition' + priority: AVERAGE + description: 'A battery installed has an internal error condition.' + - + expression: '{last()}=3' + name: 'Battery is Low' + priority: AVERAGE + description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' + - + name: 'Battery temperature' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.2.0 + key: 'battery.temperature[upsHighPrecBatteryTemperature]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The current internal UPS temperature in Celsius. + Temperatures below zero read as 0. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Battery voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.4.0 + key: 'battery.voltage[upsHighPrecBatteryActualVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The actual battery bus voltage in Volts. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'ICMP ping' + type: SIMPLE + key: icmpping + history: 1w + applications: + - + name: Status + valuemap: + name: 'Service state' + triggers: + - + expression: '{max(#3)}=0' + name: 'Unavailable by ICMP ping' + priority: HIGH + description: 'Last three attempts returned timeout. Please check device connectivity.' + - + name: 'ICMP loss' + type: SIMPLE + key: icmppingloss + history: 1w + value_type: FLOAT + units: '%' + applications: + - + name: Status + triggers: + - + expression: '{min(5m)}>{$ICMP.LOSS.WARN} and {min(5m)}<100' + name: 'High ICMP ping loss' + opdata: 'Loss: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS 2200 RM SNMP:icmpping.max(#3)}=0' + - + name: 'ICMP response time' + type: SIMPLE + key: icmppingsec + history: 1w + value_type: FLOAT + units: s + applications: + - + name: Status + triggers: + - + expression: '{avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}' + name: 'High ICMP ping response time' + opdata: 'Value: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'High ICMP ping loss' + expression: '{APC Smart-UPS 2200 RM SNMP:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {APC Smart-UPS 2200 RM SNMP:icmppingloss.min(5m)}<100' + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS 2200 RM SNMP:icmpping.max(#3)}=0' + - + name: 'Input fail cause' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.2.5.0 + key: 'input.fail[upsAdvInputLineFailCause]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Input frequency' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.4.0 + key: 'input.frequency[upsHighPrecInputFrequency]' + history: 7d + value_type: FLOAT + units: Hz + description: | + MIB: PowerNet-MIB + The current input frequency to the UPS system in Hz. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' + opdata: 'Current frequency: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Input voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.1.0 + key: 'input.voltage[upsHighPrecInputLineVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The current utility line voltage in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.4.0 + key: 'output.current[upsHighPrecOutputCurrent]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The current in amperes drawn by the load on the UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Output load' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.3.0 + key: 'output.load[upsHighPrecOutputLoad]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The current UPS load expressed as percentage + of rated capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' + opdata: 'Current load: {ITEM.LASTVALUE1}' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Output status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.1.1.0 + key: 'output.status[upsBasicOutputStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=16' + name: 'UPS is Emergency Static Bypass' + priority: AVERAGE + - + expression: '{last()}=10' + name: 'UPS is Hardware Failure Bypass' + priority: AVERAGE + - + expression: '{last()}=7' + name: 'UPS is Off' + priority: AVERAGE + - + expression: '{last()}=3' + name: 'UPS is on battery' + priority: AVERAGE + - + expression: '{last()}=4' + name: 'UPS is on Smart Boost' + priority: AVERAGE + - + expression: '{last()}=12' + name: 'UPS is On Smart Trim' + priority: AVERAGE + - + expression: '{last()}=8' + name: 'UPS is Rebooting' + priority: AVERAGE + - + expression: '{last()}=11' + name: 'UPS is Sleeping Until Power Return' + priority: AVERAGE + - + expression: '{last()}=6' + name: 'UPS is Software Bypass' + priority: AVERAGE + - + expression: '{last()}=9' + name: 'UPS is Switched Bypass' + priority: AVERAGE + - + expression: '{last()}=5' + name: 'UPS is Timed Sleeping' + priority: AVERAGE + - + name: 'Output voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.1.0 + key: 'output.voltage[upsHighPrecOutputVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage of the UPS system in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'SNMP traps (fallback)' + type: SNMP_TRAP + key: snmptrap.fallback + history: 2w + trends: '0' + value_type: LOG + description: 'Item is used to collect all SNMP traps unmatched by other snmptrap items' + applications: + - + name: General + logtimefmt: 'hh:mm:sszyyyy/MM/dd' + - + name: 'System contact details' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.4.0 + key: 'system.contact[sysContact.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: CONTACT + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System description' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.1.0 + key: 'system.descr[sysDescr.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System location' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.6.0 + key: 'system.location[sysLocation.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: LOCATION + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: Model + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.1.1.0 + key: 'system.model[upsBasicIdentModel]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The UPS model name (e.g. 'APC Smart-UPS 600'). + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'System name' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.5.0 + key: system.name + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: NAME + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + triggers: + - + expression: '{diff()}=1 and {strlen()}>0' + name: 'System name has changed (new name: {ITEM.VALUE})' + priority: INFO + description: 'System name has changed. Ack to close.' + manual_close: 'YES' + - + name: 'System object ID' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.2.0 + key: 'system.objectid[sysObjectID.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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'. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: 'Serial number' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.2.3.0 + key: 'system.sn[upsAdvIdentSerialNumber]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: Uptime + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.3.0 + key: 'system.uptime[sysUpTime.0]' + delay: 30s + history: 2w + trends: 0d + units: uptime + description: | + MIB: SNMPv2-MIB + The time (in hundredths of a second) since the network management + portion of the system was last re-initialized. + applications: + - + name: Status + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + triggers: + - + expression: '{last()}<10m' + name: '{HOST.NAME} has been restarted (uptime < 10m)' + priority: WARNING + description: 'Uptime is less than 10 minutes' + manual_close: 'YES' + dependencies: + - + name: 'No SNMP data collection' + expression: '{APC Smart-UPS 2200 RM SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + - + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' + history: 7d + applications: + - + name: Status + valuemap: + name: zabbix.host.available + triggers: + - + expression: '{max({$SNMP.TIMEOUT})}=0' + name: 'No SNMP data collection' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.' + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS 2200 RM SNMP:icmpping.max(#3)}=0' + discovery_rules: + - + name: 'External bad battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_PACKS},1.3.6.1.4.1.318.1.1.1.2.2.6]' + key: battery.packs.bad.discovery + delay: 1h + description: 'Discovery of the number of external defective battery packs.' + item_prototypes: + - + name: '{#SNMPINDEX}: External battery packs bad' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.6.0 + key: 'battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#CARTRIDGE_STATUS},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7,{#BATTERY_PACK},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.1,{#CARTRIDGE_INDEX},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.2]' + key: battery.packs.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - + macro: '{#CARTRIDGE_STATUS}' + value: ^$ + operator: NOT_MATCHES_REGEX + formulaid: A + item_prototypes: + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.8.{#SNMPINDEX}' + key: 'battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery cartridge estimated battery replace date. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7.{#SNMPINDEX}' + key: 'battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0)[0|1]{15}$")}=1' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.10.{#SNMPINDEX}' + key: 'battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0{16})$")}=0' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.5.{#SNMPINDEX}' + key: 'battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The battery pack temperature in Celsius. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.4.{#SNMPINDEX}' + key: 'system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery pack serial number. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External sensor port 1 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR1_NAME},1.3.6.1.4.1.318.1.1.25.1.2.1.3]' + key: external.sensor1.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR1_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR1_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR1_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'External sensor port 2 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR2_NAME},1.3.6.1.4.1.318.1.1.25.1.2.2.3]' + key: external.sensor2.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR2_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR2_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR2_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'Input phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.2.3.1.2.1.1]' + key: input.phases.discovery + delay: 1h + description: 'The input phase identifier. OID upsPhaseInputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase input current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.6.1.1.{#PHASEINDEX}' + key: 'phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The input current in 0.1 amperes, or -0.1 if it's + unsupported by this UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase input voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The input voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1]' + key: output.phases.discovery + delay: 1h + description: 'The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase output current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.4.1.1.{#PHASEINDEX}' + key: 'phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output load, %' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.10.1.1.{#PHASEINDEX}' + key: 'phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + macros: + - + macro: '{$BATTERY.CAPACITY.MIN.WARN}' + value: '50' + description: 'Minimum battery capacity percentage for trigger expression.' + - + macro: '{$BATTERY.TEMP.MAX.WARN}' + value: '55' + description: 'Maximum battery temperature for trigger expression.' + - + macro: '{$ICMP.LOSS.WARN}' + value: '20' + - + macro: '{$ICMP.RESPONSE_TIME.WARN}' + value: '0.15' + - + macro: '{$SNMP.TIMEOUT}' + value: 5m + description: 'The time interval for SNMP agent availability trigger expression.' + - + macro: '{$TIME.PERIOD}' + value: 15m + description: 'Time period for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MAX.WARN}' + value: '50.3' + description: 'Maximum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MIN.WARN}' + value: '49.7' + description: 'Minimum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MAX.WARN}' + value: '243' + description: 'Maximum input voltage for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MIN.WARN}' + value: '197' + description: 'Minimum input voltage for trigger expression.' + - + macro: '{$UPS.OUTPUT.MAX.WARN}' + value: '80' + description: 'Maximum output load in % for trigger expression.' + valuemaps: + - + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + mappings: + - + value: '1' + newvalue: Normal + - + value: '2' + newvalue: Warning + - + value: '3' + newvalue: Critical + - + value: '4' + newvalue: 'Not applicable' + - + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + mappings: + - + value: '1' + newvalue: 'no Battery Needs Replacing' + - + value: '2' + newvalue: 'battery Needs Replacing' + - + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + mappings: + - + value: '1' + newvalue: 'no Transfer' + - + value: '2' + newvalue: 'High Line Voltage' + - + value: '3' + newvalue: Brownout + - + value: '4' + newvalue: Blackout + - + value: '5' + newvalue: 'Small Momentary Sag' + - + value: '6' + newvalue: 'Deep Momentary Sag' + - + value: '7' + newvalue: 'Small Momentary Spike' + - + value: '8' + newvalue: 'Large Momentary Spike' + - + value: '9' + newvalue: 'Self Test' + - + value: '10' + newvalue: 'Rate of Voltage Change' + - + name: 'PowerNet-MIB::upsBasicBatteryStatus' + mappings: + - + value: '1' + newvalue: Unknown + - + value: '2' + newvalue: Normal + - + value: '3' + newvalue: Low + - + value: '4' + newvalue: 'In Fault Condition' + - + name: 'Service state' + mappings: + - + value: '0' + newvalue: Down + - + value: '1' + newvalue: Up + - + name: zabbix.host.available + mappings: + - + value: '0' + newvalue: 'not available' + - + value: '1' + newvalue: available + - + value: '2' + newvalue: unknown + graphs: + - + name: 'Capacity of the UPS batteries' + type: PIE + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS 2200 RM SNMP' + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + - + name: Output + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS 2200 RM SNMP' + key: 'output.current[upsHighPrecOutputCurrent]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS 2200 RM SNMP' + key: 'output.load[upsHighPrecOutputLoad]' + - + name: Voltage + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS 2200 RM SNMP' + key: 'input.voltage[upsHighPrecInputLineVoltage]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS 2200 RM SNMP' + key: 'output.voltage[upsHighPrecOutputVoltage]' diff --git a/templates/power/apc/apc_ups_smart_3000_xlm_snmp/README.md b/templates/power/apc/apc_ups_smart_3000_xlm_snmp/README.md new file mode 100644 index 00000000000..72643db9c92 --- /dev/null +++ b/templates/power/apc/apc_ups_smart_3000_xlm_snmp/README.md @@ -0,0 +1,159 @@ + +# APC Smart-UPS 3000 XLM SNMP + +## Overview + +For Zabbix version: 5.4 and higher +The template to monitor APC Smart-UPS 3000 XLM by Zabbix SNMP agent. +Note: please, use the latest version of the firmware for your NMC in order for the template to work correctly. + + + +This template was tested on: + +- APC Smart-UPS 3000 XLM + +## Setup + +> See [Zabbix template operation](https://www.zabbix.com/documentation/5.4/manual/config/templates_out_of_the_box/network_devices) for basic instructions. + +1\. Create a host for APC Smart-UPS 3000 XLM 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} |<p>Minimum battery capacity percentage for trigger expression.</p> |`50` | +|{$BATTERY.TEMP.MAX.WARN} |<p>Maximum battery temperature for trigger expression.</p> |`55` | +|{$ICMP.LOSS.WARN} |<p>-</p> |`20` | +|{$ICMP.RESPONSE_TIME.WARN} |<p>-</p> |`0.15` | +|{$SNMP.TIMEOUT} |<p>The time interval for SNMP agent availability trigger expression.</p> |`5m` | +|{$TIME.PERIOD} |<p>Time period for trigger expression.</p> |`15m` | +|{$UPS.INPUT_FREQ.MAX.WARN} |<p>Maximum input frequency for trigger expression.</p> |`50.3` | +|{$UPS.INPUT_FREQ.MIN.WARN} |<p>Minimum input frequency for trigger expression.</p> |`49.7` | +|{$UPS.INPUT_VOLT.MAX.WARN} |<p>Maximum input voltage for trigger expression.</p> |`243` | +|{$UPS.INPUT_VOLT.MIN.WARN} |<p>Minimum input voltage for trigger expression.</p> |`197` | +|{$UPS.OUTPUT.MAX.WARN} |<p>Maximum output load in % for trigger expression.</p> |`80` | + +## Template links + +There are no template links in this template. + +## Discovery rules + +|Name|Description|Type|Key and additional info| +|----|-----------|----|----| +|Input phases discovery |<p>The input phase identifier. OID upsPhaseInputPhaseIndex.1.1</p> |SNMP |input.phases.discovery | +|Output phases discovery |<p>The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1</p> |SNMP |output.phases.discovery | +|External battery packs discovery | |SNMP |battery.packs.discovery<p>**Filter**:</p>AND <p>- A: {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`</p> | +|External bad battery packs discovery |<p>Discovery of the number of external defective battery packs.</p> |SNMP |battery.packs.bad.discovery | +|External sensor port 1 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor1.discovery | +|External sensor port 2 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor2.discovery | + +## Items collected + +|Group|Name|Description|Type|Key and additional info| +|-----|----|-----------|----|---------------------| +|General |Model |<p>MIB: PowerNet-MIB</p><p>The UPS model name (e.g. 'APC Smart-UPS 600').</p> |SNMP |system.model[upsBasicIdentModel]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Serial number |<p>MIB: PowerNet-MIB</p><p>An 8-character string identifying the serial number of</p><p> the UPS internal microprocessor. This number is set at</p><p> the factory. NOTE: This number does NOT correspond to</p><p> the serial number on the rear of the UPS.</p> |SNMP |system.sn[upsAdvIdentSerialNumber]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery status |<p>MIB: PowerNet-MIB</p><p>The status of the UPS batteries. A batteryLow(3) value</p><p> indicates the UPS will be unable to sustain the current</p><p> load, and its services will be lost if power is not restored.</p><p> The amount of run time in reserve at the time of low battery</p><p> can be configured by the upsAdvConfigLowBatteryRunTime.</p><p> A batteryInFaultCondition(4)value indicates that a battery</p><p> installed has an internal error condition.</p> |SNMP |battery.status[upsBasicBatteryStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsHighPrecBatteryCapacity]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery runtime remaining |<p>MIB: PowerNet-MIB</p><p>The UPS battery run time remaining before battery</p><p> exhaustion.</p> |SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery voltage |<p>MIB: PowerNet-MIB</p><p>The actual battery bus voltage in Volts.</p> |SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery last replace date |<p>MIB: PowerNet-MIB</p><p>The date when the UPS system's batteries were last replaced</p><p> in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value</p><p> is originally set at the factory. When the UPS batteries</p><p> are replaced, this value should be reset by the administrator.</p><p> For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.</p> |SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery replace indicator |<p>MIB: PowerNet-MIB</p><p>Indicates whether the UPS batteries need replacement.</p> |SNMP |battery.replace_indicator[upsAdvBatteryReplaceIndicator]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |External battery packs count |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS. If</p><p> the UPS does not use smart cells then the agent reports</p><p> ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_count[upsAdvBatteryNumOfBattPacks]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery temperature |<p>MIB: PowerNet-MIB</p><p>The current internal UPS temperature in Celsius.</p><p> Temperatures below zero read as 0.</p> |SNMP |battery.temperature[upsHighPrecBatteryTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input voltage |<p>MIB: PowerNet-MIB</p><p>The current utility line voltage in VAC.</p> |SNMP |input.voltage[upsHighPrecInputLineVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input frequency |<p>MIB: PowerNet-MIB</p><p>The current input frequency to the UPS system in Hz.</p> |SNMP |input.frequency[upsHighPrecInputFrequency]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input fail cause |<p>MIB: PowerNet-MIB</p><p>The reason for the occurrence of the last transfer to UPS</p><p>battery power. The variable is set to:</p><p>- noTransfer(1) -- if there is no transfer yet.</p><p>- highLineVoltage(2) -- if the transfer to battery is caused</p><p>by an over voltage greater than the high transfer voltage.</p><p>- brownout(3) -- if the duration of the outage is greater than</p><p>five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- blackout(4) -- if the duration of the outage is greater than five</p><p>seconds and the line voltage is between 40% of the rated</p><p>output voltage and ground.</p><p>- smallMomentarySag(5) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- deepMomentarySag(6) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and ground. The variable is set to</p><p>- smallMomentarySpike(7) -- if the line failure is caused by a</p><p>rate of change of input voltage less than ten volts per cycle.</p><p>- largeMomentarySpike(8) -- if the line failure is caused by</p><p>a rate of change of input voltage greater than ten volts per cycle.</p><p>- selfTest(9) -- if the UPS was commanded to do a self test.</p><p>- rateOfVoltageChange(10) -- if the failure is due to the rate of change of</p><p>the line voltage.</p> |SNMP |input.fail[upsAdvInputLineFailCause]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage of the UPS system in VAC.</p> |SNMP |output.voltage[upsHighPrecOutputVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output load |<p>MIB: PowerNet-MIB</p><p>The current UPS load expressed as percentage</p><p>of rated capacity.</p> |SNMP |output.load[upsHighPrecOutputLoad]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output current |<p>MIB: PowerNet-MIB</p><p>The current in amperes drawn by the load on the UPS.</p> |SNMP |output.current[upsHighPrecOutputCurrent]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output status |<p>MIB: PowerNet-MIB</p><p>The current state of the UPS. If the UPS is unable to</p><p> determine the state of the UPS this variable is set</p><p> to unknown(1).</p><p>During self-test most UPSes report onBattery(3) but</p><p> some that support it will report onBatteryTest(15).</p><p> To determine self-test status across all UPSes, refer</p><p> to the upsBasicStateOutputState OID.</p> |SNMP |output.status[upsBasicOutputStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |SNMP traps (fallback) |<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p> |SNMP_TRAP |snmptrap.fallback | +|General |System location |<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet,</p><p>3rd floor'). If the location is unknown, the value is the zero-length string.</p> |SNMP |system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System contact details |<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed</p><p>node, together with information on how to contact this person. If no contact</p><p>information is known, the value is the zero-length string.</p> |SNMP |system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |System object ID |<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management</p><p>subsystem contained in the entity. This value is allocated within the SMI enterprises</p><p>subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what</p><p>kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was</p><p>assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1</p><p>to its `Fred Router'.</p> |SNMP |system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System name |<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By</p><p>convention, this is the node's fully-qualified domain name. If the name is unknown,</p><p>the value is the zero-length string.</p> |SNMP |system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |{#PHASEINDEX}: Phase input voltage |<p>MIB: PowerNet-MIB</p><p>The input voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase input current |<p>MIB: PowerNet-MIB</p><p>The input current in 0.1 amperes, or -0.1 if it's</p><p> unsupported by this UPS.</p> |SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output current |<p>MIB: PowerNet-MIB</p><p>The output current in 0.1 amperes drawn</p><p> by the load on the UPS, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output load, % |<p>MIB: PowerNet-MIB</p><p>The percentage of the UPS load capacity in VA at</p><p> redundancy @ (n + x) presently being used on this</p><p> output phase, or -1 if it's unsupported by this UPS.</p> |SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |<p>MIB: PowerNet-MIB</p><p>The battery cartridge status.</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |<p>MIB: PowerNet-MIB</p><p>The battery pack temperature in Celsius.</p> |SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |<p>MIB: PowerNet-MIB</p><p>The battery pack serial number.</p> |SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date |<p>MIB: PowerNet-MIB</p><p>The battery cartridge estimated battery replace date.</p> |SNMP |battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health |<p>MIB: PowerNet-MIB</p><p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |SNMP |battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#SNMPINDEX}: External battery packs bad |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS that</p><p>are defective. If the UPS does not use smart cells then the</p><p>agent reports ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Status |Uptime |<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management</p><p>portion of the system was last re-initialized.</p> |SNMP |system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p> | +|Status |SNMP agent availability |<p>-</p> |INTERNAL |zabbix[host,snmp,available] | +|Status |ICMP ping |<p>-</p> |SIMPLE |icmpping | +|Status |ICMP loss |<p>-</p> |SIMPLE |icmppingloss | +|Status |ICMP response time |<p>-</p> |SIMPLE |icmppingsec | + +## Triggers + +|Name|Description|Expression|Severity|Dependencies and additional info| +|----|-----------|----|----|----| +|Battery has an internal error condition |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=4` |AVERAGE | | +|Battery is Low |<p>The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=3` |AVERAGE | | +|Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%) | |`{TEMPLATE_NAME:battery.capacity[upsHighPrecBatteryCapacity].last()} < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | +|Battery needs replacement |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.replace_indicator[upsAdvBatteryReplaceIndicator].last()}=2` |HIGH | | +|Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryTemperature].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | +|Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})` |HIGH | | +|Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD}) |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:output.load[upsHighPrecOutputLoad].min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}` |HIGH | | +|UPS is Timed Sleeping | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=5` |AVERAGE | | +|UPS is Switched Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=9` |AVERAGE | | +|UPS is Software Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=6` |AVERAGE | | +|UPS is Sleeping Until Power Return | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=11` |AVERAGE | | +|UPS is Rebooting | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=8` |AVERAGE | | +|UPS is On Smart Trim | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=12` |AVERAGE | | +|UPS is on Smart Boost | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=4` |AVERAGE | | +|UPS is on battery | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=3` |AVERAGE | | +|UPS is Off | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=7` |AVERAGE | | +|UPS is Emergency Static Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=16` |AVERAGE | | +|UPS is Hardware Failure Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=10` |AVERAGE | | +|System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=0` |WARNING | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |<p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |`{TEMPLATE_NAME:battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0)[0|1]{15}$")}=1` |WARNING | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=3` |HIGH | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=3` |HIGH | | +|{HOST.NAME} has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> | +|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`{TEMPLATE_NAME:icmpping.max(#3)}=0` |HIGH | | +|High ICMP ping loss |<p>-</p> |`{TEMPLATE_NAME:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {TEMPLATE_NAME:icmppingloss.min(5m)}<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|High ICMP ping response time |<p>-</p> |`{TEMPLATE_NAME:icmppingsec.avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> | + +## Feedback + +Please report any issues with the template at https://support.zabbix.com + +You can also provide a 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). + diff --git a/templates/power/apc/apc_ups_smart_3000_xlm_snmp/template_power_apc_ups_smart_3000_xlm_snmp.yaml b/templates/power/apc/apc_ups_smart_3000_xlm_snmp/template_power_apc_ups_smart_3000_xlm_snmp.yaml new file mode 100644 index 00000000000..c31eedff7ca --- /dev/null +++ b/templates/power/apc/apc_ups_smart_3000_xlm_snmp/template_power_apc_ups_smart_3000_xlm_snmp.yaml @@ -0,0 +1,1498 @@ +zabbix_export: + version: '5.4' + date: '2021-03-24T17:30:36Z' + groups: + - + name: Templates/Power + templates: + - + template: 'APC Smart-UPS 3000 XLM SNMP' + name: 'APC Smart-UPS 3000 XLM SNMP' + description: | + Template Power APC Smart-UPS 3000 XLM + + MIBs used: + PowerNet-MIB + SNMPv2-MIB + + You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups + + Template tooling version used: 0.38 + groups: + - + name: Templates/Power + applications: + - + name: General + - + name: Status + items: + - + name: 'Battery capacity' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.1.0 + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The remaining battery capacity expressed as + percentage of full capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' + opdata: 'Current capacity: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'External battery packs count' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.5.0 + key: 'battery.external_packs_count[upsAdvBatteryNumOfBattPacks]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery last replace date' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.3.0 + key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery replace indicator' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.4.0 + key: 'battery.replace_indicator[upsAdvBatteryReplaceIndicator]' + history: 7d + description: | + MIB: PowerNet-MIB + Indicates whether the UPS batteries need replacement. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=2' + name: 'Battery needs replacement' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Battery runtime remaining' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.3.0 + key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' + history: 7d + value_type: FLOAT + units: s + description: | + MIB: PowerNet-MIB + The UPS battery run time remaining before battery + exhaustion. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.1.0 + key: 'battery.status[upsBasicBatteryStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=4' + name: 'Battery has an internal error condition' + priority: AVERAGE + description: 'A battery installed has an internal error condition.' + - + expression: '{last()}=3' + name: 'Battery is Low' + priority: AVERAGE + description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' + - + name: 'Battery temperature' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.2.0 + key: 'battery.temperature[upsHighPrecBatteryTemperature]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The current internal UPS temperature in Celsius. + Temperatures below zero read as 0. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Battery voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.4.0 + key: 'battery.voltage[upsHighPrecBatteryActualVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The actual battery bus voltage in Volts. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'ICMP ping' + type: SIMPLE + key: icmpping + history: 1w + applications: + - + name: Status + valuemap: + name: 'Service state' + triggers: + - + expression: '{max(#3)}=0' + name: 'Unavailable by ICMP ping' + priority: HIGH + description: 'Last three attempts returned timeout. Please check device connectivity.' + - + name: 'ICMP loss' + type: SIMPLE + key: icmppingloss + history: 1w + value_type: FLOAT + units: '%' + applications: + - + name: Status + triggers: + - + expression: '{min(5m)}>{$ICMP.LOSS.WARN} and {min(5m)}<100' + name: 'High ICMP ping loss' + opdata: 'Loss: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS 3000 XLM SNMP:icmpping.max(#3)}=0' + - + name: 'ICMP response time' + type: SIMPLE + key: icmppingsec + history: 1w + value_type: FLOAT + units: s + applications: + - + name: Status + triggers: + - + expression: '{avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}' + name: 'High ICMP ping response time' + opdata: 'Value: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'High ICMP ping loss' + expression: '{APC Smart-UPS 3000 XLM SNMP:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {APC Smart-UPS 3000 XLM SNMP:icmppingloss.min(5m)}<100' + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS 3000 XLM SNMP:icmpping.max(#3)}=0' + - + name: 'Input fail cause' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.2.5.0 + key: 'input.fail[upsAdvInputLineFailCause]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Input frequency' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.4.0 + key: 'input.frequency[upsHighPrecInputFrequency]' + history: 7d + value_type: FLOAT + units: Hz + description: | + MIB: PowerNet-MIB + The current input frequency to the UPS system in Hz. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' + opdata: 'Current frequency: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Input voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.1.0 + key: 'input.voltage[upsHighPrecInputLineVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The current utility line voltage in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.4.0 + key: 'output.current[upsHighPrecOutputCurrent]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The current in amperes drawn by the load on the UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Output load' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.3.0 + key: 'output.load[upsHighPrecOutputLoad]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The current UPS load expressed as percentage + of rated capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' + opdata: 'Current load: {ITEM.LASTVALUE1}' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Output status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.1.1.0 + key: 'output.status[upsBasicOutputStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=16' + name: 'UPS is Emergency Static Bypass' + priority: AVERAGE + - + expression: '{last()}=10' + name: 'UPS is Hardware Failure Bypass' + priority: AVERAGE + - + expression: '{last()}=7' + name: 'UPS is Off' + priority: AVERAGE + - + expression: '{last()}=3' + name: 'UPS is on battery' + priority: AVERAGE + - + expression: '{last()}=4' + name: 'UPS is on Smart Boost' + priority: AVERAGE + - + expression: '{last()}=12' + name: 'UPS is On Smart Trim' + priority: AVERAGE + - + expression: '{last()}=8' + name: 'UPS is Rebooting' + priority: AVERAGE + - + expression: '{last()}=11' + name: 'UPS is Sleeping Until Power Return' + priority: AVERAGE + - + expression: '{last()}=6' + name: 'UPS is Software Bypass' + priority: AVERAGE + - + expression: '{last()}=9' + name: 'UPS is Switched Bypass' + priority: AVERAGE + - + expression: '{last()}=5' + name: 'UPS is Timed Sleeping' + priority: AVERAGE + - + name: 'Output voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.1.0 + key: 'output.voltage[upsHighPrecOutputVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage of the UPS system in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'SNMP traps (fallback)' + type: SNMP_TRAP + key: snmptrap.fallback + history: 2w + trends: '0' + value_type: LOG + description: 'Item is used to collect all SNMP traps unmatched by other snmptrap items' + applications: + - + name: General + logtimefmt: 'hh:mm:sszyyyy/MM/dd' + - + name: 'System contact details' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.4.0 + key: 'system.contact[sysContact.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: CONTACT + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System description' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.1.0 + key: 'system.descr[sysDescr.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System location' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.6.0 + key: 'system.location[sysLocation.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: LOCATION + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: Model + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.1.1.0 + key: 'system.model[upsBasicIdentModel]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The UPS model name (e.g. 'APC Smart-UPS 600'). + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'System name' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.5.0 + key: system.name + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: NAME + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + triggers: + - + expression: '{diff()}=1 and {strlen()}>0' + name: 'System name has changed (new name: {ITEM.VALUE})' + priority: INFO + description: 'System name has changed. Ack to close.' + manual_close: 'YES' + - + name: 'System object ID' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.2.0 + key: 'system.objectid[sysObjectID.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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'. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: 'Serial number' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.2.3.0 + key: 'system.sn[upsAdvIdentSerialNumber]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: Uptime + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.3.0 + key: 'system.uptime[sysUpTime.0]' + delay: 30s + history: 2w + trends: 0d + units: uptime + description: | + MIB: SNMPv2-MIB + The time (in hundredths of a second) since the network management + portion of the system was last re-initialized. + applications: + - + name: Status + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + triggers: + - + expression: '{last()}<10m' + name: '{HOST.NAME} has been restarted (uptime < 10m)' + priority: WARNING + description: 'Uptime is less than 10 minutes' + manual_close: 'YES' + dependencies: + - + name: 'No SNMP data collection' + expression: '{APC Smart-UPS 3000 XLM SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + - + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' + history: 7d + applications: + - + name: Status + valuemap: + name: zabbix.host.available + triggers: + - + expression: '{max({$SNMP.TIMEOUT})}=0' + name: 'No SNMP data collection' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.' + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS 3000 XLM SNMP:icmpping.max(#3)}=0' + discovery_rules: + - + name: 'External bad battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_PACKS},1.3.6.1.4.1.318.1.1.1.2.2.6]' + key: battery.packs.bad.discovery + delay: 1h + description: 'Discovery of the number of external defective battery packs.' + item_prototypes: + - + name: '{#SNMPINDEX}: External battery packs bad' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.6.0 + key: 'battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#CARTRIDGE_STATUS},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7,{#BATTERY_PACK},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.1,{#CARTRIDGE_INDEX},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.2]' + key: battery.packs.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - + macro: '{#CARTRIDGE_STATUS}' + value: ^$ + operator: NOT_MATCHES_REGEX + formulaid: A + item_prototypes: + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.8.{#SNMPINDEX}' + key: 'battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery cartridge estimated battery replace date. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7.{#SNMPINDEX}' + key: 'battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0)[0|1]{15}$")}=1' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.10.{#SNMPINDEX}' + key: 'battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0{16})$")}=0' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.5.{#SNMPINDEX}' + key: 'battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The battery pack temperature in Celsius. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.4.{#SNMPINDEX}' + key: 'system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery pack serial number. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External sensor port 1 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR1_NAME},1.3.6.1.4.1.318.1.1.25.1.2.1.3]' + key: external.sensor1.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR1_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR1_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR1_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'External sensor port 2 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR2_NAME},1.3.6.1.4.1.318.1.1.25.1.2.2.3]' + key: external.sensor2.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR2_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR2_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR2_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'Input phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.2.3.1.2.1.1]' + key: input.phases.discovery + delay: 1h + description: 'The input phase identifier. OID upsPhaseInputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase input current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.6.1.1.{#PHASEINDEX}' + key: 'phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The input current in 0.1 amperes, or -0.1 if it's + unsupported by this UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase input voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The input voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1]' + key: output.phases.discovery + delay: 1h + description: 'The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase output current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.4.1.1.{#PHASEINDEX}' + key: 'phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output load, %' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.10.1.1.{#PHASEINDEX}' + key: 'phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + macros: + - + macro: '{$BATTERY.CAPACITY.MIN.WARN}' + value: '50' + description: 'Minimum battery capacity percentage for trigger expression.' + - + macro: '{$BATTERY.TEMP.MAX.WARN}' + value: '55' + description: 'Maximum battery temperature for trigger expression.' + - + macro: '{$ICMP.LOSS.WARN}' + value: '20' + - + macro: '{$ICMP.RESPONSE_TIME.WARN}' + value: '0.15' + - + macro: '{$SNMP.TIMEOUT}' + value: 5m + description: 'The time interval for SNMP agent availability trigger expression.' + - + macro: '{$TIME.PERIOD}' + value: 15m + description: 'Time period for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MAX.WARN}' + value: '50.3' + description: 'Maximum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MIN.WARN}' + value: '49.7' + description: 'Minimum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MAX.WARN}' + value: '243' + description: 'Maximum input voltage for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MIN.WARN}' + value: '197' + description: 'Minimum input voltage for trigger expression.' + - + macro: '{$UPS.OUTPUT.MAX.WARN}' + value: '80' + description: 'Maximum output load in % for trigger expression.' + valuemaps: + - + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + mappings: + - + value: '1' + newvalue: Normal + - + value: '2' + newvalue: Warning + - + value: '3' + newvalue: Critical + - + value: '4' + newvalue: 'Not applicable' + - + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + mappings: + - + value: '1' + newvalue: 'no Battery Needs Replacing' + - + value: '2' + newvalue: 'battery Needs Replacing' + - + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + mappings: + - + value: '1' + newvalue: 'no Transfer' + - + value: '2' + newvalue: 'High Line Voltage' + - + value: '3' + newvalue: Brownout + - + value: '4' + newvalue: Blackout + - + value: '5' + newvalue: 'Small Momentary Sag' + - + value: '6' + newvalue: 'Deep Momentary Sag' + - + value: '7' + newvalue: 'Small Momentary Spike' + - + value: '8' + newvalue: 'Large Momentary Spike' + - + value: '9' + newvalue: 'Self Test' + - + value: '10' + newvalue: 'Rate of Voltage Change' + - + name: 'PowerNet-MIB::upsBasicBatteryStatus' + mappings: + - + value: '1' + newvalue: Unknown + - + value: '2' + newvalue: Normal + - + value: '3' + newvalue: Low + - + value: '4' + newvalue: 'In Fault Condition' + - + name: 'Service state' + mappings: + - + value: '0' + newvalue: Down + - + value: '1' + newvalue: Up + - + name: zabbix.host.available + mappings: + - + value: '0' + newvalue: 'not available' + - + value: '1' + newvalue: available + - + value: '2' + newvalue: unknown + graphs: + - + name: 'Capacity of the UPS batteries' + type: PIE + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS 3000 XLM SNMP' + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + - + name: Output + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS 3000 XLM SNMP' + key: 'output.current[upsHighPrecOutputCurrent]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS 3000 XLM SNMP' + key: 'output.load[upsHighPrecOutputLoad]' + - + name: Voltage + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS 3000 XLM SNMP' + key: 'input.voltage[upsHighPrecInputLineVoltage]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS 3000 XLM SNMP' + key: 'output.voltage[upsHighPrecOutputVoltage]' diff --git a/templates/power/apc/apc_ups_smart_rt_1000_rm_xl_snmp/README.md b/templates/power/apc/apc_ups_smart_rt_1000_rm_xl_snmp/README.md new file mode 100644 index 00000000000..250b7dcd930 --- /dev/null +++ b/templates/power/apc/apc_ups_smart_rt_1000_rm_xl_snmp/README.md @@ -0,0 +1,159 @@ + +# APC Smart-UPS RT 1000 RM XL SNMP + +## Overview + +For Zabbix version: 5.4 and higher +The template to monitor APC Smart-UPS RT 1000 RM XL by Zabbix SNMP agent. +Note: please, use the latest version of the firmware for your NMC in order for the template to work correctly. + + + +This template was tested on: + +- APC Smart-UPS RT 1000 RM XL + +## Setup + +> See [Zabbix template operation](https://www.zabbix.com/documentation/5.4/manual/config/templates_out_of_the_box/network_devices) for basic instructions. + +1\. Create a host for APC Smart-UPS RT 1000 RM XL 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} |<p>Minimum battery capacity percentage for trigger expression.</p> |`50` | +|{$BATTERY.TEMP.MAX.WARN} |<p>Maximum battery temperature for trigger expression.</p> |`55` | +|{$ICMP.LOSS.WARN} |<p>-</p> |`20` | +|{$ICMP.RESPONSE_TIME.WARN} |<p>-</p> |`0.15` | +|{$SNMP.TIMEOUT} |<p>The time interval for SNMP agent availability trigger expression.</p> |`5m` | +|{$TIME.PERIOD} |<p>Time period for trigger expression.</p> |`15m` | +|{$UPS.INPUT_FREQ.MAX.WARN} |<p>Maximum input frequency for trigger expression.</p> |`50.3` | +|{$UPS.INPUT_FREQ.MIN.WARN} |<p>Minimum input frequency for trigger expression.</p> |`49.7` | +|{$UPS.INPUT_VOLT.MAX.WARN} |<p>Maximum input voltage for trigger expression.</p> |`243` | +|{$UPS.INPUT_VOLT.MIN.WARN} |<p>Minimum input voltage for trigger expression.</p> |`197` | +|{$UPS.OUTPUT.MAX.WARN} |<p>Maximum output load in % for trigger expression.</p> |`80` | + +## Template links + +There are no template links in this template. + +## Discovery rules + +|Name|Description|Type|Key and additional info| +|----|-----------|----|----| +|Input phases discovery |<p>The input phase identifier. OID upsPhaseInputPhaseIndex.1.1</p> |SNMP |input.phases.discovery | +|Output phases discovery |<p>The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1</p> |SNMP |output.phases.discovery | +|External battery packs discovery | |SNMP |battery.packs.discovery<p>**Filter**:</p>AND <p>- A: {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`</p> | +|External bad battery packs discovery |<p>Discovery of the number of external defective battery packs.</p> |SNMP |battery.packs.bad.discovery | +|External sensor port 1 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor1.discovery | +|External sensor port 2 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor2.discovery | + +## Items collected + +|Group|Name|Description|Type|Key and additional info| +|-----|----|-----------|----|---------------------| +|General |Model |<p>MIB: PowerNet-MIB</p><p>The UPS model name (e.g. 'APC Smart-UPS 600').</p> |SNMP |system.model[upsBasicIdentModel]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Serial number |<p>MIB: PowerNet-MIB</p><p>An 8-character string identifying the serial number of</p><p> the UPS internal microprocessor. This number is set at</p><p> the factory. NOTE: This number does NOT correspond to</p><p> the serial number on the rear of the UPS.</p> |SNMP |system.sn[upsAdvIdentSerialNumber]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery status |<p>MIB: PowerNet-MIB</p><p>The status of the UPS batteries. A batteryLow(3) value</p><p> indicates the UPS will be unable to sustain the current</p><p> load, and its services will be lost if power is not restored.</p><p> The amount of run time in reserve at the time of low battery</p><p> can be configured by the upsAdvConfigLowBatteryRunTime.</p><p> A batteryInFaultCondition(4)value indicates that a battery</p><p> installed has an internal error condition.</p> |SNMP |battery.status[upsBasicBatteryStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsHighPrecBatteryCapacity]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery runtime remaining |<p>MIB: PowerNet-MIB</p><p>The UPS battery run time remaining before battery</p><p> exhaustion.</p> |SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery voltage |<p>MIB: PowerNet-MIB</p><p>The actual battery bus voltage in Volts.</p> |SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery last replace date |<p>MIB: PowerNet-MIB</p><p>The date when the UPS system's batteries were last replaced</p><p> in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value</p><p> is originally set at the factory. When the UPS batteries</p><p> are replaced, this value should be reset by the administrator.</p><p> For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.</p> |SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery replace indicator |<p>MIB: PowerNet-MIB</p><p>Indicates whether the UPS batteries need replacement.</p> |SNMP |battery.replace_indicator[upsAdvBatteryReplaceIndicator]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |External battery packs count |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS. If</p><p> the UPS does not use smart cells then the agent reports</p><p> ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_count[upsAdvBatteryNumOfBattPacks]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery temperature |<p>MIB: PowerNet-MIB</p><p>The current internal UPS temperature in Celsius.</p><p> Temperatures below zero read as 0.</p> |SNMP |battery.temperature[upsHighPrecBatteryTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input voltage |<p>MIB: PowerNet-MIB</p><p>The current utility line voltage in VAC.</p> |SNMP |input.voltage[upsHighPrecInputLineVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input frequency |<p>MIB: PowerNet-MIB</p><p>The current input frequency to the UPS system in Hz.</p> |SNMP |input.frequency[upsHighPrecInputFrequency]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input fail cause |<p>MIB: PowerNet-MIB</p><p>The reason for the occurrence of the last transfer to UPS</p><p>battery power. The variable is set to:</p><p>- noTransfer(1) -- if there is no transfer yet.</p><p>- highLineVoltage(2) -- if the transfer to battery is caused</p><p>by an over voltage greater than the high transfer voltage.</p><p>- brownout(3) -- if the duration of the outage is greater than</p><p>five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- blackout(4) -- if the duration of the outage is greater than five</p><p>seconds and the line voltage is between 40% of the rated</p><p>output voltage and ground.</p><p>- smallMomentarySag(5) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- deepMomentarySag(6) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and ground. The variable is set to</p><p>- smallMomentarySpike(7) -- if the line failure is caused by a</p><p>rate of change of input voltage less than ten volts per cycle.</p><p>- largeMomentarySpike(8) -- if the line failure is caused by</p><p>a rate of change of input voltage greater than ten volts per cycle.</p><p>- selfTest(9) -- if the UPS was commanded to do a self test.</p><p>- rateOfVoltageChange(10) -- if the failure is due to the rate of change of</p><p>the line voltage.</p> |SNMP |input.fail[upsAdvInputLineFailCause]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage of the UPS system in VAC.</p> |SNMP |output.voltage[upsHighPrecOutputVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output load |<p>MIB: PowerNet-MIB</p><p>The current UPS load expressed as percentage</p><p>of rated capacity.</p> |SNMP |output.load[upsHighPrecOutputLoad]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output current |<p>MIB: PowerNet-MIB</p><p>The current in amperes drawn by the load on the UPS.</p> |SNMP |output.current[upsHighPrecOutputCurrent]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output status |<p>MIB: PowerNet-MIB</p><p>The current state of the UPS. If the UPS is unable to</p><p> determine the state of the UPS this variable is set</p><p> to unknown(1).</p><p>During self-test most UPSes report onBattery(3) but</p><p> some that support it will report onBatteryTest(15).</p><p> To determine self-test status across all UPSes, refer</p><p> to the upsBasicStateOutputState OID.</p> |SNMP |output.status[upsBasicOutputStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |SNMP traps (fallback) |<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p> |SNMP_TRAP |snmptrap.fallback | +|General |System location |<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet,</p><p>3rd floor'). If the location is unknown, the value is the zero-length string.</p> |SNMP |system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System contact details |<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed</p><p>node, together with information on how to contact this person. If no contact</p><p>information is known, the value is the zero-length string.</p> |SNMP |system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |System object ID |<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management</p><p>subsystem contained in the entity. This value is allocated within the SMI enterprises</p><p>subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what</p><p>kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was</p><p>assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1</p><p>to its `Fred Router'.</p> |SNMP |system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System name |<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By</p><p>convention, this is the node's fully-qualified domain name. If the name is unknown,</p><p>the value is the zero-length string.</p> |SNMP |system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |{#PHASEINDEX}: Phase input voltage |<p>MIB: PowerNet-MIB</p><p>The input voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase input current |<p>MIB: PowerNet-MIB</p><p>The input current in 0.1 amperes, or -0.1 if it's</p><p> unsupported by this UPS.</p> |SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output current |<p>MIB: PowerNet-MIB</p><p>The output current in 0.1 amperes drawn</p><p> by the load on the UPS, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output load, % |<p>MIB: PowerNet-MIB</p><p>The percentage of the UPS load capacity in VA at</p><p> redundancy @ (n + x) presently being used on this</p><p> output phase, or -1 if it's unsupported by this UPS.</p> |SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |<p>MIB: PowerNet-MIB</p><p>The battery cartridge status.</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |<p>MIB: PowerNet-MIB</p><p>The battery pack temperature in Celsius.</p> |SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |<p>MIB: PowerNet-MIB</p><p>The battery pack serial number.</p> |SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date |<p>MIB: PowerNet-MIB</p><p>The battery cartridge estimated battery replace date.</p> |SNMP |battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health |<p>MIB: PowerNet-MIB</p><p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |SNMP |battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#SNMPINDEX}: External battery packs bad |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS that</p><p>are defective. If the UPS does not use smart cells then the</p><p>agent reports ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Status |Uptime |<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management</p><p>portion of the system was last re-initialized.</p> |SNMP |system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p> | +|Status |SNMP agent availability |<p>-</p> |INTERNAL |zabbix[host,snmp,available] | +|Status |ICMP ping |<p>-</p> |SIMPLE |icmpping | +|Status |ICMP loss |<p>-</p> |SIMPLE |icmppingloss | +|Status |ICMP response time |<p>-</p> |SIMPLE |icmppingsec | + +## Triggers + +|Name|Description|Expression|Severity|Dependencies and additional info| +|----|-----------|----|----|----| +|Battery has an internal error condition |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=4` |AVERAGE | | +|Battery is Low |<p>The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=3` |AVERAGE | | +|Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%) | |`{TEMPLATE_NAME:battery.capacity[upsHighPrecBatteryCapacity].last()} < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | +|Battery needs replacement |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.replace_indicator[upsAdvBatteryReplaceIndicator].last()}=2` |HIGH | | +|Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryTemperature].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | +|Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})` |HIGH | | +|Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD}) |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:output.load[upsHighPrecOutputLoad].min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}` |HIGH | | +|UPS is Timed Sleeping | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=5` |AVERAGE | | +|UPS is Switched Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=9` |AVERAGE | | +|UPS is Software Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=6` |AVERAGE | | +|UPS is Sleeping Until Power Return | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=11` |AVERAGE | | +|UPS is Rebooting | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=8` |AVERAGE | | +|UPS is On Smart Trim | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=12` |AVERAGE | | +|UPS is on Smart Boost | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=4` |AVERAGE | | +|UPS is on battery | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=3` |AVERAGE | | +|UPS is Off | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=7` |AVERAGE | | +|UPS is Emergency Static Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=16` |AVERAGE | | +|UPS is Hardware Failure Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=10` |AVERAGE | | +|System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=0` |WARNING | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |<p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |`{TEMPLATE_NAME:battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0)[0|1]{15}$")}=1` |WARNING | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=3` |HIGH | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=3` |HIGH | | +|{HOST.NAME} has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> | +|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`{TEMPLATE_NAME:icmpping.max(#3)}=0` |HIGH | | +|High ICMP ping loss |<p>-</p> |`{TEMPLATE_NAME:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {TEMPLATE_NAME:icmppingloss.min(5m)}<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|High ICMP ping response time |<p>-</p> |`{TEMPLATE_NAME:icmppingsec.avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> | + +## Feedback + +Please report any issues with the template at https://support.zabbix.com + +You can also provide a 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). + diff --git a/templates/power/apc/apc_ups_smart_rt_1000_rm_xl_snmp/template_power_apc_ups_smart_rt_1000_rm_xl_snmp.yaml b/templates/power/apc/apc_ups_smart_rt_1000_rm_xl_snmp/template_power_apc_ups_smart_rt_1000_rm_xl_snmp.yaml new file mode 100644 index 00000000000..ba5aab6076a --- /dev/null +++ b/templates/power/apc/apc_ups_smart_rt_1000_rm_xl_snmp/template_power_apc_ups_smart_rt_1000_rm_xl_snmp.yaml @@ -0,0 +1,1498 @@ +zabbix_export: + version: '5.4' + date: '2021-03-24T17:30:56Z' + groups: + - + name: Templates/Power + templates: + - + template: 'APC Smart-UPS RT 1000 RM XL SNMP' + name: 'APC Smart-UPS RT 1000 RM XL SNMP' + description: | + Template Power APC Smart-UPS RT 1000 RM XL + + MIBs used: + PowerNet-MIB + SNMPv2-MIB + + You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups + + Template tooling version used: 0.38 + groups: + - + name: Templates/Power + applications: + - + name: General + - + name: Status + items: + - + name: 'Battery capacity' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.1.0 + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The remaining battery capacity expressed as + percentage of full capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' + opdata: 'Current capacity: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'External battery packs count' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.5.0 + key: 'battery.external_packs_count[upsAdvBatteryNumOfBattPacks]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery last replace date' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.3.0 + key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery replace indicator' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.4.0 + key: 'battery.replace_indicator[upsAdvBatteryReplaceIndicator]' + history: 7d + description: | + MIB: PowerNet-MIB + Indicates whether the UPS batteries need replacement. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=2' + name: 'Battery needs replacement' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Battery runtime remaining' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.3.0 + key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' + history: 7d + value_type: FLOAT + units: s + description: | + MIB: PowerNet-MIB + The UPS battery run time remaining before battery + exhaustion. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.1.0 + key: 'battery.status[upsBasicBatteryStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=4' + name: 'Battery has an internal error condition' + priority: AVERAGE + description: 'A battery installed has an internal error condition.' + - + expression: '{last()}=3' + name: 'Battery is Low' + priority: AVERAGE + description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' + - + name: 'Battery temperature' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.2.0 + key: 'battery.temperature[upsHighPrecBatteryTemperature]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The current internal UPS temperature in Celsius. + Temperatures below zero read as 0. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Battery voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.4.0 + key: 'battery.voltage[upsHighPrecBatteryActualVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The actual battery bus voltage in Volts. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'ICMP ping' + type: SIMPLE + key: icmpping + history: 1w + applications: + - + name: Status + valuemap: + name: 'Service state' + triggers: + - + expression: '{max(#3)}=0' + name: 'Unavailable by ICMP ping' + priority: HIGH + description: 'Last three attempts returned timeout. Please check device connectivity.' + - + name: 'ICMP loss' + type: SIMPLE + key: icmppingloss + history: 1w + value_type: FLOAT + units: '%' + applications: + - + name: Status + triggers: + - + expression: '{min(5m)}>{$ICMP.LOSS.WARN} and {min(5m)}<100' + name: 'High ICMP ping loss' + opdata: 'Loss: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS RT 1000 RM XL SNMP:icmpping.max(#3)}=0' + - + name: 'ICMP response time' + type: SIMPLE + key: icmppingsec + history: 1w + value_type: FLOAT + units: s + applications: + - + name: Status + triggers: + - + expression: '{avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}' + name: 'High ICMP ping response time' + opdata: 'Value: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'High ICMP ping loss' + expression: '{APC Smart-UPS RT 1000 RM XL SNMP:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {APC Smart-UPS RT 1000 RM XL SNMP:icmppingloss.min(5m)}<100' + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS RT 1000 RM XL SNMP:icmpping.max(#3)}=0' + - + name: 'Input fail cause' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.2.5.0 + key: 'input.fail[upsAdvInputLineFailCause]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Input frequency' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.4.0 + key: 'input.frequency[upsHighPrecInputFrequency]' + history: 7d + value_type: FLOAT + units: Hz + description: | + MIB: PowerNet-MIB + The current input frequency to the UPS system in Hz. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' + opdata: 'Current frequency: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Input voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.1.0 + key: 'input.voltage[upsHighPrecInputLineVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The current utility line voltage in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.4.0 + key: 'output.current[upsHighPrecOutputCurrent]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The current in amperes drawn by the load on the UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Output load' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.3.0 + key: 'output.load[upsHighPrecOutputLoad]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The current UPS load expressed as percentage + of rated capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' + opdata: 'Current load: {ITEM.LASTVALUE1}' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Output status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.1.1.0 + key: 'output.status[upsBasicOutputStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=16' + name: 'UPS is Emergency Static Bypass' + priority: AVERAGE + - + expression: '{last()}=10' + name: 'UPS is Hardware Failure Bypass' + priority: AVERAGE + - + expression: '{last()}=7' + name: 'UPS is Off' + priority: AVERAGE + - + expression: '{last()}=3' + name: 'UPS is on battery' + priority: AVERAGE + - + expression: '{last()}=4' + name: 'UPS is on Smart Boost' + priority: AVERAGE + - + expression: '{last()}=12' + name: 'UPS is On Smart Trim' + priority: AVERAGE + - + expression: '{last()}=8' + name: 'UPS is Rebooting' + priority: AVERAGE + - + expression: '{last()}=11' + name: 'UPS is Sleeping Until Power Return' + priority: AVERAGE + - + expression: '{last()}=6' + name: 'UPS is Software Bypass' + priority: AVERAGE + - + expression: '{last()}=9' + name: 'UPS is Switched Bypass' + priority: AVERAGE + - + expression: '{last()}=5' + name: 'UPS is Timed Sleeping' + priority: AVERAGE + - + name: 'Output voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.1.0 + key: 'output.voltage[upsHighPrecOutputVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage of the UPS system in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'SNMP traps (fallback)' + type: SNMP_TRAP + key: snmptrap.fallback + history: 2w + trends: '0' + value_type: LOG + description: 'Item is used to collect all SNMP traps unmatched by other snmptrap items' + applications: + - + name: General + logtimefmt: 'hh:mm:sszyyyy/MM/dd' + - + name: 'System contact details' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.4.0 + key: 'system.contact[sysContact.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: CONTACT + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System description' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.1.0 + key: 'system.descr[sysDescr.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System location' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.6.0 + key: 'system.location[sysLocation.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: LOCATION + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: Model + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.1.1.0 + key: 'system.model[upsBasicIdentModel]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The UPS model name (e.g. 'APC Smart-UPS 600'). + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'System name' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.5.0 + key: system.name + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: NAME + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + triggers: + - + expression: '{diff()}=1 and {strlen()}>0' + name: 'System name has changed (new name: {ITEM.VALUE})' + priority: INFO + description: 'System name has changed. Ack to close.' + manual_close: 'YES' + - + name: 'System object ID' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.2.0 + key: 'system.objectid[sysObjectID.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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'. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: 'Serial number' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.2.3.0 + key: 'system.sn[upsAdvIdentSerialNumber]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: Uptime + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.3.0 + key: 'system.uptime[sysUpTime.0]' + delay: 30s + history: 2w + trends: 0d + units: uptime + description: | + MIB: SNMPv2-MIB + The time (in hundredths of a second) since the network management + portion of the system was last re-initialized. + applications: + - + name: Status + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + triggers: + - + expression: '{last()}<10m' + name: '{HOST.NAME} has been restarted (uptime < 10m)' + priority: WARNING + description: 'Uptime is less than 10 minutes' + manual_close: 'YES' + dependencies: + - + name: 'No SNMP data collection' + expression: '{APC Smart-UPS RT 1000 RM XL SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + - + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' + history: 7d + applications: + - + name: Status + valuemap: + name: zabbix.host.available + triggers: + - + expression: '{max({$SNMP.TIMEOUT})}=0' + name: 'No SNMP data collection' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.' + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS RT 1000 RM XL SNMP:icmpping.max(#3)}=0' + discovery_rules: + - + name: 'External bad battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_PACKS},1.3.6.1.4.1.318.1.1.1.2.2.6]' + key: battery.packs.bad.discovery + delay: 1h + description: 'Discovery of the number of external defective battery packs.' + item_prototypes: + - + name: '{#SNMPINDEX}: External battery packs bad' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.6.0 + key: 'battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#CARTRIDGE_STATUS},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7,{#BATTERY_PACK},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.1,{#CARTRIDGE_INDEX},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.2]' + key: battery.packs.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - + macro: '{#CARTRIDGE_STATUS}' + value: ^$ + operator: NOT_MATCHES_REGEX + formulaid: A + item_prototypes: + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.8.{#SNMPINDEX}' + key: 'battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery cartridge estimated battery replace date. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7.{#SNMPINDEX}' + key: 'battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0)[0|1]{15}$")}=1' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.10.{#SNMPINDEX}' + key: 'battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0{16})$")}=0' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.5.{#SNMPINDEX}' + key: 'battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The battery pack temperature in Celsius. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.4.{#SNMPINDEX}' + key: 'system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery pack serial number. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External sensor port 1 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR1_NAME},1.3.6.1.4.1.318.1.1.25.1.2.1.3]' + key: external.sensor1.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR1_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR1_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR1_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'External sensor port 2 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR2_NAME},1.3.6.1.4.1.318.1.1.25.1.2.2.3]' + key: external.sensor2.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR2_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR2_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR2_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'Input phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.2.3.1.2.1.1]' + key: input.phases.discovery + delay: 1h + description: 'The input phase identifier. OID upsPhaseInputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase input current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.6.1.1.{#PHASEINDEX}' + key: 'phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The input current in 0.1 amperes, or -0.1 if it's + unsupported by this UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase input voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The input voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1]' + key: output.phases.discovery + delay: 1h + description: 'The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase output current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.4.1.1.{#PHASEINDEX}' + key: 'phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output load, %' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.10.1.1.{#PHASEINDEX}' + key: 'phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + macros: + - + macro: '{$BATTERY.CAPACITY.MIN.WARN}' + value: '50' + description: 'Minimum battery capacity percentage for trigger expression.' + - + macro: '{$BATTERY.TEMP.MAX.WARN}' + value: '55' + description: 'Maximum battery temperature for trigger expression.' + - + macro: '{$ICMP.LOSS.WARN}' + value: '20' + - + macro: '{$ICMP.RESPONSE_TIME.WARN}' + value: '0.15' + - + macro: '{$SNMP.TIMEOUT}' + value: 5m + description: 'The time interval for SNMP agent availability trigger expression.' + - + macro: '{$TIME.PERIOD}' + value: 15m + description: 'Time period for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MAX.WARN}' + value: '50.3' + description: 'Maximum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MIN.WARN}' + value: '49.7' + description: 'Minimum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MAX.WARN}' + value: '243' + description: 'Maximum input voltage for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MIN.WARN}' + value: '197' + description: 'Minimum input voltage for trigger expression.' + - + macro: '{$UPS.OUTPUT.MAX.WARN}' + value: '80' + description: 'Maximum output load in % for trigger expression.' + valuemaps: + - + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + mappings: + - + value: '1' + newvalue: Normal + - + value: '2' + newvalue: Warning + - + value: '3' + newvalue: Critical + - + value: '4' + newvalue: 'Not applicable' + - + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + mappings: + - + value: '1' + newvalue: 'no Battery Needs Replacing' + - + value: '2' + newvalue: 'battery Needs Replacing' + - + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + mappings: + - + value: '1' + newvalue: 'no Transfer' + - + value: '2' + newvalue: 'High Line Voltage' + - + value: '3' + newvalue: Brownout + - + value: '4' + newvalue: Blackout + - + value: '5' + newvalue: 'Small Momentary Sag' + - + value: '6' + newvalue: 'Deep Momentary Sag' + - + value: '7' + newvalue: 'Small Momentary Spike' + - + value: '8' + newvalue: 'Large Momentary Spike' + - + value: '9' + newvalue: 'Self Test' + - + value: '10' + newvalue: 'Rate of Voltage Change' + - + name: 'PowerNet-MIB::upsBasicBatteryStatus' + mappings: + - + value: '1' + newvalue: Unknown + - + value: '2' + newvalue: Normal + - + value: '3' + newvalue: Low + - + value: '4' + newvalue: 'In Fault Condition' + - + name: 'Service state' + mappings: + - + value: '0' + newvalue: Down + - + value: '1' + newvalue: Up + - + name: zabbix.host.available + mappings: + - + value: '0' + newvalue: 'not available' + - + value: '1' + newvalue: available + - + value: '2' + newvalue: unknown + graphs: + - + name: 'Capacity of the UPS batteries' + type: PIE + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS RT 1000 RM XL SNMP' + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + - + name: Output + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS RT 1000 RM XL SNMP' + key: 'output.current[upsHighPrecOutputCurrent]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS RT 1000 RM XL SNMP' + key: 'output.load[upsHighPrecOutputLoad]' + - + name: Voltage + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS RT 1000 RM XL SNMP' + key: 'input.voltage[upsHighPrecInputLineVoltage]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS RT 1000 RM XL SNMP' + key: 'output.voltage[upsHighPrecOutputVoltage]' diff --git a/templates/power/apc/apc_ups_smart_rt_1000_xl_snmp/README.md b/templates/power/apc/apc_ups_smart_rt_1000_xl_snmp/README.md new file mode 100644 index 00000000000..da971230e00 --- /dev/null +++ b/templates/power/apc/apc_ups_smart_rt_1000_xl_snmp/README.md @@ -0,0 +1,159 @@ + +# APC Smart-UPS RT 1000 XL SNMP + +## Overview + +For Zabbix version: 5.4 and higher +The template to monitor APC Smart-UPS RT 1000 XL by Zabbix SNMP agent. +Note: please, use the latest version of the firmware for your NMC in order for the template to work correctly. + + + +This template was tested on: + +- APC Smart-UPS RT 1000 XL + +## Setup + +> See [Zabbix template operation](https://www.zabbix.com/documentation/5.4/manual/config/templates_out_of_the_box/network_devices) for basic instructions. + +1\. Create a host for APC Smart-UPS RT 1000 XL 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} |<p>Minimum battery capacity percentage for trigger expression.</p> |`50` | +|{$BATTERY.TEMP.MAX.WARN} |<p>Maximum battery temperature for trigger expression.</p> |`55` | +|{$ICMP.LOSS.WARN} |<p>-</p> |`20` | +|{$ICMP.RESPONSE_TIME.WARN} |<p>-</p> |`0.15` | +|{$SNMP.TIMEOUT} |<p>The time interval for SNMP agent availability trigger expression.</p> |`5m` | +|{$TIME.PERIOD} |<p>Time period for trigger expression.</p> |`15m` | +|{$UPS.INPUT_FREQ.MAX.WARN} |<p>Maximum input frequency for trigger expression.</p> |`50.3` | +|{$UPS.INPUT_FREQ.MIN.WARN} |<p>Minimum input frequency for trigger expression.</p> |`49.7` | +|{$UPS.INPUT_VOLT.MAX.WARN} |<p>Maximum input voltage for trigger expression.</p> |`243` | +|{$UPS.INPUT_VOLT.MIN.WARN} |<p>Minimum input voltage for trigger expression.</p> |`197` | +|{$UPS.OUTPUT.MAX.WARN} |<p>Maximum output load in % for trigger expression.</p> |`80` | + +## Template links + +There are no template links in this template. + +## Discovery rules + +|Name|Description|Type|Key and additional info| +|----|-----------|----|----| +|Input phases discovery |<p>The input phase identifier. OID upsPhaseInputPhaseIndex.1.1</p> |SNMP |input.phases.discovery | +|Output phases discovery |<p>The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1</p> |SNMP |output.phases.discovery | +|External battery packs discovery | |SNMP |battery.packs.discovery<p>**Filter**:</p>AND <p>- A: {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`</p> | +|External bad battery packs discovery |<p>Discovery of the number of external defective battery packs.</p> |SNMP |battery.packs.bad.discovery | +|External sensor port 1 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor1.discovery | +|External sensor port 2 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor2.discovery | + +## Items collected + +|Group|Name|Description|Type|Key and additional info| +|-----|----|-----------|----|---------------------| +|General |Model |<p>MIB: PowerNet-MIB</p><p>The UPS model name (e.g. 'APC Smart-UPS 600').</p> |SNMP |system.model[upsBasicIdentModel]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Serial number |<p>MIB: PowerNet-MIB</p><p>An 8-character string identifying the serial number of</p><p> the UPS internal microprocessor. This number is set at</p><p> the factory. NOTE: This number does NOT correspond to</p><p> the serial number on the rear of the UPS.</p> |SNMP |system.sn[upsAdvIdentSerialNumber]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery status |<p>MIB: PowerNet-MIB</p><p>The status of the UPS batteries. A batteryLow(3) value</p><p> indicates the UPS will be unable to sustain the current</p><p> load, and its services will be lost if power is not restored.</p><p> The amount of run time in reserve at the time of low battery</p><p> can be configured by the upsAdvConfigLowBatteryRunTime.</p><p> A batteryInFaultCondition(4)value indicates that a battery</p><p> installed has an internal error condition.</p> |SNMP |battery.status[upsBasicBatteryStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsHighPrecBatteryCapacity]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery runtime remaining |<p>MIB: PowerNet-MIB</p><p>The UPS battery run time remaining before battery</p><p> exhaustion.</p> |SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery voltage |<p>MIB: PowerNet-MIB</p><p>The actual battery bus voltage in Volts.</p> |SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery last replace date |<p>MIB: PowerNet-MIB</p><p>The date when the UPS system's batteries were last replaced</p><p> in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value</p><p> is originally set at the factory. When the UPS batteries</p><p> are replaced, this value should be reset by the administrator.</p><p> For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.</p> |SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery replace indicator |<p>MIB: PowerNet-MIB</p><p>Indicates whether the UPS batteries need replacement.</p> |SNMP |battery.replace_indicator[upsAdvBatteryReplaceIndicator]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |External battery packs count |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS. If</p><p> the UPS does not use smart cells then the agent reports</p><p> ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_count[upsAdvBatteryNumOfBattPacks]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery temperature |<p>MIB: PowerNet-MIB</p><p>The current internal UPS temperature in Celsius.</p><p> Temperatures below zero read as 0.</p> |SNMP |battery.temperature[upsHighPrecBatteryTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input voltage |<p>MIB: PowerNet-MIB</p><p>The current utility line voltage in VAC.</p> |SNMP |input.voltage[upsHighPrecInputLineVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input frequency |<p>MIB: PowerNet-MIB</p><p>The current input frequency to the UPS system in Hz.</p> |SNMP |input.frequency[upsHighPrecInputFrequency]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input fail cause |<p>MIB: PowerNet-MIB</p><p>The reason for the occurrence of the last transfer to UPS</p><p>battery power. The variable is set to:</p><p>- noTransfer(1) -- if there is no transfer yet.</p><p>- highLineVoltage(2) -- if the transfer to battery is caused</p><p>by an over voltage greater than the high transfer voltage.</p><p>- brownout(3) -- if the duration of the outage is greater than</p><p>five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- blackout(4) -- if the duration of the outage is greater than five</p><p>seconds and the line voltage is between 40% of the rated</p><p>output voltage and ground.</p><p>- smallMomentarySag(5) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- deepMomentarySag(6) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and ground. The variable is set to</p><p>- smallMomentarySpike(7) -- if the line failure is caused by a</p><p>rate of change of input voltage less than ten volts per cycle.</p><p>- largeMomentarySpike(8) -- if the line failure is caused by</p><p>a rate of change of input voltage greater than ten volts per cycle.</p><p>- selfTest(9) -- if the UPS was commanded to do a self test.</p><p>- rateOfVoltageChange(10) -- if the failure is due to the rate of change of</p><p>the line voltage.</p> |SNMP |input.fail[upsAdvInputLineFailCause]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage of the UPS system in VAC.</p> |SNMP |output.voltage[upsHighPrecOutputVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output load |<p>MIB: PowerNet-MIB</p><p>The current UPS load expressed as percentage</p><p>of rated capacity.</p> |SNMP |output.load[upsHighPrecOutputLoad]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output current |<p>MIB: PowerNet-MIB</p><p>The current in amperes drawn by the load on the UPS.</p> |SNMP |output.current[upsHighPrecOutputCurrent]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output status |<p>MIB: PowerNet-MIB</p><p>The current state of the UPS. If the UPS is unable to</p><p> determine the state of the UPS this variable is set</p><p> to unknown(1).</p><p>During self-test most UPSes report onBattery(3) but</p><p> some that support it will report onBatteryTest(15).</p><p> To determine self-test status across all UPSes, refer</p><p> to the upsBasicStateOutputState OID.</p> |SNMP |output.status[upsBasicOutputStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |SNMP traps (fallback) |<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p> |SNMP_TRAP |snmptrap.fallback | +|General |System location |<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet,</p><p>3rd floor'). If the location is unknown, the value is the zero-length string.</p> |SNMP |system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System contact details |<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed</p><p>node, together with information on how to contact this person. If no contact</p><p>information is known, the value is the zero-length string.</p> |SNMP |system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |System object ID |<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management</p><p>subsystem contained in the entity. This value is allocated within the SMI enterprises</p><p>subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what</p><p>kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was</p><p>assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1</p><p>to its `Fred Router'.</p> |SNMP |system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System name |<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By</p><p>convention, this is the node's fully-qualified domain name. If the name is unknown,</p><p>the value is the zero-length string.</p> |SNMP |system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |{#PHASEINDEX}: Phase input voltage |<p>MIB: PowerNet-MIB</p><p>The input voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase input current |<p>MIB: PowerNet-MIB</p><p>The input current in 0.1 amperes, or -0.1 if it's</p><p> unsupported by this UPS.</p> |SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output current |<p>MIB: PowerNet-MIB</p><p>The output current in 0.1 amperes drawn</p><p> by the load on the UPS, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output load, % |<p>MIB: PowerNet-MIB</p><p>The percentage of the UPS load capacity in VA at</p><p> redundancy @ (n + x) presently being used on this</p><p> output phase, or -1 if it's unsupported by this UPS.</p> |SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |<p>MIB: PowerNet-MIB</p><p>The battery cartridge status.</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |<p>MIB: PowerNet-MIB</p><p>The battery pack temperature in Celsius.</p> |SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |<p>MIB: PowerNet-MIB</p><p>The battery pack serial number.</p> |SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date |<p>MIB: PowerNet-MIB</p><p>The battery cartridge estimated battery replace date.</p> |SNMP |battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health |<p>MIB: PowerNet-MIB</p><p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |SNMP |battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#SNMPINDEX}: External battery packs bad |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS that</p><p>are defective. If the UPS does not use smart cells then the</p><p>agent reports ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Status |Uptime |<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management</p><p>portion of the system was last re-initialized.</p> |SNMP |system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p> | +|Status |SNMP agent availability |<p>-</p> |INTERNAL |zabbix[host,snmp,available] | +|Status |ICMP ping |<p>-</p> |SIMPLE |icmpping | +|Status |ICMP loss |<p>-</p> |SIMPLE |icmppingloss | +|Status |ICMP response time |<p>-</p> |SIMPLE |icmppingsec | + +## Triggers + +|Name|Description|Expression|Severity|Dependencies and additional info| +|----|-----------|----|----|----| +|Battery has an internal error condition |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=4` |AVERAGE | | +|Battery is Low |<p>The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=3` |AVERAGE | | +|Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%) | |`{TEMPLATE_NAME:battery.capacity[upsHighPrecBatteryCapacity].last()} < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | +|Battery needs replacement |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.replace_indicator[upsAdvBatteryReplaceIndicator].last()}=2` |HIGH | | +|Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryTemperature].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | +|Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})` |HIGH | | +|Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD}) |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:output.load[upsHighPrecOutputLoad].min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}` |HIGH | | +|UPS is Timed Sleeping | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=5` |AVERAGE | | +|UPS is Switched Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=9` |AVERAGE | | +|UPS is Software Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=6` |AVERAGE | | +|UPS is Sleeping Until Power Return | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=11` |AVERAGE | | +|UPS is Rebooting | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=8` |AVERAGE | | +|UPS is On Smart Trim | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=12` |AVERAGE | | +|UPS is on Smart Boost | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=4` |AVERAGE | | +|UPS is on battery | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=3` |AVERAGE | | +|UPS is Off | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=7` |AVERAGE | | +|UPS is Emergency Static Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=16` |AVERAGE | | +|UPS is Hardware Failure Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=10` |AVERAGE | | +|System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=0` |WARNING | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |<p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |`{TEMPLATE_NAME:battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0)[0|1]{15}$")}=1` |WARNING | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=3` |HIGH | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=3` |HIGH | | +|{HOST.NAME} has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> | +|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`{TEMPLATE_NAME:icmpping.max(#3)}=0` |HIGH | | +|High ICMP ping loss |<p>-</p> |`{TEMPLATE_NAME:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {TEMPLATE_NAME:icmppingloss.min(5m)}<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|High ICMP ping response time |<p>-</p> |`{TEMPLATE_NAME:icmppingsec.avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> | + +## Feedback + +Please report any issues with the template at https://support.zabbix.com + +You can also provide a 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). + diff --git a/templates/power/apc/apc_ups_smart_rt_1000_xl_snmp/template_power_apc_ups_smart_rt_1000_xl_snmp.yaml b/templates/power/apc/apc_ups_smart_rt_1000_xl_snmp/template_power_apc_ups_smart_rt_1000_xl_snmp.yaml new file mode 100644 index 00000000000..c9f181fb810 --- /dev/null +++ b/templates/power/apc/apc_ups_smart_rt_1000_xl_snmp/template_power_apc_ups_smart_rt_1000_xl_snmp.yaml @@ -0,0 +1,1498 @@ +zabbix_export: + version: '5.4' + date: '2021-03-24T17:31:13Z' + groups: + - + name: Templates/Power + templates: + - + template: 'APC Smart-UPS RT 1000 XL SNMP' + name: 'APC Smart-UPS RT 1000 XL SNMP' + description: | + Template Power APC Smart-UPS RT 1000 XL + + MIBs used: + PowerNet-MIB + SNMPv2-MIB + + You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups + + Template tooling version used: 0.38 + groups: + - + name: Templates/Power + applications: + - + name: General + - + name: Status + items: + - + name: 'Battery capacity' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.1.0 + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The remaining battery capacity expressed as + percentage of full capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' + opdata: 'Current capacity: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'External battery packs count' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.5.0 + key: 'battery.external_packs_count[upsAdvBatteryNumOfBattPacks]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery last replace date' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.3.0 + key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery replace indicator' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.4.0 + key: 'battery.replace_indicator[upsAdvBatteryReplaceIndicator]' + history: 7d + description: | + MIB: PowerNet-MIB + Indicates whether the UPS batteries need replacement. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=2' + name: 'Battery needs replacement' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Battery runtime remaining' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.3.0 + key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' + history: 7d + value_type: FLOAT + units: s + description: | + MIB: PowerNet-MIB + The UPS battery run time remaining before battery + exhaustion. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.1.0 + key: 'battery.status[upsBasicBatteryStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=4' + name: 'Battery has an internal error condition' + priority: AVERAGE + description: 'A battery installed has an internal error condition.' + - + expression: '{last()}=3' + name: 'Battery is Low' + priority: AVERAGE + description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' + - + name: 'Battery temperature' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.2.0 + key: 'battery.temperature[upsHighPrecBatteryTemperature]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The current internal UPS temperature in Celsius. + Temperatures below zero read as 0. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Battery voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.4.0 + key: 'battery.voltage[upsHighPrecBatteryActualVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The actual battery bus voltage in Volts. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'ICMP ping' + type: SIMPLE + key: icmpping + history: 1w + applications: + - + name: Status + valuemap: + name: 'Service state' + triggers: + - + expression: '{max(#3)}=0' + name: 'Unavailable by ICMP ping' + priority: HIGH + description: 'Last three attempts returned timeout. Please check device connectivity.' + - + name: 'ICMP loss' + type: SIMPLE + key: icmppingloss + history: 1w + value_type: FLOAT + units: '%' + applications: + - + name: Status + triggers: + - + expression: '{min(5m)}>{$ICMP.LOSS.WARN} and {min(5m)}<100' + name: 'High ICMP ping loss' + opdata: 'Loss: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS RT 1000 XL SNMP:icmpping.max(#3)}=0' + - + name: 'ICMP response time' + type: SIMPLE + key: icmppingsec + history: 1w + value_type: FLOAT + units: s + applications: + - + name: Status + triggers: + - + expression: '{avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}' + name: 'High ICMP ping response time' + opdata: 'Value: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'High ICMP ping loss' + expression: '{APC Smart-UPS RT 1000 XL SNMP:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {APC Smart-UPS RT 1000 XL SNMP:icmppingloss.min(5m)}<100' + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS RT 1000 XL SNMP:icmpping.max(#3)}=0' + - + name: 'Input fail cause' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.2.5.0 + key: 'input.fail[upsAdvInputLineFailCause]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Input frequency' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.4.0 + key: 'input.frequency[upsHighPrecInputFrequency]' + history: 7d + value_type: FLOAT + units: Hz + description: | + MIB: PowerNet-MIB + The current input frequency to the UPS system in Hz. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' + opdata: 'Current frequency: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Input voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.1.0 + key: 'input.voltage[upsHighPrecInputLineVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The current utility line voltage in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.4.0 + key: 'output.current[upsHighPrecOutputCurrent]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The current in amperes drawn by the load on the UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Output load' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.3.0 + key: 'output.load[upsHighPrecOutputLoad]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The current UPS load expressed as percentage + of rated capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' + opdata: 'Current load: {ITEM.LASTVALUE1}' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Output status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.1.1.0 + key: 'output.status[upsBasicOutputStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=16' + name: 'UPS is Emergency Static Bypass' + priority: AVERAGE + - + expression: '{last()}=10' + name: 'UPS is Hardware Failure Bypass' + priority: AVERAGE + - + expression: '{last()}=7' + name: 'UPS is Off' + priority: AVERAGE + - + expression: '{last()}=3' + name: 'UPS is on battery' + priority: AVERAGE + - + expression: '{last()}=4' + name: 'UPS is on Smart Boost' + priority: AVERAGE + - + expression: '{last()}=12' + name: 'UPS is On Smart Trim' + priority: AVERAGE + - + expression: '{last()}=8' + name: 'UPS is Rebooting' + priority: AVERAGE + - + expression: '{last()}=11' + name: 'UPS is Sleeping Until Power Return' + priority: AVERAGE + - + expression: '{last()}=6' + name: 'UPS is Software Bypass' + priority: AVERAGE + - + expression: '{last()}=9' + name: 'UPS is Switched Bypass' + priority: AVERAGE + - + expression: '{last()}=5' + name: 'UPS is Timed Sleeping' + priority: AVERAGE + - + name: 'Output voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.1.0 + key: 'output.voltage[upsHighPrecOutputVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage of the UPS system in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'SNMP traps (fallback)' + type: SNMP_TRAP + key: snmptrap.fallback + history: 2w + trends: '0' + value_type: LOG + description: 'Item is used to collect all SNMP traps unmatched by other snmptrap items' + applications: + - + name: General + logtimefmt: 'hh:mm:sszyyyy/MM/dd' + - + name: 'System contact details' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.4.0 + key: 'system.contact[sysContact.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: CONTACT + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System description' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.1.0 + key: 'system.descr[sysDescr.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System location' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.6.0 + key: 'system.location[sysLocation.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: LOCATION + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: Model + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.1.1.0 + key: 'system.model[upsBasicIdentModel]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The UPS model name (e.g. 'APC Smart-UPS 600'). + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'System name' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.5.0 + key: system.name + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: NAME + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + triggers: + - + expression: '{diff()}=1 and {strlen()}>0' + name: 'System name has changed (new name: {ITEM.VALUE})' + priority: INFO + description: 'System name has changed. Ack to close.' + manual_close: 'YES' + - + name: 'System object ID' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.2.0 + key: 'system.objectid[sysObjectID.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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'. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: 'Serial number' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.2.3.0 + key: 'system.sn[upsAdvIdentSerialNumber]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: Uptime + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.3.0 + key: 'system.uptime[sysUpTime.0]' + delay: 30s + history: 2w + trends: 0d + units: uptime + description: | + MIB: SNMPv2-MIB + The time (in hundredths of a second) since the network management + portion of the system was last re-initialized. + applications: + - + name: Status + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + triggers: + - + expression: '{last()}<10m' + name: '{HOST.NAME} has been restarted (uptime < 10m)' + priority: WARNING + description: 'Uptime is less than 10 minutes' + manual_close: 'YES' + dependencies: + - + name: 'No SNMP data collection' + expression: '{APC Smart-UPS RT 1000 XL SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + - + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' + history: 7d + applications: + - + name: Status + valuemap: + name: zabbix.host.available + triggers: + - + expression: '{max({$SNMP.TIMEOUT})}=0' + name: 'No SNMP data collection' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.' + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS RT 1000 XL SNMP:icmpping.max(#3)}=0' + discovery_rules: + - + name: 'External bad battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_PACKS},1.3.6.1.4.1.318.1.1.1.2.2.6]' + key: battery.packs.bad.discovery + delay: 1h + description: 'Discovery of the number of external defective battery packs.' + item_prototypes: + - + name: '{#SNMPINDEX}: External battery packs bad' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.6.0 + key: 'battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#CARTRIDGE_STATUS},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7,{#BATTERY_PACK},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.1,{#CARTRIDGE_INDEX},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.2]' + key: battery.packs.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - + macro: '{#CARTRIDGE_STATUS}' + value: ^$ + operator: NOT_MATCHES_REGEX + formulaid: A + item_prototypes: + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.8.{#SNMPINDEX}' + key: 'battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery cartridge estimated battery replace date. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7.{#SNMPINDEX}' + key: 'battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0)[0|1]{15}$")}=1' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.10.{#SNMPINDEX}' + key: 'battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0{16})$")}=0' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.5.{#SNMPINDEX}' + key: 'battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The battery pack temperature in Celsius. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.4.{#SNMPINDEX}' + key: 'system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery pack serial number. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External sensor port 1 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR1_NAME},1.3.6.1.4.1.318.1.1.25.1.2.1.3]' + key: external.sensor1.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR1_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR1_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR1_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'External sensor port 2 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR2_NAME},1.3.6.1.4.1.318.1.1.25.1.2.2.3]' + key: external.sensor2.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR2_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR2_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR2_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'Input phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.2.3.1.2.1.1]' + key: input.phases.discovery + delay: 1h + description: 'The input phase identifier. OID upsPhaseInputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase input current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.6.1.1.{#PHASEINDEX}' + key: 'phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The input current in 0.1 amperes, or -0.1 if it's + unsupported by this UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase input voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The input voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1]' + key: output.phases.discovery + delay: 1h + description: 'The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase output current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.4.1.1.{#PHASEINDEX}' + key: 'phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output load, %' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.10.1.1.{#PHASEINDEX}' + key: 'phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + macros: + - + macro: '{$BATTERY.CAPACITY.MIN.WARN}' + value: '50' + description: 'Minimum battery capacity percentage for trigger expression.' + - + macro: '{$BATTERY.TEMP.MAX.WARN}' + value: '55' + description: 'Maximum battery temperature for trigger expression.' + - + macro: '{$ICMP.LOSS.WARN}' + value: '20' + - + macro: '{$ICMP.RESPONSE_TIME.WARN}' + value: '0.15' + - + macro: '{$SNMP.TIMEOUT}' + value: 5m + description: 'The time interval for SNMP agent availability trigger expression.' + - + macro: '{$TIME.PERIOD}' + value: 15m + description: 'Time period for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MAX.WARN}' + value: '50.3' + description: 'Maximum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MIN.WARN}' + value: '49.7' + description: 'Minimum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MAX.WARN}' + value: '243' + description: 'Maximum input voltage for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MIN.WARN}' + value: '197' + description: 'Minimum input voltage for trigger expression.' + - + macro: '{$UPS.OUTPUT.MAX.WARN}' + value: '80' + description: 'Maximum output load in % for trigger expression.' + valuemaps: + - + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + mappings: + - + value: '1' + newvalue: Normal + - + value: '2' + newvalue: Warning + - + value: '3' + newvalue: Critical + - + value: '4' + newvalue: 'Not applicable' + - + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + mappings: + - + value: '1' + newvalue: 'no Battery Needs Replacing' + - + value: '2' + newvalue: 'battery Needs Replacing' + - + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + mappings: + - + value: '1' + newvalue: 'no Transfer' + - + value: '2' + newvalue: 'High Line Voltage' + - + value: '3' + newvalue: Brownout + - + value: '4' + newvalue: Blackout + - + value: '5' + newvalue: 'Small Momentary Sag' + - + value: '6' + newvalue: 'Deep Momentary Sag' + - + value: '7' + newvalue: 'Small Momentary Spike' + - + value: '8' + newvalue: 'Large Momentary Spike' + - + value: '9' + newvalue: 'Self Test' + - + value: '10' + newvalue: 'Rate of Voltage Change' + - + name: 'PowerNet-MIB::upsBasicBatteryStatus' + mappings: + - + value: '1' + newvalue: Unknown + - + value: '2' + newvalue: Normal + - + value: '3' + newvalue: Low + - + value: '4' + newvalue: 'In Fault Condition' + - + name: 'Service state' + mappings: + - + value: '0' + newvalue: Down + - + value: '1' + newvalue: Up + - + name: zabbix.host.available + mappings: + - + value: '0' + newvalue: 'not available' + - + value: '1' + newvalue: available + - + value: '2' + newvalue: unknown + graphs: + - + name: 'Capacity of the UPS batteries' + type: PIE + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS RT 1000 XL SNMP' + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + - + name: Output + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS RT 1000 XL SNMP' + key: 'output.current[upsHighPrecOutputCurrent]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS RT 1000 XL SNMP' + key: 'output.load[upsHighPrecOutputLoad]' + - + name: Voltage + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS RT 1000 XL SNMP' + key: 'input.voltage[upsHighPrecInputLineVoltage]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS RT 1000 XL SNMP' + key: 'output.voltage[upsHighPrecOutputVoltage]' diff --git a/templates/power/apc/apc_ups_smart_srt_5000_snmp/README.md b/templates/power/apc/apc_ups_smart_srt_5000_snmp/README.md new file mode 100644 index 00000000000..35d0824522f --- /dev/null +++ b/templates/power/apc/apc_ups_smart_srt_5000_snmp/README.md @@ -0,0 +1,159 @@ + +# APC Smart-UPS SRT 5000 SNMP + +## Overview + +For Zabbix version: 5.4 and higher +The template to monitor APC Smart-UPS SRT 5000 by Zabbix SNMP agent. +Note: please, use the latest version of the firmware for your NMC in order for the template to work correctly. + + + +This template was tested on: + +- APC Smart-UPS SRT 5000 + +## Setup + +> See [Zabbix template operation](https://www.zabbix.com/documentation/5.4/manual/config/templates_out_of_the_box/network_devices) for basic instructions. + +1\. Create a host for APC Smart-UPS SRT 5000 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} |<p>Minimum battery capacity percentage for trigger expression.</p> |`50` | +|{$BATTERY.TEMP.MAX.WARN} |<p>Maximum battery temperature for trigger expression.</p> |`55` | +|{$ICMP.LOSS.WARN} |<p>-</p> |`20` | +|{$ICMP.RESPONSE_TIME.WARN} |<p>-</p> |`0.15` | +|{$SNMP.TIMEOUT} |<p>The time interval for SNMP agent availability trigger expression.</p> |`5m` | +|{$TIME.PERIOD} |<p>Time period for trigger expression.</p> |`15m` | +|{$UPS.INPUT_FREQ.MAX.WARN} |<p>Maximum input frequency for trigger expression.</p> |`50.3` | +|{$UPS.INPUT_FREQ.MIN.WARN} |<p>Minimum input frequency for trigger expression.</p> |`49.7` | +|{$UPS.INPUT_VOLT.MAX.WARN} |<p>Maximum input voltage for trigger expression.</p> |`243` | +|{$UPS.INPUT_VOLT.MIN.WARN} |<p>Minimum input voltage for trigger expression.</p> |`197` | +|{$UPS.OUTPUT.MAX.WARN} |<p>Maximum output load in % for trigger expression.</p> |`80` | + +## Template links + +There are no template links in this template. + +## Discovery rules + +|Name|Description|Type|Key and additional info| +|----|-----------|----|----| +|Input phases discovery |<p>The input phase identifier. OID upsPhaseInputPhaseIndex.1.1</p> |SNMP |input.phases.discovery | +|Output phases discovery |<p>The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1</p> |SNMP |output.phases.discovery | +|External battery packs discovery | |SNMP |battery.packs.discovery<p>**Filter**:</p>AND <p>- A: {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`</p> | +|External bad battery packs discovery |<p>Discovery of the number of external defective battery packs.</p> |SNMP |battery.packs.bad.discovery | +|External sensor port 1 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor1.discovery | +|External sensor port 2 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor2.discovery | + +## Items collected + +|Group|Name|Description|Type|Key and additional info| +|-----|----|-----------|----|---------------------| +|General |Model |<p>MIB: PowerNet-MIB</p><p>The UPS model name (e.g. 'APC Smart-UPS 600').</p> |SNMP |system.model[upsBasicIdentModel]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Serial number |<p>MIB: PowerNet-MIB</p><p>An 8-character string identifying the serial number of</p><p> the UPS internal microprocessor. This number is set at</p><p> the factory. NOTE: This number does NOT correspond to</p><p> the serial number on the rear of the UPS.</p> |SNMP |system.sn[upsAdvIdentSerialNumber]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery status |<p>MIB: PowerNet-MIB</p><p>The status of the UPS batteries. A batteryLow(3) value</p><p> indicates the UPS will be unable to sustain the current</p><p> load, and its services will be lost if power is not restored.</p><p> The amount of run time in reserve at the time of low battery</p><p> can be configured by the upsAdvConfigLowBatteryRunTime.</p><p> A batteryInFaultCondition(4)value indicates that a battery</p><p> installed has an internal error condition.</p> |SNMP |battery.status[upsBasicBatteryStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsHighPrecBatteryCapacity]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery runtime remaining |<p>MIB: PowerNet-MIB</p><p>The UPS battery run time remaining before battery</p><p> exhaustion.</p> |SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery voltage |<p>MIB: PowerNet-MIB</p><p>The actual battery bus voltage in Volts.</p> |SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery last replace date |<p>MIB: PowerNet-MIB</p><p>The date when the UPS system's batteries were last replaced</p><p> in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value</p><p> is originally set at the factory. When the UPS batteries</p><p> are replaced, this value should be reset by the administrator.</p><p> For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.</p> |SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery replace indicator |<p>MIB: PowerNet-MIB</p><p>Indicates whether the UPS batteries need replacement.</p> |SNMP |battery.replace_indicator[upsAdvBatteryReplaceIndicator]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |External battery packs count |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS. If</p><p> the UPS does not use smart cells then the agent reports</p><p> ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_count[upsAdvBatteryNumOfBattPacks]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery temperature |<p>MIB: PowerNet-MIB</p><p>The current internal UPS temperature in Celsius.</p><p> Temperatures below zero read as 0.</p> |SNMP |battery.temperature[upsHighPrecBatteryTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input voltage |<p>MIB: PowerNet-MIB</p><p>The current utility line voltage in VAC.</p> |SNMP |input.voltage[upsHighPrecInputLineVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input frequency |<p>MIB: PowerNet-MIB</p><p>The current input frequency to the UPS system in Hz.</p> |SNMP |input.frequency[upsHighPrecInputFrequency]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input fail cause |<p>MIB: PowerNet-MIB</p><p>The reason for the occurrence of the last transfer to UPS</p><p>battery power. The variable is set to:</p><p>- noTransfer(1) -- if there is no transfer yet.</p><p>- highLineVoltage(2) -- if the transfer to battery is caused</p><p>by an over voltage greater than the high transfer voltage.</p><p>- brownout(3) -- if the duration of the outage is greater than</p><p>five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- blackout(4) -- if the duration of the outage is greater than five</p><p>seconds and the line voltage is between 40% of the rated</p><p>output voltage and ground.</p><p>- smallMomentarySag(5) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- deepMomentarySag(6) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and ground. The variable is set to</p><p>- smallMomentarySpike(7) -- if the line failure is caused by a</p><p>rate of change of input voltage less than ten volts per cycle.</p><p>- largeMomentarySpike(8) -- if the line failure is caused by</p><p>a rate of change of input voltage greater than ten volts per cycle.</p><p>- selfTest(9) -- if the UPS was commanded to do a self test.</p><p>- rateOfVoltageChange(10) -- if the failure is due to the rate of change of</p><p>the line voltage.</p> |SNMP |input.fail[upsAdvInputLineFailCause]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage of the UPS system in VAC.</p> |SNMP |output.voltage[upsHighPrecOutputVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output load |<p>MIB: PowerNet-MIB</p><p>The current UPS load expressed as percentage</p><p>of rated capacity.</p> |SNMP |output.load[upsHighPrecOutputLoad]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output current |<p>MIB: PowerNet-MIB</p><p>The current in amperes drawn by the load on the UPS.</p> |SNMP |output.current[upsHighPrecOutputCurrent]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output status |<p>MIB: PowerNet-MIB</p><p>The current state of the UPS. If the UPS is unable to</p><p> determine the state of the UPS this variable is set</p><p> to unknown(1).</p><p>During self-test most UPSes report onBattery(3) but</p><p> some that support it will report onBatteryTest(15).</p><p> To determine self-test status across all UPSes, refer</p><p> to the upsBasicStateOutputState OID.</p> |SNMP |output.status[upsBasicOutputStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |SNMP traps (fallback) |<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p> |SNMP_TRAP |snmptrap.fallback | +|General |System location |<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet,</p><p>3rd floor'). If the location is unknown, the value is the zero-length string.</p> |SNMP |system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System contact details |<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed</p><p>node, together with information on how to contact this person. If no contact</p><p>information is known, the value is the zero-length string.</p> |SNMP |system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |System object ID |<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management</p><p>subsystem contained in the entity. This value is allocated within the SMI enterprises</p><p>subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what</p><p>kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was</p><p>assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1</p><p>to its `Fred Router'.</p> |SNMP |system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System name |<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By</p><p>convention, this is the node's fully-qualified domain name. If the name is unknown,</p><p>the value is the zero-length string.</p> |SNMP |system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |{#PHASEINDEX}: Phase input voltage |<p>MIB: PowerNet-MIB</p><p>The input voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase input current |<p>MIB: PowerNet-MIB</p><p>The input current in 0.1 amperes, or -0.1 if it's</p><p> unsupported by this UPS.</p> |SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output current |<p>MIB: PowerNet-MIB</p><p>The output current in 0.1 amperes drawn</p><p> by the load on the UPS, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output load, % |<p>MIB: PowerNet-MIB</p><p>The percentage of the UPS load capacity in VA at</p><p> redundancy @ (n + x) presently being used on this</p><p> output phase, or -1 if it's unsupported by this UPS.</p> |SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |<p>MIB: PowerNet-MIB</p><p>The battery cartridge status.</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |<p>MIB: PowerNet-MIB</p><p>The battery pack temperature in Celsius.</p> |SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |<p>MIB: PowerNet-MIB</p><p>The battery pack serial number.</p> |SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date |<p>MIB: PowerNet-MIB</p><p>The battery cartridge estimated battery replace date.</p> |SNMP |battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health |<p>MIB: PowerNet-MIB</p><p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |SNMP |battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#SNMPINDEX}: External battery packs bad |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS that</p><p>are defective. If the UPS does not use smart cells then the</p><p>agent reports ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Status |Uptime |<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management</p><p>portion of the system was last re-initialized.</p> |SNMP |system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p> | +|Status |SNMP agent availability |<p>-</p> |INTERNAL |zabbix[host,snmp,available] | +|Status |ICMP ping |<p>-</p> |SIMPLE |icmpping | +|Status |ICMP loss |<p>-</p> |SIMPLE |icmppingloss | +|Status |ICMP response time |<p>-</p> |SIMPLE |icmppingsec | + +## Triggers + +|Name|Description|Expression|Severity|Dependencies and additional info| +|----|-----------|----|----|----| +|Battery has an internal error condition |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=4` |AVERAGE | | +|Battery is Low |<p>The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=3` |AVERAGE | | +|Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%) | |`{TEMPLATE_NAME:battery.capacity[upsHighPrecBatteryCapacity].last()} < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | +|Battery needs replacement |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.replace_indicator[upsAdvBatteryReplaceIndicator].last()}=2` |HIGH | | +|Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryTemperature].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | +|Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})` |HIGH | | +|Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD}) |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:output.load[upsHighPrecOutputLoad].min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}` |HIGH | | +|UPS is Timed Sleeping | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=5` |AVERAGE | | +|UPS is Switched Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=9` |AVERAGE | | +|UPS is Software Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=6` |AVERAGE | | +|UPS is Sleeping Until Power Return | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=11` |AVERAGE | | +|UPS is Rebooting | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=8` |AVERAGE | | +|UPS is On Smart Trim | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=12` |AVERAGE | | +|UPS is on Smart Boost | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=4` |AVERAGE | | +|UPS is on battery | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=3` |AVERAGE | | +|UPS is Off | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=7` |AVERAGE | | +|UPS is Emergency Static Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=16` |AVERAGE | | +|UPS is Hardware Failure Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=10` |AVERAGE | | +|System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=0` |WARNING | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |<p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |`{TEMPLATE_NAME:battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0)[0|1]{15}$")}=1` |WARNING | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=3` |HIGH | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=3` |HIGH | | +|{HOST.NAME} has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> | +|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`{TEMPLATE_NAME:icmpping.max(#3)}=0` |HIGH | | +|High ICMP ping loss |<p>-</p> |`{TEMPLATE_NAME:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {TEMPLATE_NAME:icmppingloss.min(5m)}<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|High ICMP ping response time |<p>-</p> |`{TEMPLATE_NAME:icmppingsec.avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> | + +## Feedback + +Please report any issues with the template at https://support.zabbix.com + +You can also provide a 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). + diff --git a/templates/power/apc/apc_ups_smart_srt_5000_snmp/template_power_apc_ups_smart_srt_5000_snmp.yaml b/templates/power/apc/apc_ups_smart_srt_5000_snmp/template_power_apc_ups_smart_srt_5000_snmp.yaml new file mode 100644 index 00000000000..9f46932322b --- /dev/null +++ b/templates/power/apc/apc_ups_smart_srt_5000_snmp/template_power_apc_ups_smart_srt_5000_snmp.yaml @@ -0,0 +1,1498 @@ +zabbix_export: + version: '5.4' + date: '2021-03-24T17:31:32Z' + groups: + - + name: Templates/Power + templates: + - + template: 'APC Smart-UPS SRT 5000 SNMP' + name: 'APC Smart-UPS SRT 5000 SNMP' + description: | + Template Power APC Smart-UPS SRT 5000 + + MIBs used: + PowerNet-MIB + SNMPv2-MIB + + You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups + + Template tooling version used: 0.38 + groups: + - + name: Templates/Power + applications: + - + name: General + - + name: Status + items: + - + name: 'Battery capacity' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.1.0 + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The remaining battery capacity expressed as + percentage of full capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' + opdata: 'Current capacity: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'External battery packs count' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.5.0 + key: 'battery.external_packs_count[upsAdvBatteryNumOfBattPacks]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery last replace date' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.3.0 + key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery replace indicator' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.4.0 + key: 'battery.replace_indicator[upsAdvBatteryReplaceIndicator]' + history: 7d + description: | + MIB: PowerNet-MIB + Indicates whether the UPS batteries need replacement. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=2' + name: 'Battery needs replacement' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Battery runtime remaining' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.3.0 + key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' + history: 7d + value_type: FLOAT + units: s + description: | + MIB: PowerNet-MIB + The UPS battery run time remaining before battery + exhaustion. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.1.0 + key: 'battery.status[upsBasicBatteryStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=4' + name: 'Battery has an internal error condition' + priority: AVERAGE + description: 'A battery installed has an internal error condition.' + - + expression: '{last()}=3' + name: 'Battery is Low' + priority: AVERAGE + description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' + - + name: 'Battery temperature' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.2.0 + key: 'battery.temperature[upsHighPrecBatteryTemperature]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The current internal UPS temperature in Celsius. + Temperatures below zero read as 0. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Battery voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.4.0 + key: 'battery.voltage[upsHighPrecBatteryActualVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The actual battery bus voltage in Volts. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'ICMP ping' + type: SIMPLE + key: icmpping + history: 1w + applications: + - + name: Status + valuemap: + name: 'Service state' + triggers: + - + expression: '{max(#3)}=0' + name: 'Unavailable by ICMP ping' + priority: HIGH + description: 'Last three attempts returned timeout. Please check device connectivity.' + - + name: 'ICMP loss' + type: SIMPLE + key: icmppingloss + history: 1w + value_type: FLOAT + units: '%' + applications: + - + name: Status + triggers: + - + expression: '{min(5m)}>{$ICMP.LOSS.WARN} and {min(5m)}<100' + name: 'High ICMP ping loss' + opdata: 'Loss: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS SRT 5000 SNMP:icmpping.max(#3)}=0' + - + name: 'ICMP response time' + type: SIMPLE + key: icmppingsec + history: 1w + value_type: FLOAT + units: s + applications: + - + name: Status + triggers: + - + expression: '{avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}' + name: 'High ICMP ping response time' + opdata: 'Value: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'High ICMP ping loss' + expression: '{APC Smart-UPS SRT 5000 SNMP:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {APC Smart-UPS SRT 5000 SNMP:icmppingloss.min(5m)}<100' + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS SRT 5000 SNMP:icmpping.max(#3)}=0' + - + name: 'Input fail cause' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.2.5.0 + key: 'input.fail[upsAdvInputLineFailCause]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Input frequency' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.4.0 + key: 'input.frequency[upsHighPrecInputFrequency]' + history: 7d + value_type: FLOAT + units: Hz + description: | + MIB: PowerNet-MIB + The current input frequency to the UPS system in Hz. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' + opdata: 'Current frequency: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Input voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.1.0 + key: 'input.voltage[upsHighPrecInputLineVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The current utility line voltage in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.4.0 + key: 'output.current[upsHighPrecOutputCurrent]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The current in amperes drawn by the load on the UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Output load' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.3.0 + key: 'output.load[upsHighPrecOutputLoad]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The current UPS load expressed as percentage + of rated capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' + opdata: 'Current load: {ITEM.LASTVALUE1}' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Output status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.1.1.0 + key: 'output.status[upsBasicOutputStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=16' + name: 'UPS is Emergency Static Bypass' + priority: AVERAGE + - + expression: '{last()}=10' + name: 'UPS is Hardware Failure Bypass' + priority: AVERAGE + - + expression: '{last()}=7' + name: 'UPS is Off' + priority: AVERAGE + - + expression: '{last()}=3' + name: 'UPS is on battery' + priority: AVERAGE + - + expression: '{last()}=4' + name: 'UPS is on Smart Boost' + priority: AVERAGE + - + expression: '{last()}=12' + name: 'UPS is On Smart Trim' + priority: AVERAGE + - + expression: '{last()}=8' + name: 'UPS is Rebooting' + priority: AVERAGE + - + expression: '{last()}=11' + name: 'UPS is Sleeping Until Power Return' + priority: AVERAGE + - + expression: '{last()}=6' + name: 'UPS is Software Bypass' + priority: AVERAGE + - + expression: '{last()}=9' + name: 'UPS is Switched Bypass' + priority: AVERAGE + - + expression: '{last()}=5' + name: 'UPS is Timed Sleeping' + priority: AVERAGE + - + name: 'Output voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.1.0 + key: 'output.voltage[upsHighPrecOutputVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage of the UPS system in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'SNMP traps (fallback)' + type: SNMP_TRAP + key: snmptrap.fallback + history: 2w + trends: '0' + value_type: LOG + description: 'Item is used to collect all SNMP traps unmatched by other snmptrap items' + applications: + - + name: General + logtimefmt: 'hh:mm:sszyyyy/MM/dd' + - + name: 'System contact details' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.4.0 + key: 'system.contact[sysContact.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: CONTACT + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System description' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.1.0 + key: 'system.descr[sysDescr.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System location' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.6.0 + key: 'system.location[sysLocation.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: LOCATION + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: Model + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.1.1.0 + key: 'system.model[upsBasicIdentModel]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The UPS model name (e.g. 'APC Smart-UPS 600'). + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'System name' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.5.0 + key: system.name + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: NAME + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + triggers: + - + expression: '{diff()}=1 and {strlen()}>0' + name: 'System name has changed (new name: {ITEM.VALUE})' + priority: INFO + description: 'System name has changed. Ack to close.' + manual_close: 'YES' + - + name: 'System object ID' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.2.0 + key: 'system.objectid[sysObjectID.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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'. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: 'Serial number' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.2.3.0 + key: 'system.sn[upsAdvIdentSerialNumber]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: Uptime + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.3.0 + key: 'system.uptime[sysUpTime.0]' + delay: 30s + history: 2w + trends: 0d + units: uptime + description: | + MIB: SNMPv2-MIB + The time (in hundredths of a second) since the network management + portion of the system was last re-initialized. + applications: + - + name: Status + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + triggers: + - + expression: '{last()}<10m' + name: '{HOST.NAME} has been restarted (uptime < 10m)' + priority: WARNING + description: 'Uptime is less than 10 minutes' + manual_close: 'YES' + dependencies: + - + name: 'No SNMP data collection' + expression: '{APC Smart-UPS SRT 5000 SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + - + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' + history: 7d + applications: + - + name: Status + valuemap: + name: zabbix.host.available + triggers: + - + expression: '{max({$SNMP.TIMEOUT})}=0' + name: 'No SNMP data collection' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.' + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS SRT 5000 SNMP:icmpping.max(#3)}=0' + discovery_rules: + - + name: 'External bad battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_PACKS},1.3.6.1.4.1.318.1.1.1.2.2.6]' + key: battery.packs.bad.discovery + delay: 1h + description: 'Discovery of the number of external defective battery packs.' + item_prototypes: + - + name: '{#SNMPINDEX}: External battery packs bad' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.6.0 + key: 'battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#CARTRIDGE_STATUS},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7,{#BATTERY_PACK},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.1,{#CARTRIDGE_INDEX},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.2]' + key: battery.packs.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - + macro: '{#CARTRIDGE_STATUS}' + value: ^$ + operator: NOT_MATCHES_REGEX + formulaid: A + item_prototypes: + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.8.{#SNMPINDEX}' + key: 'battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery cartridge estimated battery replace date. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7.{#SNMPINDEX}' + key: 'battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0)[0|1]{15}$")}=1' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.10.{#SNMPINDEX}' + key: 'battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0{16})$")}=0' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.5.{#SNMPINDEX}' + key: 'battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The battery pack temperature in Celsius. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.4.{#SNMPINDEX}' + key: 'system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery pack serial number. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External sensor port 1 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR1_NAME},1.3.6.1.4.1.318.1.1.25.1.2.1.3]' + key: external.sensor1.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR1_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR1_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR1_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'External sensor port 2 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR2_NAME},1.3.6.1.4.1.318.1.1.25.1.2.2.3]' + key: external.sensor2.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR2_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR2_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR2_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'Input phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.2.3.1.2.1.1]' + key: input.phases.discovery + delay: 1h + description: 'The input phase identifier. OID upsPhaseInputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase input current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.6.1.1.{#PHASEINDEX}' + key: 'phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The input current in 0.1 amperes, or -0.1 if it's + unsupported by this UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase input voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The input voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1]' + key: output.phases.discovery + delay: 1h + description: 'The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase output current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.4.1.1.{#PHASEINDEX}' + key: 'phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output load, %' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.10.1.1.{#PHASEINDEX}' + key: 'phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + macros: + - + macro: '{$BATTERY.CAPACITY.MIN.WARN}' + value: '50' + description: 'Minimum battery capacity percentage for trigger expression.' + - + macro: '{$BATTERY.TEMP.MAX.WARN}' + value: '55' + description: 'Maximum battery temperature for trigger expression.' + - + macro: '{$ICMP.LOSS.WARN}' + value: '20' + - + macro: '{$ICMP.RESPONSE_TIME.WARN}' + value: '0.15' + - + macro: '{$SNMP.TIMEOUT}' + value: 5m + description: 'The time interval for SNMP agent availability trigger expression.' + - + macro: '{$TIME.PERIOD}' + value: 15m + description: 'Time period for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MAX.WARN}' + value: '50.3' + description: 'Maximum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MIN.WARN}' + value: '49.7' + description: 'Minimum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MAX.WARN}' + value: '243' + description: 'Maximum input voltage for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MIN.WARN}' + value: '197' + description: 'Minimum input voltage for trigger expression.' + - + macro: '{$UPS.OUTPUT.MAX.WARN}' + value: '80' + description: 'Maximum output load in % for trigger expression.' + valuemaps: + - + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + mappings: + - + value: '1' + newvalue: Normal + - + value: '2' + newvalue: Warning + - + value: '3' + newvalue: Critical + - + value: '4' + newvalue: 'Not applicable' + - + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + mappings: + - + value: '1' + newvalue: 'no Battery Needs Replacing' + - + value: '2' + newvalue: 'battery Needs Replacing' + - + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + mappings: + - + value: '1' + newvalue: 'no Transfer' + - + value: '2' + newvalue: 'High Line Voltage' + - + value: '3' + newvalue: Brownout + - + value: '4' + newvalue: Blackout + - + value: '5' + newvalue: 'Small Momentary Sag' + - + value: '6' + newvalue: 'Deep Momentary Sag' + - + value: '7' + newvalue: 'Small Momentary Spike' + - + value: '8' + newvalue: 'Large Momentary Spike' + - + value: '9' + newvalue: 'Self Test' + - + value: '10' + newvalue: 'Rate of Voltage Change' + - + name: 'PowerNet-MIB::upsBasicBatteryStatus' + mappings: + - + value: '1' + newvalue: Unknown + - + value: '2' + newvalue: Normal + - + value: '3' + newvalue: Low + - + value: '4' + newvalue: 'In Fault Condition' + - + name: 'Service state' + mappings: + - + value: '0' + newvalue: Down + - + value: '1' + newvalue: Up + - + name: zabbix.host.available + mappings: + - + value: '0' + newvalue: 'not available' + - + value: '1' + newvalue: available + - + value: '2' + newvalue: unknown + graphs: + - + name: 'Capacity of the UPS batteries' + type: PIE + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS SRT 5000 SNMP' + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + - + name: Output + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS SRT 5000 SNMP' + key: 'output.current[upsHighPrecOutputCurrent]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS SRT 5000 SNMP' + key: 'output.load[upsHighPrecOutputLoad]' + - + name: Voltage + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS SRT 5000 SNMP' + key: 'input.voltage[upsHighPrecInputLineVoltage]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS SRT 5000 SNMP' + key: 'output.voltage[upsHighPrecOutputVoltage]' diff --git a/templates/power/apc/apc_ups_smart_srt_8000_snmp/README.md b/templates/power/apc/apc_ups_smart_srt_8000_snmp/README.md new file mode 100644 index 00000000000..f98b9c582f2 --- /dev/null +++ b/templates/power/apc/apc_ups_smart_srt_8000_snmp/README.md @@ -0,0 +1,159 @@ + +# APC Smart-UPS SRT 8000 SNMP + +## Overview + +For Zabbix version: 5.4 and higher +The template to monitor APC Smart-UPS SRT 8000 by Zabbix SNMP agent. +Note: please, use the latest version of the firmware for your NMC in order for the template to work correctly. + + + +This template was tested on: + +- APC Smart-UPS SRT 8000 + +## Setup + +> See [Zabbix template operation](https://www.zabbix.com/documentation/5.4/manual/config/templates_out_of_the_box/network_devices) for basic instructions. + +1\. Create a host for APC Smart-UPS SRT 8000 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} |<p>Minimum battery capacity percentage for trigger expression.</p> |`50` | +|{$BATTERY.TEMP.MAX.WARN} |<p>Maximum battery temperature for trigger expression.</p> |`55` | +|{$ICMP.LOSS.WARN} |<p>-</p> |`20` | +|{$ICMP.RESPONSE_TIME.WARN} |<p>-</p> |`0.15` | +|{$SNMP.TIMEOUT} |<p>The time interval for SNMP agent availability trigger expression.</p> |`5m` | +|{$TIME.PERIOD} |<p>Time period for trigger expression.</p> |`15m` | +|{$UPS.INPUT_FREQ.MAX.WARN} |<p>Maximum input frequency for trigger expression.</p> |`50.3` | +|{$UPS.INPUT_FREQ.MIN.WARN} |<p>Minimum input frequency for trigger expression.</p> |`49.7` | +|{$UPS.INPUT_VOLT.MAX.WARN} |<p>Maximum input voltage for trigger expression.</p> |`243` | +|{$UPS.INPUT_VOLT.MIN.WARN} |<p>Minimum input voltage for trigger expression.</p> |`197` | +|{$UPS.OUTPUT.MAX.WARN} |<p>Maximum output load in % for trigger expression.</p> |`80` | + +## Template links + +There are no template links in this template. + +## Discovery rules + +|Name|Description|Type|Key and additional info| +|----|-----------|----|----| +|Input phases discovery |<p>The input phase identifier. OID upsPhaseInputPhaseIndex.1.1</p> |SNMP |input.phases.discovery | +|Output phases discovery |<p>The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1</p> |SNMP |output.phases.discovery | +|External battery packs discovery | |SNMP |battery.packs.discovery<p>**Filter**:</p>AND <p>- A: {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`</p> | +|External bad battery packs discovery |<p>Discovery of the number of external defective battery packs.</p> |SNMP |battery.packs.bad.discovery | +|External sensor port 1 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor1.discovery | +|External sensor port 2 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor2.discovery | + +## Items collected + +|Group|Name|Description|Type|Key and additional info| +|-----|----|-----------|----|---------------------| +|General |Model |<p>MIB: PowerNet-MIB</p><p>The UPS model name (e.g. 'APC Smart-UPS 600').</p> |SNMP |system.model[upsBasicIdentModel]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Serial number |<p>MIB: PowerNet-MIB</p><p>An 8-character string identifying the serial number of</p><p> the UPS internal microprocessor. This number is set at</p><p> the factory. NOTE: This number does NOT correspond to</p><p> the serial number on the rear of the UPS.</p> |SNMP |system.sn[upsAdvIdentSerialNumber]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery status |<p>MIB: PowerNet-MIB</p><p>The status of the UPS batteries. A batteryLow(3) value</p><p> indicates the UPS will be unable to sustain the current</p><p> load, and its services will be lost if power is not restored.</p><p> The amount of run time in reserve at the time of low battery</p><p> can be configured by the upsAdvConfigLowBatteryRunTime.</p><p> A batteryInFaultCondition(4)value indicates that a battery</p><p> installed has an internal error condition.</p> |SNMP |battery.status[upsBasicBatteryStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsHighPrecBatteryCapacity]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery runtime remaining |<p>MIB: PowerNet-MIB</p><p>The UPS battery run time remaining before battery</p><p> exhaustion.</p> |SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery voltage |<p>MIB: PowerNet-MIB</p><p>The actual battery bus voltage in Volts.</p> |SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery last replace date |<p>MIB: PowerNet-MIB</p><p>The date when the UPS system's batteries were last replaced</p><p> in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value</p><p> is originally set at the factory. When the UPS batteries</p><p> are replaced, this value should be reset by the administrator.</p><p> For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.</p> |SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery replace indicator |<p>MIB: PowerNet-MIB</p><p>Indicates whether the UPS batteries need replacement.</p> |SNMP |battery.replace_indicator[upsAdvBatteryReplaceIndicator]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |External battery packs count |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS. If</p><p> the UPS does not use smart cells then the agent reports</p><p> ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_count[upsAdvBatteryNumOfBattPacks]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery temperature |<p>MIB: PowerNet-MIB</p><p>The current internal UPS temperature in Celsius.</p><p> Temperatures below zero read as 0.</p> |SNMP |battery.temperature[upsHighPrecBatteryTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input voltage |<p>MIB: PowerNet-MIB</p><p>The current utility line voltage in VAC.</p> |SNMP |input.voltage[upsHighPrecInputLineVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input frequency |<p>MIB: PowerNet-MIB</p><p>The current input frequency to the UPS system in Hz.</p> |SNMP |input.frequency[upsHighPrecInputFrequency]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input fail cause |<p>MIB: PowerNet-MIB</p><p>The reason for the occurrence of the last transfer to UPS</p><p>battery power. The variable is set to:</p><p>- noTransfer(1) -- if there is no transfer yet.</p><p>- highLineVoltage(2) -- if the transfer to battery is caused</p><p>by an over voltage greater than the high transfer voltage.</p><p>- brownout(3) -- if the duration of the outage is greater than</p><p>five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- blackout(4) -- if the duration of the outage is greater than five</p><p>seconds and the line voltage is between 40% of the rated</p><p>output voltage and ground.</p><p>- smallMomentarySag(5) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- deepMomentarySag(6) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and ground. The variable is set to</p><p>- smallMomentarySpike(7) -- if the line failure is caused by a</p><p>rate of change of input voltage less than ten volts per cycle.</p><p>- largeMomentarySpike(8) -- if the line failure is caused by</p><p>a rate of change of input voltage greater than ten volts per cycle.</p><p>- selfTest(9) -- if the UPS was commanded to do a self test.</p><p>- rateOfVoltageChange(10) -- if the failure is due to the rate of change of</p><p>the line voltage.</p> |SNMP |input.fail[upsAdvInputLineFailCause]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage of the UPS system in VAC.</p> |SNMP |output.voltage[upsHighPrecOutputVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output load |<p>MIB: PowerNet-MIB</p><p>The current UPS load expressed as percentage</p><p>of rated capacity.</p> |SNMP |output.load[upsHighPrecOutputLoad]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output current |<p>MIB: PowerNet-MIB</p><p>The current in amperes drawn by the load on the UPS.</p> |SNMP |output.current[upsHighPrecOutputCurrent]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output status |<p>MIB: PowerNet-MIB</p><p>The current state of the UPS. If the UPS is unable to</p><p> determine the state of the UPS this variable is set</p><p> to unknown(1).</p><p>During self-test most UPSes report onBattery(3) but</p><p> some that support it will report onBatteryTest(15).</p><p> To determine self-test status across all UPSes, refer</p><p> to the upsBasicStateOutputState OID.</p> |SNMP |output.status[upsBasicOutputStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |SNMP traps (fallback) |<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p> |SNMP_TRAP |snmptrap.fallback | +|General |System location |<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet,</p><p>3rd floor'). If the location is unknown, the value is the zero-length string.</p> |SNMP |system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System contact details |<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed</p><p>node, together with information on how to contact this person. If no contact</p><p>information is known, the value is the zero-length string.</p> |SNMP |system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |System object ID |<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management</p><p>subsystem contained in the entity. This value is allocated within the SMI enterprises</p><p>subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what</p><p>kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was</p><p>assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1</p><p>to its `Fred Router'.</p> |SNMP |system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System name |<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By</p><p>convention, this is the node's fully-qualified domain name. If the name is unknown,</p><p>the value is the zero-length string.</p> |SNMP |system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |{#PHASEINDEX}: Phase input voltage |<p>MIB: PowerNet-MIB</p><p>The input voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase input current |<p>MIB: PowerNet-MIB</p><p>The input current in 0.1 amperes, or -0.1 if it's</p><p> unsupported by this UPS.</p> |SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output current |<p>MIB: PowerNet-MIB</p><p>The output current in 0.1 amperes drawn</p><p> by the load on the UPS, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output load, % |<p>MIB: PowerNet-MIB</p><p>The percentage of the UPS load capacity in VA at</p><p> redundancy @ (n + x) presently being used on this</p><p> output phase, or -1 if it's unsupported by this UPS.</p> |SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |<p>MIB: PowerNet-MIB</p><p>The battery cartridge status.</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |<p>MIB: PowerNet-MIB</p><p>The battery pack temperature in Celsius.</p> |SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |<p>MIB: PowerNet-MIB</p><p>The battery pack serial number.</p> |SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date |<p>MIB: PowerNet-MIB</p><p>The battery cartridge estimated battery replace date.</p> |SNMP |battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health |<p>MIB: PowerNet-MIB</p><p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |SNMP |battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#SNMPINDEX}: External battery packs bad |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS that</p><p>are defective. If the UPS does not use smart cells then the</p><p>agent reports ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Status |Uptime |<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management</p><p>portion of the system was last re-initialized.</p> |SNMP |system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p> | +|Status |SNMP agent availability |<p>-</p> |INTERNAL |zabbix[host,snmp,available] | +|Status |ICMP ping |<p>-</p> |SIMPLE |icmpping | +|Status |ICMP loss |<p>-</p> |SIMPLE |icmppingloss | +|Status |ICMP response time |<p>-</p> |SIMPLE |icmppingsec | + +## Triggers + +|Name|Description|Expression|Severity|Dependencies and additional info| +|----|-----------|----|----|----| +|Battery has an internal error condition |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=4` |AVERAGE | | +|Battery is Low |<p>The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=3` |AVERAGE | | +|Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%) | |`{TEMPLATE_NAME:battery.capacity[upsHighPrecBatteryCapacity].last()} < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | +|Battery needs replacement |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.replace_indicator[upsAdvBatteryReplaceIndicator].last()}=2` |HIGH | | +|Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryTemperature].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | +|Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})` |HIGH | | +|Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD}) |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:output.load[upsHighPrecOutputLoad].min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}` |HIGH | | +|UPS is Timed Sleeping | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=5` |AVERAGE | | +|UPS is Switched Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=9` |AVERAGE | | +|UPS is Software Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=6` |AVERAGE | | +|UPS is Sleeping Until Power Return | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=11` |AVERAGE | | +|UPS is Rebooting | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=8` |AVERAGE | | +|UPS is On Smart Trim | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=12` |AVERAGE | | +|UPS is on Smart Boost | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=4` |AVERAGE | | +|UPS is on battery | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=3` |AVERAGE | | +|UPS is Off | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=7` |AVERAGE | | +|UPS is Emergency Static Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=16` |AVERAGE | | +|UPS is Hardware Failure Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=10` |AVERAGE | | +|System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=0` |WARNING | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |<p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |`{TEMPLATE_NAME:battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0)[0|1]{15}$")}=1` |WARNING | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=3` |HIGH | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=3` |HIGH | | +|{HOST.NAME} has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> | +|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`{TEMPLATE_NAME:icmpping.max(#3)}=0` |HIGH | | +|High ICMP ping loss |<p>-</p> |`{TEMPLATE_NAME:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {TEMPLATE_NAME:icmppingloss.min(5m)}<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|High ICMP ping response time |<p>-</p> |`{TEMPLATE_NAME:icmppingsec.avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> | + +## Feedback + +Please report any issues with the template at https://support.zabbix.com + +You can also provide a 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). + diff --git a/templates/power/apc/apc_ups_smart_srt_8000_snmp/template_power_apc_ups_smart_srt_8000_snmp.yaml b/templates/power/apc/apc_ups_smart_srt_8000_snmp/template_power_apc_ups_smart_srt_8000_snmp.yaml new file mode 100644 index 00000000000..f7ae5a6e53f --- /dev/null +++ b/templates/power/apc/apc_ups_smart_srt_8000_snmp/template_power_apc_ups_smart_srt_8000_snmp.yaml @@ -0,0 +1,1498 @@ +zabbix_export: + version: '5.4' + date: '2021-03-24T17:31:52Z' + groups: + - + name: Templates/Power + templates: + - + template: 'APC Smart-UPS SRT 8000 SNMP' + name: 'APC Smart-UPS SRT 8000 SNMP' + description: | + Template Power APC Smart-UPS SRT 8000 + + MIBs used: + PowerNet-MIB + SNMPv2-MIB + + You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups + + Template tooling version used: 0.38 + groups: + - + name: Templates/Power + applications: + - + name: General + - + name: Status + items: + - + name: 'Battery capacity' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.1.0 + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The remaining battery capacity expressed as + percentage of full capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' + opdata: 'Current capacity: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'External battery packs count' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.5.0 + key: 'battery.external_packs_count[upsAdvBatteryNumOfBattPacks]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery last replace date' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.3.0 + key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery replace indicator' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.4.0 + key: 'battery.replace_indicator[upsAdvBatteryReplaceIndicator]' + history: 7d + description: | + MIB: PowerNet-MIB + Indicates whether the UPS batteries need replacement. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=2' + name: 'Battery needs replacement' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Battery runtime remaining' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.3.0 + key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' + history: 7d + value_type: FLOAT + units: s + description: | + MIB: PowerNet-MIB + The UPS battery run time remaining before battery + exhaustion. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.1.0 + key: 'battery.status[upsBasicBatteryStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=4' + name: 'Battery has an internal error condition' + priority: AVERAGE + description: 'A battery installed has an internal error condition.' + - + expression: '{last()}=3' + name: 'Battery is Low' + priority: AVERAGE + description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' + - + name: 'Battery temperature' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.2.0 + key: 'battery.temperature[upsHighPrecBatteryTemperature]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The current internal UPS temperature in Celsius. + Temperatures below zero read as 0. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Battery voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.4.0 + key: 'battery.voltage[upsHighPrecBatteryActualVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The actual battery bus voltage in Volts. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'ICMP ping' + type: SIMPLE + key: icmpping + history: 1w + applications: + - + name: Status + valuemap: + name: 'Service state' + triggers: + - + expression: '{max(#3)}=0' + name: 'Unavailable by ICMP ping' + priority: HIGH + description: 'Last three attempts returned timeout. Please check device connectivity.' + - + name: 'ICMP loss' + type: SIMPLE + key: icmppingloss + history: 1w + value_type: FLOAT + units: '%' + applications: + - + name: Status + triggers: + - + expression: '{min(5m)}>{$ICMP.LOSS.WARN} and {min(5m)}<100' + name: 'High ICMP ping loss' + opdata: 'Loss: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS SRT 8000 SNMP:icmpping.max(#3)}=0' + - + name: 'ICMP response time' + type: SIMPLE + key: icmppingsec + history: 1w + value_type: FLOAT + units: s + applications: + - + name: Status + triggers: + - + expression: '{avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}' + name: 'High ICMP ping response time' + opdata: 'Value: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'High ICMP ping loss' + expression: '{APC Smart-UPS SRT 8000 SNMP:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {APC Smart-UPS SRT 8000 SNMP:icmppingloss.min(5m)}<100' + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS SRT 8000 SNMP:icmpping.max(#3)}=0' + - + name: 'Input fail cause' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.2.5.0 + key: 'input.fail[upsAdvInputLineFailCause]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Input frequency' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.4.0 + key: 'input.frequency[upsHighPrecInputFrequency]' + history: 7d + value_type: FLOAT + units: Hz + description: | + MIB: PowerNet-MIB + The current input frequency to the UPS system in Hz. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' + opdata: 'Current frequency: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Input voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.1.0 + key: 'input.voltage[upsHighPrecInputLineVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The current utility line voltage in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.4.0 + key: 'output.current[upsHighPrecOutputCurrent]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The current in amperes drawn by the load on the UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Output load' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.3.0 + key: 'output.load[upsHighPrecOutputLoad]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The current UPS load expressed as percentage + of rated capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' + opdata: 'Current load: {ITEM.LASTVALUE1}' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Output status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.1.1.0 + key: 'output.status[upsBasicOutputStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=16' + name: 'UPS is Emergency Static Bypass' + priority: AVERAGE + - + expression: '{last()}=10' + name: 'UPS is Hardware Failure Bypass' + priority: AVERAGE + - + expression: '{last()}=7' + name: 'UPS is Off' + priority: AVERAGE + - + expression: '{last()}=3' + name: 'UPS is on battery' + priority: AVERAGE + - + expression: '{last()}=4' + name: 'UPS is on Smart Boost' + priority: AVERAGE + - + expression: '{last()}=12' + name: 'UPS is On Smart Trim' + priority: AVERAGE + - + expression: '{last()}=8' + name: 'UPS is Rebooting' + priority: AVERAGE + - + expression: '{last()}=11' + name: 'UPS is Sleeping Until Power Return' + priority: AVERAGE + - + expression: '{last()}=6' + name: 'UPS is Software Bypass' + priority: AVERAGE + - + expression: '{last()}=9' + name: 'UPS is Switched Bypass' + priority: AVERAGE + - + expression: '{last()}=5' + name: 'UPS is Timed Sleeping' + priority: AVERAGE + - + name: 'Output voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.1.0 + key: 'output.voltage[upsHighPrecOutputVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage of the UPS system in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'SNMP traps (fallback)' + type: SNMP_TRAP + key: snmptrap.fallback + history: 2w + trends: '0' + value_type: LOG + description: 'Item is used to collect all SNMP traps unmatched by other snmptrap items' + applications: + - + name: General + logtimefmt: 'hh:mm:sszyyyy/MM/dd' + - + name: 'System contact details' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.4.0 + key: 'system.contact[sysContact.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: CONTACT + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System description' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.1.0 + key: 'system.descr[sysDescr.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System location' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.6.0 + key: 'system.location[sysLocation.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: LOCATION + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: Model + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.1.1.0 + key: 'system.model[upsBasicIdentModel]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The UPS model name (e.g. 'APC Smart-UPS 600'). + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'System name' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.5.0 + key: system.name + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: NAME + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + triggers: + - + expression: '{diff()}=1 and {strlen()}>0' + name: 'System name has changed (new name: {ITEM.VALUE})' + priority: INFO + description: 'System name has changed. Ack to close.' + manual_close: 'YES' + - + name: 'System object ID' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.2.0 + key: 'system.objectid[sysObjectID.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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'. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: 'Serial number' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.2.3.0 + key: 'system.sn[upsAdvIdentSerialNumber]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: Uptime + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.3.0 + key: 'system.uptime[sysUpTime.0]' + delay: 30s + history: 2w + trends: 0d + units: uptime + description: | + MIB: SNMPv2-MIB + The time (in hundredths of a second) since the network management + portion of the system was last re-initialized. + applications: + - + name: Status + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + triggers: + - + expression: '{last()}<10m' + name: '{HOST.NAME} has been restarted (uptime < 10m)' + priority: WARNING + description: 'Uptime is less than 10 minutes' + manual_close: 'YES' + dependencies: + - + name: 'No SNMP data collection' + expression: '{APC Smart-UPS SRT 8000 SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + - + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' + history: 7d + applications: + - + name: Status + valuemap: + name: zabbix.host.available + triggers: + - + expression: '{max({$SNMP.TIMEOUT})}=0' + name: 'No SNMP data collection' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.' + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC Smart-UPS SRT 8000 SNMP:icmpping.max(#3)}=0' + discovery_rules: + - + name: 'External bad battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_PACKS},1.3.6.1.4.1.318.1.1.1.2.2.6]' + key: battery.packs.bad.discovery + delay: 1h + description: 'Discovery of the number of external defective battery packs.' + item_prototypes: + - + name: '{#SNMPINDEX}: External battery packs bad' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.6.0 + key: 'battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#CARTRIDGE_STATUS},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7,{#BATTERY_PACK},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.1,{#CARTRIDGE_INDEX},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.2]' + key: battery.packs.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - + macro: '{#CARTRIDGE_STATUS}' + value: ^$ + operator: NOT_MATCHES_REGEX + formulaid: A + item_prototypes: + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.8.{#SNMPINDEX}' + key: 'battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery cartridge estimated battery replace date. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7.{#SNMPINDEX}' + key: 'battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0)[0|1]{15}$")}=1' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.10.{#SNMPINDEX}' + key: 'battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0{16})$")}=0' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.5.{#SNMPINDEX}' + key: 'battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The battery pack temperature in Celsius. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.4.{#SNMPINDEX}' + key: 'system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery pack serial number. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External sensor port 1 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR1_NAME},1.3.6.1.4.1.318.1.1.25.1.2.1.3]' + key: external.sensor1.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR1_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR1_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR1_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'External sensor port 2 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR2_NAME},1.3.6.1.4.1.318.1.1.25.1.2.2.3]' + key: external.sensor2.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR2_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR2_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR2_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'Input phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.2.3.1.2.1.1]' + key: input.phases.discovery + delay: 1h + description: 'The input phase identifier. OID upsPhaseInputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase input current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.6.1.1.{#PHASEINDEX}' + key: 'phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The input current in 0.1 amperes, or -0.1 if it's + unsupported by this UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase input voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The input voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1]' + key: output.phases.discovery + delay: 1h + description: 'The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase output current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.4.1.1.{#PHASEINDEX}' + key: 'phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output load, %' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.10.1.1.{#PHASEINDEX}' + key: 'phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + macros: + - + macro: '{$BATTERY.CAPACITY.MIN.WARN}' + value: '50' + description: 'Minimum battery capacity percentage for trigger expression.' + - + macro: '{$BATTERY.TEMP.MAX.WARN}' + value: '55' + description: 'Maximum battery temperature for trigger expression.' + - + macro: '{$ICMP.LOSS.WARN}' + value: '20' + - + macro: '{$ICMP.RESPONSE_TIME.WARN}' + value: '0.15' + - + macro: '{$SNMP.TIMEOUT}' + value: 5m + description: 'The time interval for SNMP agent availability trigger expression.' + - + macro: '{$TIME.PERIOD}' + value: 15m + description: 'Time period for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MAX.WARN}' + value: '50.3' + description: 'Maximum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MIN.WARN}' + value: '49.7' + description: 'Minimum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MAX.WARN}' + value: '243' + description: 'Maximum input voltage for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MIN.WARN}' + value: '197' + description: 'Minimum input voltage for trigger expression.' + - + macro: '{$UPS.OUTPUT.MAX.WARN}' + value: '80' + description: 'Maximum output load in % for trigger expression.' + valuemaps: + - + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + mappings: + - + value: '1' + newvalue: Normal + - + value: '2' + newvalue: Warning + - + value: '3' + newvalue: Critical + - + value: '4' + newvalue: 'Not applicable' + - + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + mappings: + - + value: '1' + newvalue: 'no Battery Needs Replacing' + - + value: '2' + newvalue: 'battery Needs Replacing' + - + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + mappings: + - + value: '1' + newvalue: 'no Transfer' + - + value: '2' + newvalue: 'High Line Voltage' + - + value: '3' + newvalue: Brownout + - + value: '4' + newvalue: Blackout + - + value: '5' + newvalue: 'Small Momentary Sag' + - + value: '6' + newvalue: 'Deep Momentary Sag' + - + value: '7' + newvalue: 'Small Momentary Spike' + - + value: '8' + newvalue: 'Large Momentary Spike' + - + value: '9' + newvalue: 'Self Test' + - + value: '10' + newvalue: 'Rate of Voltage Change' + - + name: 'PowerNet-MIB::upsBasicBatteryStatus' + mappings: + - + value: '1' + newvalue: Unknown + - + value: '2' + newvalue: Normal + - + value: '3' + newvalue: Low + - + value: '4' + newvalue: 'In Fault Condition' + - + name: 'Service state' + mappings: + - + value: '0' + newvalue: Down + - + value: '1' + newvalue: Up + - + name: zabbix.host.available + mappings: + - + value: '0' + newvalue: 'not available' + - + value: '1' + newvalue: available + - + value: '2' + newvalue: unknown + graphs: + - + name: 'Capacity of the UPS batteries' + type: PIE + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS SRT 8000 SNMP' + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + - + name: Output + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS SRT 8000 SNMP' + key: 'output.current[upsHighPrecOutputCurrent]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS SRT 8000 SNMP' + key: 'output.load[upsHighPrecOutputLoad]' + - + name: Voltage + graph_items: + - + color: 1A7C11 + item: + host: 'APC Smart-UPS SRT 8000 SNMP' + key: 'input.voltage[upsHighPrecInputLineVoltage]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC Smart-UPS SRT 8000 SNMP' + key: 'output.voltage[upsHighPrecOutputVoltage]' diff --git a/templates/power/apc/apc_ups_snmp/README.md b/templates/power/apc/apc_ups_snmp/README.md new file mode 100644 index 00000000000..6c382c71fc3 --- /dev/null +++ b/templates/power/apc/apc_ups_snmp/README.md @@ -0,0 +1,155 @@ + +# APC UPS SNMP + +## Overview + +For Zabbix version: 5.4 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/5.4/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} |<p>Minimum battery capacity percentage for trigger expression.</p> |`50` | +|{$BATTERY.TEMP.MAX.WARN} |<p>Maximum battery temperature for trigger expression.</p> |`55` | +|{$ICMP.LOSS.WARN} |<p>-</p> |`20` | +|{$ICMP.RESPONSE_TIME.WARN} |<p>-</p> |`0.15` | +|{$SNMP.TIMEOUT} |<p>The time interval for SNMP agent availability trigger expression.</p> |`5m` | +|{$TIME.PERIOD} |<p>Time period for trigger expression.</p> |`15m` | +|{$UPS.INPUT_FREQ.MAX.WARN} |<p>Maximum input frequency for trigger expression.</p> |`50.3` | +|{$UPS.INPUT_FREQ.MIN.WARN} |<p>Minimum input frequency for trigger expression.</p> |`49.7` | +|{$UPS.INPUT_VOLT.MAX.WARN} |<p>Maximum input voltage for trigger expression.</p> |`243` | +|{$UPS.INPUT_VOLT.MIN.WARN} |<p>Minimum input voltage for trigger expression.</p> |`197` | +|{$UPS.OUTPUT.MAX.WARN} |<p>Maximum output load in % for trigger expression.</p> |`80` | + +## Template links + +There are no template links in this template. + +## Discovery rules + +|Name|Description|Type|Key and additional info| +|----|-----------|----|----| +|Input phases discovery |<p>The input phase identifier. OID upsPhaseInputPhaseIndex.1.1</p> |SNMP |input.phases.discovery | +|Output phases discovery |<p>The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1</p> |SNMP |output.phases.discovery | +|External battery packs discovery | |SNMP |battery.packs.discovery<p>**Filter**:</p>AND <p>- A: {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`</p> | +|External bad battery packs discovery |<p>Discovery of the number of external defective battery packs.</p> |SNMP |battery.packs.bad.discovery | +|External sensor port 1 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor1.discovery | +|External sensor port 2 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor2.discovery | + +## Items collected + +|Group|Name|Description|Type|Key and additional info| +|-----|----|-----------|----|---------------------| +|General |Model |<p>MIB: PowerNet-MIB</p><p>The UPS model name (e.g. 'APC Smart-UPS 600').</p> |SNMP |system.model[upsBasicIdentModel]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Serial number |<p>MIB: PowerNet-MIB</p><p>An 8-character string identifying the serial number of</p><p> the UPS internal microprocessor. This number is set at</p><p> the factory. NOTE: This number does NOT correspond to</p><p> the serial number on the rear of the UPS.</p> |SNMP |system.sn[upsAdvIdentSerialNumber]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery status |<p>MIB: PowerNet-MIB</p><p>The status of the UPS batteries. A batteryLow(3) value</p><p> indicates the UPS will be unable to sustain the current</p><p> load, and its services will be lost if power is not restored.</p><p> The amount of run time in reserve at the time of low battery</p><p> can be configured by the upsAdvConfigLowBatteryRunTime.</p><p> A batteryInFaultCondition(4)value indicates that a battery</p><p> installed has an internal error condition.</p> |SNMP |battery.status[upsBasicBatteryStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsHighPrecBatteryCapacity]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery runtime remaining |<p>MIB: PowerNet-MIB</p><p>The UPS battery run time remaining before battery</p><p> exhaustion.</p> |SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery voltage |<p>MIB: PowerNet-MIB</p><p>The actual battery bus voltage in Volts.</p> |SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery last replace date |<p>MIB: PowerNet-MIB</p><p>The date when the UPS system's batteries were last replaced</p><p> in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value</p><p> is originally set at the factory. When the UPS batteries</p><p> are replaced, this value should be reset by the administrator.</p><p> For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.</p> |SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery replace indicator |<p>MIB: PowerNet-MIB</p><p>Indicates whether the UPS batteries need replacement.</p> |SNMP |battery.replace_indicator[upsAdvBatteryReplaceIndicator]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |External battery packs count |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS. If</p><p> the UPS does not use smart cells then the agent reports</p><p> ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_count[upsAdvBatteryNumOfBattPacks]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery temperature |<p>MIB: PowerNet-MIB</p><p>The current internal UPS temperature in Celsius.</p><p> Temperatures below zero read as 0.</p> |SNMP |battery.temperature[upsHighPrecBatteryTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input voltage |<p>MIB: PowerNet-MIB</p><p>The current utility line voltage in VAC.</p> |SNMP |input.voltage[upsHighPrecInputLineVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input frequency |<p>MIB: PowerNet-MIB</p><p>The current input frequency to the UPS system in Hz.</p> |SNMP |input.frequency[upsHighPrecInputFrequency]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input fail cause |<p>MIB: PowerNet-MIB</p><p>The reason for the occurrence of the last transfer to UPS</p><p>battery power. The variable is set to:</p><p>- noTransfer(1) -- if there is no transfer yet.</p><p>- highLineVoltage(2) -- if the transfer to battery is caused</p><p>by an over voltage greater than the high transfer voltage.</p><p>- brownout(3) -- if the duration of the outage is greater than</p><p>five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- blackout(4) -- if the duration of the outage is greater than five</p><p>seconds and the line voltage is between 40% of the rated</p><p>output voltage and ground.</p><p>- smallMomentarySag(5) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- deepMomentarySag(6) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and ground. The variable is set to</p><p>- smallMomentarySpike(7) -- if the line failure is caused by a</p><p>rate of change of input voltage less than ten volts per cycle.</p><p>- largeMomentarySpike(8) -- if the line failure is caused by</p><p>a rate of change of input voltage greater than ten volts per cycle.</p><p>- selfTest(9) -- if the UPS was commanded to do a self test.</p><p>- rateOfVoltageChange(10) -- if the failure is due to the rate of change of</p><p>the line voltage.</p> |SNMP |input.fail[upsAdvInputLineFailCause]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage of the UPS system in VAC.</p> |SNMP |output.voltage[upsHighPrecOutputVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output load |<p>MIB: PowerNet-MIB</p><p>The current UPS load expressed as percentage</p><p>of rated capacity.</p> |SNMP |output.load[upsHighPrecOutputLoad]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output current |<p>MIB: PowerNet-MIB</p><p>The current in amperes drawn by the load on the UPS.</p> |SNMP |output.current[upsHighPrecOutputCurrent]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output status |<p>MIB: PowerNet-MIB</p><p>The current state of the UPS. If the UPS is unable to</p><p> determine the state of the UPS this variable is set</p><p> to unknown(1).</p><p>During self-test most UPSes report onBattery(3) but</p><p> some that support it will report onBatteryTest(15).</p><p> To determine self-test status across all UPSes, refer</p><p> to the upsBasicStateOutputState OID.</p> |SNMP |output.status[upsBasicOutputStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |SNMP traps (fallback) |<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p> |SNMP_TRAP |snmptrap.fallback | +|General |System location |<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet,</p><p>3rd floor'). If the location is unknown, the value is the zero-length string.</p> |SNMP |system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System contact details |<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed</p><p>node, together with information on how to contact this person. If no contact</p><p>information is known, the value is the zero-length string.</p> |SNMP |system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |System object ID |<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management</p><p>subsystem contained in the entity. This value is allocated within the SMI enterprises</p><p>subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what</p><p>kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was</p><p>assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1</p><p>to its `Fred Router'.</p> |SNMP |system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System name |<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By</p><p>convention, this is the node's fully-qualified domain name. If the name is unknown,</p><p>the value is the zero-length string.</p> |SNMP |system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |{#PHASEINDEX}: Phase input voltage |<p>MIB: PowerNet-MIB</p><p>The input voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase input current |<p>MIB: PowerNet-MIB</p><p>The input current in 0.1 amperes, or -0.1 if it's</p><p> unsupported by this UPS.</p> |SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output current |<p>MIB: PowerNet-MIB</p><p>The output current in 0.1 amperes drawn</p><p> by the load on the UPS, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output load, % |<p>MIB: PowerNet-MIB</p><p>The percentage of the UPS load capacity in VA at</p><p> redundancy @ (n + x) presently being used on this</p><p> output phase, or -1 if it's unsupported by this UPS.</p> |SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |<p>MIB: PowerNet-MIB</p><p>The battery cartridge status.</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |<p>MIB: PowerNet-MIB</p><p>The battery pack temperature in Celsius.</p> |SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |<p>MIB: PowerNet-MIB</p><p>The battery pack serial number.</p> |SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date |<p>MIB: PowerNet-MIB</p><p>The battery cartridge estimated battery replace date.</p> |SNMP |battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health |<p>MIB: PowerNet-MIB</p><p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |SNMP |battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#SNMPINDEX}: External battery packs bad |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS that</p><p>are defective. If the UPS does not use smart cells then the</p><p>agent reports ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Status |Uptime |<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management</p><p>portion of the system was last re-initialized.</p> |SNMP |system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p> | +|Status |SNMP agent availability |<p>-</p> |INTERNAL |zabbix[host,snmp,available] | +|Status |ICMP ping |<p>-</p> |SIMPLE |icmpping | +|Status |ICMP loss |<p>-</p> |SIMPLE |icmppingloss | +|Status |ICMP response time |<p>-</p> |SIMPLE |icmppingsec | + +## Triggers + +|Name|Description|Expression|Severity|Dependencies and additional info| +|----|-----------|----|----|----| +|Battery has an internal error condition |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=4` |AVERAGE | | +|Battery is Low |<p>The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=3` |AVERAGE | | +|Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%) | |`{TEMPLATE_NAME:battery.capacity[upsHighPrecBatteryCapacity].last()} < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | +|Battery needs replacement |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.replace_indicator[upsAdvBatteryReplaceIndicator].last()}=2` |HIGH | | +|Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryTemperature].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | +|Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})` |HIGH | | +|Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD}) |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:output.load[upsHighPrecOutputLoad].min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}` |HIGH | | +|UPS is Timed Sleeping | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=5` |AVERAGE | | +|UPS is Switched Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=9` |AVERAGE | | +|UPS is Software Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=6` |AVERAGE | | +|UPS is Sleeping Until Power Return | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=11` |AVERAGE | | +|UPS is Rebooting | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=8` |AVERAGE | | +|UPS is On Smart Trim | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=12` |AVERAGE | | +|UPS is on Smart Boost | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=4` |AVERAGE | | +|UPS is on battery | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=3` |AVERAGE | | +|UPS is Off | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=7` |AVERAGE | | +|UPS is Emergency Static Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=16` |AVERAGE | | +|UPS is Hardware Failure Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=10` |AVERAGE | | +|System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=0` |WARNING | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |<p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |`{TEMPLATE_NAME:battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0)[0|1]{15}$")}=1` |WARNING | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=3` |HIGH | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=3` |HIGH | | +|{HOST.NAME} has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> | +|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`{TEMPLATE_NAME:icmpping.max(#3)}=0` |HIGH | | +|High ICMP ping loss |<p>-</p> |`{TEMPLATE_NAME:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {TEMPLATE_NAME:icmppingloss.min(5m)}<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|High ICMP ping response time |<p>-</p> |`{TEMPLATE_NAME:icmppingsec.avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> | + +## Feedback + +Please report any issues with the template at https://support.zabbix.com + +You can also provide a 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). + diff --git a/templates/power/apc_ups_snmp/template_power_apc_ups_snmp.yaml b/templates/power/apc/apc_ups_snmp/template_power_apc_ups_snmp.yaml index de3012bf471..b6125627579 100644 --- a/templates/power/apc_ups_snmp/template_power_apc_ups_snmp.yaml +++ b/templates/power/apc/apc_ups_snmp/template_power_apc_ups_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-03-17T13:06:24Z' + date: '2021-03-24T17:33:20Z' groups: - name: Templates/Power @@ -30,8 +30,8 @@ zabbix_export: - name: 'Battery capacity' type: SNMP_AGENT - snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.1.0 - key: 'battery.capacity[upsAdvBatteryCapacity]' + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.1.0 + key: 'battery.capacity[upsHighPrecBatteryCapacity]' history: 7d value_type: FLOAT units: '%' @@ -44,9 +44,19 @@ zabbix_export: name: General preprocessing: - + type: MULTIPLIER + parameters: + - '0.1' + - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 6h + triggers: + - + expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' + opdata: 'Current capacity: {ITEM.LASTVALUE1}' + priority: HIGH - name: 'External battery packs count' type: SNMP_AGENT @@ -897,7 +907,7 @@ zabbix_export: - 6h trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=1' + expression: '{regexp("^(0{16})$")}=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -1231,8 +1241,92 @@ zabbix_export: name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH + - + name: 'Output phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1]' + key: output.phases.discovery + delay: 1h + description: 'The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase output current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.4.1.1.{#PHASEINDEX}' + key: 'phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output load, %' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.10.1.1.{#PHASEINDEX}' + key: 'phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH macros: - + macro: '{$BATTERY.CAPACITY.MIN.WARN}' + value: '50' + description: 'Minimum battery capacity percentage for trigger expression.' + - macro: '{$BATTERY.TEMP.MAX.WARN}' value: '55' description: 'Maximum battery temperature for trigger expression.' @@ -1391,26 +1485,10 @@ zabbix_export: host: 'APC UPS SNMP' - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC UPS SNMP' - - - type: GRAPH_CLASSIC x: '8' 'y': '4' width: '8' - height: '7' + height: '5' fields: - type: INTEGER @@ -1427,7 +1505,7 @@ zabbix_export: x: '16' 'y': '4' width: '8' - height: '7' + height: '5' fields: - type: INTEGER @@ -1542,7 +1620,7 @@ zabbix_export: color: 1A7C11 item: host: 'APC UPS SNMP' - key: 'battery.capacity[upsAdvBatteryCapacity]' + key: 'battery.capacity[upsHighPrecBatteryCapacity]' - name: Output graph_items: diff --git a/templates/power/apc_ups_snmp/README.md b/templates/power/apc/apc_ups_symmetra_lx_snmp/README.md index e84595a3379..0495e574dd7 100644 --- a/templates/power/apc_ups_snmp/README.md +++ b/templates/power/apc/apc_ups_symmetra_lx_snmp/README.md @@ -1,19 +1,22 @@ -# APC UPS SNMP +# APC UPS Symmetra LX SNMP ## Overview For Zabbix version: 5.4 and higher The template to monitor APC UPS Symmetra LX by Zabbix SNMP agent. +Note: please, use the latest version of the firmware for your NMC in order for the template to work correctly. This template was tested on: -- APC UPS Symmetra LX (without external batteries) +- APC UPS Symmetra LX 16k (without external batteries) ## Setup +> See [Zabbix template operation](https://www.zabbix.com/documentation/5.4/manual/config/templates_out_of_the_box/network_devices) for basic instructions. + 1\. Create a host for APC UPS Symmetra LX management IP as SNMPv2 interface. 2\. Link the template to the host. @@ -30,6 +33,7 @@ No specific Zabbix configuration is required. |Name|Description|Default| |----|-----------|-------| +|{$BATTERY.CAPACITY.MIN.WARN} |<p>Minimum battery capacity percentage for trigger expression.</p> |`50` | |{$BATTERY.TEMP.MAX.WARN} |<p>Maximum battery temperature for trigger expression.</p> |`55` | |{$ICMP.LOSS.WARN} |<p>-</p> |`20` | |{$ICMP.RESPONSE_TIME.WARN} |<p>-</p> |`0.15` | @@ -50,6 +54,7 @@ There are no template links in this template. |Name|Description|Type|Key and additional info| |----|-----------|----|----| |Input phases discovery |<p>The input phase identifier. OID upsPhaseInputPhaseIndex.1.1</p> |SNMP |input.phases.discovery | +|Output phases discovery |<p>The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1</p> |SNMP |output.phases.discovery | |External battery packs discovery | |SNMP |battery.packs.discovery<p>**Filter**:</p>AND <p>- A: {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`</p> | |External bad battery packs discovery |<p>Discovery of the number of external defective battery packs.</p> |SNMP |battery.packs.bad.discovery | |External sensor port 1 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor1.discovery | @@ -62,7 +67,7 @@ There are no template links in this template. |General |Model |<p>MIB: PowerNet-MIB</p><p>The UPS model name (e.g. 'APC Smart-UPS 600').</p> |SNMP |system.model[upsBasicIdentModel]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |General |Serial number |<p>MIB: PowerNet-MIB</p><p>An 8-character string identifying the serial number of</p><p> the UPS internal microprocessor. This number is set at</p><p> the factory. NOTE: This number does NOT correspond to</p><p> the serial number on the rear of the UPS.</p> |SNMP |system.sn[upsAdvIdentSerialNumber]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |General |Battery status |<p>MIB: PowerNet-MIB</p><p>The status of the UPS batteries. A batteryLow(3) value</p><p> indicates the UPS will be unable to sustain the current</p><p> load, and its services will be lost if power is not restored.</p><p> The amount of run time in reserve at the time of low battery</p><p> can be configured by the upsAdvConfigLowBatteryRunTime.</p><p> A batteryInFaultCondition(4)value indicates that a battery</p><p> installed has an internal error condition.</p> |SNMP |battery.status[upsBasicBatteryStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | -|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsAdvBatteryCapacity]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsHighPrecBatteryCapacity]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |General |Battery runtime remaining |<p>MIB: PowerNet-MIB</p><p>The UPS battery run time remaining before battery</p><p> exhaustion.</p> |SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |General |Battery voltage |<p>MIB: PowerNet-MIB</p><p>The actual battery bus voltage in Volts.</p> |SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |General |Battery last replace date |<p>MIB: PowerNet-MIB</p><p>The date when the UPS system's batteries were last replaced</p><p> in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value</p><p> is originally set at the factory. When the UPS batteries</p><p> are replaced, this value should be reset by the administrator.</p><p> For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.</p> |SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | @@ -84,6 +89,9 @@ There are no template links in this template. |General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | |General |{#PHASEINDEX}: Phase input voltage |<p>MIB: PowerNet-MIB</p><p>The input voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |General |{#PHASEINDEX}: Phase input current |<p>MIB: PowerNet-MIB</p><p>The input current in 0.1 amperes, or -0.1 if it's</p><p> unsupported by this UPS.</p> |SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output current |<p>MIB: PowerNet-MIB</p><p>The output current in 0.1 amperes drawn</p><p> by the load on the UPS, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output load, % |<p>MIB: PowerNet-MIB</p><p>The percentage of the UPS load capacity in VA at</p><p> redundancy @ (n + x) presently being used on this</p><p> output phase, or -1 if it's unsupported by this UPS.</p> |SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |<p>MIB: PowerNet-MIB</p><p>The battery cartridge status.</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |<p>MIB: PowerNet-MIB</p><p>The battery pack temperature in Celsius.</p> |SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |<p>MIB: PowerNet-MIB</p><p>The battery pack serial number.</p> |SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | @@ -108,6 +116,7 @@ There are no template links in this template. |----|-----------|----|----|----| |Battery has an internal error condition |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=4` |AVERAGE | | |Battery is Low |<p>The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=3` |AVERAGE | | +|Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%) | |`{TEMPLATE_NAME:battery.capacity[upsHighPrecBatteryCapacity].last()} < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | |Battery needs replacement |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.replace_indicator[upsAdvBatteryReplaceIndicator].last()}=2` |HIGH | | |Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryTemperature].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | |Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | @@ -126,7 +135,8 @@ There are no template links in this template. |UPS is Hardware Failure Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=10` |AVERAGE | | |System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> | |{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | -|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=1` |WARNING | | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=0` |WARNING | | |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |<p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |`{TEMPLATE_NAME:battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0)[0|1]{15}$")}=1` |WARNING | | |{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=4` |INFO | | diff --git a/templates/power/apc/apc_ups_symmetra_lx_snmp/template_power_apc_ups_symmetra_lx_snmp.yaml b/templates/power/apc/apc_ups_symmetra_lx_snmp/template_power_apc_ups_symmetra_lx_snmp.yaml new file mode 100644 index 00000000000..370a65318af --- /dev/null +++ b/templates/power/apc/apc_ups_symmetra_lx_snmp/template_power_apc_ups_symmetra_lx_snmp.yaml @@ -0,0 +1,1498 @@ +zabbix_export: + version: '5.4' + date: '2021-03-24T17:33:43Z' + groups: + - + name: Templates/Power + templates: + - + template: 'APC UPS Symmetra LX SNMP' + name: 'APC UPS Symmetra LX SNMP' + description: | + Template Power APC UPS Symmetra LX + + MIBs used: + PowerNet-MIB + SNMPv2-MIB + + You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups + + Template tooling version used: 0.38 + groups: + - + name: Templates/Power + applications: + - + name: General + - + name: Status + items: + - + name: 'Battery capacity' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.1.0 + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The remaining battery capacity expressed as + percentage of full capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' + opdata: 'Current capacity: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'External battery packs count' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.5.0 + key: 'battery.external_packs_count[upsAdvBatteryNumOfBattPacks]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery last replace date' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.3.0 + key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery replace indicator' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.4.0 + key: 'battery.replace_indicator[upsAdvBatteryReplaceIndicator]' + history: 7d + description: | + MIB: PowerNet-MIB + Indicates whether the UPS batteries need replacement. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=2' + name: 'Battery needs replacement' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Battery runtime remaining' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.3.0 + key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' + history: 7d + value_type: FLOAT + units: s + description: | + MIB: PowerNet-MIB + The UPS battery run time remaining before battery + exhaustion. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.1.0 + key: 'battery.status[upsBasicBatteryStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=4' + name: 'Battery has an internal error condition' + priority: AVERAGE + description: 'A battery installed has an internal error condition.' + - + expression: '{last()}=3' + name: 'Battery is Low' + priority: AVERAGE + description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' + - + name: 'Battery temperature' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.2.0 + key: 'battery.temperature[upsHighPrecBatteryTemperature]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The current internal UPS temperature in Celsius. + Temperatures below zero read as 0. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Battery voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.4.0 + key: 'battery.voltage[upsHighPrecBatteryActualVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The actual battery bus voltage in Volts. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'ICMP ping' + type: SIMPLE + key: icmpping + history: 1w + applications: + - + name: Status + valuemap: + name: 'Service state' + triggers: + - + expression: '{max(#3)}=0' + name: 'Unavailable by ICMP ping' + priority: HIGH + description: 'Last three attempts returned timeout. Please check device connectivity.' + - + name: 'ICMP loss' + type: SIMPLE + key: icmppingloss + history: 1w + value_type: FLOAT + units: '%' + applications: + - + name: Status + triggers: + - + expression: '{min(5m)}>{$ICMP.LOSS.WARN} and {min(5m)}<100' + name: 'High ICMP ping loss' + opdata: 'Loss: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC UPS Symmetra LX SNMP:icmpping.max(#3)}=0' + - + name: 'ICMP response time' + type: SIMPLE + key: icmppingsec + history: 1w + value_type: FLOAT + units: s + applications: + - + name: Status + triggers: + - + expression: '{avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}' + name: 'High ICMP ping response time' + opdata: 'Value: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'High ICMP ping loss' + expression: '{APC UPS Symmetra LX SNMP:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {APC UPS Symmetra LX SNMP:icmppingloss.min(5m)}<100' + - + name: 'Unavailable by ICMP ping' + expression: '{APC UPS Symmetra LX SNMP:icmpping.max(#3)}=0' + - + name: 'Input fail cause' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.2.5.0 + key: 'input.fail[upsAdvInputLineFailCause]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Input frequency' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.4.0 + key: 'input.frequency[upsHighPrecInputFrequency]' + history: 7d + value_type: FLOAT + units: Hz + description: | + MIB: PowerNet-MIB + The current input frequency to the UPS system in Hz. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' + opdata: 'Current frequency: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Input voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.1.0 + key: 'input.voltage[upsHighPrecInputLineVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The current utility line voltage in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.4.0 + key: 'output.current[upsHighPrecOutputCurrent]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The current in amperes drawn by the load on the UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Output load' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.3.0 + key: 'output.load[upsHighPrecOutputLoad]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The current UPS load expressed as percentage + of rated capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' + opdata: 'Current load: {ITEM.LASTVALUE1}' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Output status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.1.1.0 + key: 'output.status[upsBasicOutputStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=16' + name: 'UPS is Emergency Static Bypass' + priority: AVERAGE + - + expression: '{last()}=10' + name: 'UPS is Hardware Failure Bypass' + priority: AVERAGE + - + expression: '{last()}=7' + name: 'UPS is Off' + priority: AVERAGE + - + expression: '{last()}=3' + name: 'UPS is on battery' + priority: AVERAGE + - + expression: '{last()}=4' + name: 'UPS is on Smart Boost' + priority: AVERAGE + - + expression: '{last()}=12' + name: 'UPS is On Smart Trim' + priority: AVERAGE + - + expression: '{last()}=8' + name: 'UPS is Rebooting' + priority: AVERAGE + - + expression: '{last()}=11' + name: 'UPS is Sleeping Until Power Return' + priority: AVERAGE + - + expression: '{last()}=6' + name: 'UPS is Software Bypass' + priority: AVERAGE + - + expression: '{last()}=9' + name: 'UPS is Switched Bypass' + priority: AVERAGE + - + expression: '{last()}=5' + name: 'UPS is Timed Sleeping' + priority: AVERAGE + - + name: 'Output voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.1.0 + key: 'output.voltage[upsHighPrecOutputVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage of the UPS system in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'SNMP traps (fallback)' + type: SNMP_TRAP + key: snmptrap.fallback + history: 2w + trends: '0' + value_type: LOG + description: 'Item is used to collect all SNMP traps unmatched by other snmptrap items' + applications: + - + name: General + logtimefmt: 'hh:mm:sszyyyy/MM/dd' + - + name: 'System contact details' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.4.0 + key: 'system.contact[sysContact.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: CONTACT + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System description' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.1.0 + key: 'system.descr[sysDescr.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System location' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.6.0 + key: 'system.location[sysLocation.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: LOCATION + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: Model + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.1.1.0 + key: 'system.model[upsBasicIdentModel]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The UPS model name (e.g. 'APC Smart-UPS 600'). + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'System name' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.5.0 + key: system.name + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: NAME + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + triggers: + - + expression: '{diff()}=1 and {strlen()}>0' + name: 'System name has changed (new name: {ITEM.VALUE})' + priority: INFO + description: 'System name has changed. Ack to close.' + manual_close: 'YES' + - + name: 'System object ID' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.2.0 + key: 'system.objectid[sysObjectID.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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'. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: 'Serial number' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.2.3.0 + key: 'system.sn[upsAdvIdentSerialNumber]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: Uptime + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.3.0 + key: 'system.uptime[sysUpTime.0]' + delay: 30s + history: 2w + trends: 0d + units: uptime + description: | + MIB: SNMPv2-MIB + The time (in hundredths of a second) since the network management + portion of the system was last re-initialized. + applications: + - + name: Status + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + triggers: + - + expression: '{last()}<10m' + name: '{HOST.NAME} has been restarted (uptime < 10m)' + priority: WARNING + description: 'Uptime is less than 10 minutes' + manual_close: 'YES' + dependencies: + - + name: 'No SNMP data collection' + expression: '{APC UPS Symmetra LX SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + - + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' + history: 7d + applications: + - + name: Status + valuemap: + name: zabbix.host.available + triggers: + - + expression: '{max({$SNMP.TIMEOUT})}=0' + name: 'No SNMP data collection' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.' + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC UPS Symmetra LX SNMP:icmpping.max(#3)}=0' + discovery_rules: + - + name: 'External bad battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_PACKS},1.3.6.1.4.1.318.1.1.1.2.2.6]' + key: battery.packs.bad.discovery + delay: 1h + description: 'Discovery of the number of external defective battery packs.' + item_prototypes: + - + name: '{#SNMPINDEX}: External battery packs bad' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.6.0 + key: 'battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#CARTRIDGE_STATUS},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7,{#BATTERY_PACK},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.1,{#CARTRIDGE_INDEX},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.2]' + key: battery.packs.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - + macro: '{#CARTRIDGE_STATUS}' + value: ^$ + operator: NOT_MATCHES_REGEX + formulaid: A + item_prototypes: + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.8.{#SNMPINDEX}' + key: 'battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery cartridge estimated battery replace date. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7.{#SNMPINDEX}' + key: 'battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0)[0|1]{15}$")}=1' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.10.{#SNMPINDEX}' + key: 'battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0{16})$")}=0' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.5.{#SNMPINDEX}' + key: 'battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The battery pack temperature in Celsius. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.4.{#SNMPINDEX}' + key: 'system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery pack serial number. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External sensor port 1 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR1_NAME},1.3.6.1.4.1.318.1.1.25.1.2.1.3]' + key: external.sensor1.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR1_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR1_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR1_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'External sensor port 2 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR2_NAME},1.3.6.1.4.1.318.1.1.25.1.2.2.3]' + key: external.sensor2.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR2_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR2_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR2_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'Input phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.2.3.1.2.1.1]' + key: input.phases.discovery + delay: 1h + description: 'The input phase identifier. OID upsPhaseInputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase input current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.6.1.1.{#PHASEINDEX}' + key: 'phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The input current in 0.1 amperes, or -0.1 if it's + unsupported by this UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase input voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The input voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1]' + key: output.phases.discovery + delay: 1h + description: 'The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase output current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.4.1.1.{#PHASEINDEX}' + key: 'phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output load, %' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.10.1.1.{#PHASEINDEX}' + key: 'phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + macros: + - + macro: '{$BATTERY.CAPACITY.MIN.WARN}' + value: '50' + description: 'Minimum battery capacity percentage for trigger expression.' + - + macro: '{$BATTERY.TEMP.MAX.WARN}' + value: '55' + description: 'Maximum battery temperature for trigger expression.' + - + macro: '{$ICMP.LOSS.WARN}' + value: '20' + - + macro: '{$ICMP.RESPONSE_TIME.WARN}' + value: '0.15' + - + macro: '{$SNMP.TIMEOUT}' + value: 5m + description: 'The time interval for SNMP agent availability trigger expression.' + - + macro: '{$TIME.PERIOD}' + value: 15m + description: 'Time period for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MAX.WARN}' + value: '50.3' + description: 'Maximum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MIN.WARN}' + value: '49.7' + description: 'Minimum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MAX.WARN}' + value: '243' + description: 'Maximum input voltage for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MIN.WARN}' + value: '197' + description: 'Minimum input voltage for trigger expression.' + - + macro: '{$UPS.OUTPUT.MAX.WARN}' + value: '80' + description: 'Maximum output load in % for trigger expression.' + valuemaps: + - + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + mappings: + - + value: '1' + newvalue: Normal + - + value: '2' + newvalue: Warning + - + value: '3' + newvalue: Critical + - + value: '4' + newvalue: 'Not applicable' + - + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + mappings: + - + value: '1' + newvalue: 'no Battery Needs Replacing' + - + value: '2' + newvalue: 'battery Needs Replacing' + - + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + mappings: + - + value: '1' + newvalue: 'no Transfer' + - + value: '2' + newvalue: 'High Line Voltage' + - + value: '3' + newvalue: Brownout + - + value: '4' + newvalue: Blackout + - + value: '5' + newvalue: 'Small Momentary Sag' + - + value: '6' + newvalue: 'Deep Momentary Sag' + - + value: '7' + newvalue: 'Small Momentary Spike' + - + value: '8' + newvalue: 'Large Momentary Spike' + - + value: '9' + newvalue: 'Self Test' + - + value: '10' + newvalue: 'Rate of Voltage Change' + - + name: 'PowerNet-MIB::upsBasicBatteryStatus' + mappings: + - + value: '1' + newvalue: Unknown + - + value: '2' + newvalue: Normal + - + value: '3' + newvalue: Low + - + value: '4' + newvalue: 'In Fault Condition' + - + name: 'Service state' + mappings: + - + value: '0' + newvalue: Down + - + value: '1' + newvalue: Up + - + name: zabbix.host.available + mappings: + - + value: '0' + newvalue: 'not available' + - + value: '1' + newvalue: available + - + value: '2' + newvalue: unknown + graphs: + - + name: 'Capacity of the UPS batteries' + type: PIE + graph_items: + - + color: 1A7C11 + item: + host: 'APC UPS Symmetra LX SNMP' + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + - + name: Output + graph_items: + - + color: 1A7C11 + item: + host: 'APC UPS Symmetra LX SNMP' + key: 'output.current[upsHighPrecOutputCurrent]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC UPS Symmetra LX SNMP' + key: 'output.load[upsHighPrecOutputLoad]' + - + name: Voltage + graph_items: + - + color: 1A7C11 + item: + host: 'APC UPS Symmetra LX SNMP' + key: 'input.voltage[upsHighPrecInputLineVoltage]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC UPS Symmetra LX SNMP' + key: 'output.voltage[upsHighPrecOutputVoltage]' diff --git a/templates/power/apc/apc_ups_symmetra_rm_snmp/README.md b/templates/power/apc/apc_ups_symmetra_rm_snmp/README.md new file mode 100644 index 00000000000..0d2a6b4cfad --- /dev/null +++ b/templates/power/apc/apc_ups_symmetra_rm_snmp/README.md @@ -0,0 +1,159 @@ + +# APC UPS Symmetra RM SNMP + +## Overview + +For Zabbix version: 5.4 and higher +The template to monitor APC UPS Symmetra RM by Zabbix SNMP agent. +Note: please, use the latest version of the firmware for your NMC in order for the template to work correctly. + + + +This template was tested on: + +- APC UPS Symmetra RM 6000 + +## Setup + +> See [Zabbix template operation](https://www.zabbix.com/documentation/5.4/manual/config/templates_out_of_the_box/network_devices) for basic instructions. + +1\. Create a host for APC UPS Symmetra RM 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} |<p>Minimum battery capacity percentage for trigger expression.</p> |`50` | +|{$BATTERY.TEMP.MAX.WARN} |<p>Maximum battery temperature for trigger expression.</p> |`55` | +|{$ICMP.LOSS.WARN} |<p>-</p> |`20` | +|{$ICMP.RESPONSE_TIME.WARN} |<p>-</p> |`0.15` | +|{$SNMP.TIMEOUT} |<p>The time interval for SNMP agent availability trigger expression.</p> |`5m` | +|{$TIME.PERIOD} |<p>Time period for trigger expression.</p> |`15m` | +|{$UPS.INPUT_FREQ.MAX.WARN} |<p>Maximum input frequency for trigger expression.</p> |`50.3` | +|{$UPS.INPUT_FREQ.MIN.WARN} |<p>Minimum input frequency for trigger expression.</p> |`49.7` | +|{$UPS.INPUT_VOLT.MAX.WARN} |<p>Maximum input voltage for trigger expression.</p> |`243` | +|{$UPS.INPUT_VOLT.MIN.WARN} |<p>Minimum input voltage for trigger expression.</p> |`197` | +|{$UPS.OUTPUT.MAX.WARN} |<p>Maximum output load in % for trigger expression.</p> |`80` | + +## Template links + +There are no template links in this template. + +## Discovery rules + +|Name|Description|Type|Key and additional info| +|----|-----------|----|----| +|Input phases discovery |<p>The input phase identifier. OID upsPhaseInputPhaseIndex.1.1</p> |SNMP |input.phases.discovery | +|Output phases discovery |<p>The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1</p> |SNMP |output.phases.discovery | +|External battery packs discovery | |SNMP |battery.packs.discovery<p>**Filter**:</p>AND <p>- A: {#CARTRIDGE_STATUS} NOT_MATCHES_REGEX `^$`</p> | +|External bad battery packs discovery |<p>Discovery of the number of external defective battery packs.</p> |SNMP |battery.packs.bad.discovery | +|External sensor port 1 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor1.discovery | +|External sensor port 2 discovery |<p>uioSensorStatusTable</p> |SNMP |external.sensor2.discovery | + +## Items collected + +|Group|Name|Description|Type|Key and additional info| +|-----|----|-----------|----|---------------------| +|General |Model |<p>MIB: PowerNet-MIB</p><p>The UPS model name (e.g. 'APC Smart-UPS 600').</p> |SNMP |system.model[upsBasicIdentModel]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Serial number |<p>MIB: PowerNet-MIB</p><p>An 8-character string identifying the serial number of</p><p> the UPS internal microprocessor. This number is set at</p><p> the factory. NOTE: This number does NOT correspond to</p><p> the serial number on the rear of the UPS.</p> |SNMP |system.sn[upsAdvIdentSerialNumber]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery status |<p>MIB: PowerNet-MIB</p><p>The status of the UPS batteries. A batteryLow(3) value</p><p> indicates the UPS will be unable to sustain the current</p><p> load, and its services will be lost if power is not restored.</p><p> The amount of run time in reserve at the time of low battery</p><p> can be configured by the upsAdvConfigLowBatteryRunTime.</p><p> A batteryInFaultCondition(4)value indicates that a battery</p><p> installed has an internal error condition.</p> |SNMP |battery.status[upsBasicBatteryStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery capacity |<p>MIB: PowerNet-MIB</p><p>The remaining battery capacity expressed as</p><p> percentage of full capacity.</p> |SNMP |battery.capacity[upsHighPrecBatteryCapacity]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery runtime remaining |<p>MIB: PowerNet-MIB</p><p>The UPS battery run time remaining before battery</p><p> exhaustion.</p> |SNMP |battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery voltage |<p>MIB: PowerNet-MIB</p><p>The actual battery bus voltage in Volts.</p> |SNMP |battery.voltage[upsHighPrecBatteryActualVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery last replace date |<p>MIB: PowerNet-MIB</p><p>The date when the UPS system's batteries were last replaced</p><p> in mm/dd/yy (or yyyy) format. For Smart-UPS models, this value</p><p> is originally set at the factory. When the UPS batteries</p><p> are replaced, this value should be reset by the administrator.</p><p> For Symmetra PX 250/500 this OID is read-only and is configurable in the local display only.</p> |SNMP |battery.last_replace_date[upsBasicBatteryLastReplaceDate]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery replace indicator |<p>MIB: PowerNet-MIB</p><p>Indicates whether the UPS batteries need replacement.</p> |SNMP |battery.replace_indicator[upsAdvBatteryReplaceIndicator]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |External battery packs count |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS. If</p><p> the UPS does not use smart cells then the agent reports</p><p> ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_count[upsAdvBatteryNumOfBattPacks]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Battery temperature |<p>MIB: PowerNet-MIB</p><p>The current internal UPS temperature in Celsius.</p><p> Temperatures below zero read as 0.</p> |SNMP |battery.temperature[upsHighPrecBatteryTemperature]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input voltage |<p>MIB: PowerNet-MIB</p><p>The current utility line voltage in VAC.</p> |SNMP |input.voltage[upsHighPrecInputLineVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input frequency |<p>MIB: PowerNet-MIB</p><p>The current input frequency to the UPS system in Hz.</p> |SNMP |input.frequency[upsHighPrecInputFrequency]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Input fail cause |<p>MIB: PowerNet-MIB</p><p>The reason for the occurrence of the last transfer to UPS</p><p>battery power. The variable is set to:</p><p>- noTransfer(1) -- if there is no transfer yet.</p><p>- highLineVoltage(2) -- if the transfer to battery is caused</p><p>by an over voltage greater than the high transfer voltage.</p><p>- brownout(3) -- if the duration of the outage is greater than</p><p>five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- blackout(4) -- if the duration of the outage is greater than five</p><p>seconds and the line voltage is between 40% of the rated</p><p>output voltage and ground.</p><p>- smallMomentarySag(5) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and the low transfer voltage.</p><p>- deepMomentarySag(6) -- if the duration of the outage is less</p><p>than five seconds and the line voltage is between 40% of the</p><p>rated output voltage and ground. The variable is set to</p><p>- smallMomentarySpike(7) -- if the line failure is caused by a</p><p>rate of change of input voltage less than ten volts per cycle.</p><p>- largeMomentarySpike(8) -- if the line failure is caused by</p><p>a rate of change of input voltage greater than ten volts per cycle.</p><p>- selfTest(9) -- if the UPS was commanded to do a self test.</p><p>- rateOfVoltageChange(10) -- if the failure is due to the rate of change of</p><p>the line voltage.</p> |SNMP |input.fail[upsAdvInputLineFailCause]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage of the UPS system in VAC.</p> |SNMP |output.voltage[upsHighPrecOutputVoltage]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output load |<p>MIB: PowerNet-MIB</p><p>The current UPS load expressed as percentage</p><p>of rated capacity.</p> |SNMP |output.load[upsHighPrecOutputLoad]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output current |<p>MIB: PowerNet-MIB</p><p>The current in amperes drawn by the load on the UPS.</p> |SNMP |output.current[upsHighPrecOutputCurrent]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |Output status |<p>MIB: PowerNet-MIB</p><p>The current state of the UPS. If the UPS is unable to</p><p> determine the state of the UPS this variable is set</p><p> to unknown(1).</p><p>During self-test most UPSes report onBattery(3) but</p><p> some that support it will report onBatteryTest(15).</p><p> To determine self-test status across all UPSes, refer</p><p> to the upsBasicStateOutputState OID.</p> |SNMP |output.status[upsBasicOutputStatus]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |SNMP traps (fallback) |<p>Item is used to collect all SNMP traps unmatched by other snmptrap items</p> |SNMP_TRAP |snmptrap.fallback | +|General |System location |<p>MIB: SNMPv2-MIB</p><p>The physical location of this node (e.g., `telephone closet,</p><p>3rd floor'). If the location is unknown, the value is the zero-length string.</p> |SNMP |system.location[sysLocation.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System contact details |<p>MIB: SNMPv2-MIB</p><p>The textual identification of the contact person for this managed</p><p>node, together with information on how to contact this person. If no contact</p><p>information is known, the value is the zero-length string.</p> |SNMP |system.contact[sysContact.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |System object ID |<p>MIB: SNMPv2-MIB</p><p>The vendor's authoritative identification of the network management</p><p>subsystem contained in the entity. This value is allocated within the SMI enterprises</p><p>subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what</p><p>kind of box' is being managed. For example, if vendor`Flintstones, Inc.' was</p><p>assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1</p><p>to its `Fred Router'.</p> |SNMP |system.objectid[sysObjectID.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System name |<p>MIB: SNMPv2-MIB</p><p>An administratively-assigned name for this managed node.By</p><p>convention, this is the node's fully-qualified domain name. If the name is unknown,</p><p>the value is the zero-length string.</p> |SNMP |system.name<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|General |System description |<p>MIB: SNMPv2-MIB</p><p>A textual description of the entity. This value should</p><p>include the full name and version identification of the system's hardware type, software operating-system, and</p><p>networking software.</p> |SNMP |system.descr[sysDescr.0]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|General |{#PHASEINDEX}: Phase input voltage |<p>MIB: PowerNet-MIB</p><p>The input voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase input current |<p>MIB: PowerNet-MIB</p><p>The input current in 0.1 amperes, or -0.1 if it's</p><p> unsupported by this UPS.</p> |SNMP |phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output voltage |<p>MIB: PowerNet-MIB</p><p>The output voltage in VAC, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output current |<p>MIB: PowerNet-MIB</p><p>The output current in 0.1 amperes drawn</p><p> by the load on the UPS, or -1 if it's unsupported</p><p> by this UPS.</p> |SNMP |phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#PHASEINDEX}: Phase output load, % |<p>MIB: PowerNet-MIB</p><p>The percentage of the UPS load capacity in VA at</p><p> redundancy @ (n + x) presently being used on this</p><p> output phase, or -1 if it's unsupported by this UPS.</p> |SNMP |phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status |<p>MIB: PowerNet-MIB</p><p>The battery cartridge status.</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |SNMP |battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature |<p>MIB: PowerNet-MIB</p><p>The battery pack temperature in Celsius.</p> |SNMP |battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.1`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number |<p>MIB: PowerNet-MIB</p><p>The battery pack serial number.</p> |SNMP |system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date |<p>MIB: PowerNet-MIB</p><p>The battery cartridge estimated battery replace date.</p> |SNMP |battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health |<p>MIB: PowerNet-MIB</p><p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |SNMP |battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#SNMPINDEX}: External battery packs bad |<p>MIB: PowerNet-MIB</p><p>The number of external battery packs connected to the UPS that</p><p>are defective. If the UPS does not use smart cells then the</p><p>agent reports ERROR_NO_SUCH_NAME.</p> |SNMP |battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Temperature sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current temperature reading in Celsius.</p><p> -1 indicates an invalid reading due to lost communications.</p> |SNMP |external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Humidity sensor |<p>MIB: PowerNet-MIB</p><p>The sensor's current humidity reading - a relative humidity</p><p> percentage. -1 indicates an invalid reading due to either a</p><p> sensor that doesn't read humidity or lost communications.</p> |SNMP |external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|General |{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status |<p>MIB: PowerNet-MIB</p><p>The alarm status of the sensor. Possible values:</p><p>uioNormal (1),</p><p>uioWarning (2),</p><p>uioCritical (3),</p><p>sensorStatusNotApplicable (4)</p> |SNMP |external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Status |Uptime |<p>MIB: SNMPv2-MIB</p><p>The time (in hundredths of a second) since the network management</p><p>portion of the system was last re-initialized.</p> |SNMP |system.uptime[sysUpTime.0]<p>**Preprocessing**:</p><p>- MULTIPLIER: `0.01`</p> | +|Status |SNMP agent availability |<p>-</p> |INTERNAL |zabbix[host,snmp,available] | +|Status |ICMP ping |<p>-</p> |SIMPLE |icmpping | +|Status |ICMP loss |<p>-</p> |SIMPLE |icmppingloss | +|Status |ICMP response time |<p>-</p> |SIMPLE |icmppingsec | + +## Triggers + +|Name|Description|Expression|Severity|Dependencies and additional info| +|----|-----------|----|----|----| +|Battery has an internal error condition |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=4` |AVERAGE | | +|Battery is Low |<p>The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.</p> |`{TEMPLATE_NAME:battery.status[upsBasicBatteryStatus].last()}=3` |AVERAGE | | +|Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%) | |`{TEMPLATE_NAME:battery.capacity[upsHighPrecBatteryCapacity].last()} < {$BATTERY.CAPACITY.MIN.WARN}` |HIGH | | +|Battery needs replacement |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:battery.replace_indicator[upsAdvBatteryReplaceIndicator].last()}=2` |HIGH | | +|Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryTemperature].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:input.voltage[upsHighPrecInputLineVoltage].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})` |HIGH | | +|Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > 0 and ({TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {TEMPLATE_NAME:input.frequency[upsHighPrecInputFrequency].max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})` |HIGH | | +|Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD}) |<p>A battery installed has an internal error condition.</p> |`{TEMPLATE_NAME:output.load[upsHighPrecOutputLoad].min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}` |HIGH | | +|UPS is Timed Sleeping | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=5` |AVERAGE | | +|UPS is Switched Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=9` |AVERAGE | | +|UPS is Software Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=6` |AVERAGE | | +|UPS is Sleeping Until Power Return | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=11` |AVERAGE | | +|UPS is Rebooting | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=8` |AVERAGE | | +|UPS is On Smart Trim | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=12` |AVERAGE | | +|UPS is on Smart Boost | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=4` |AVERAGE | | +|UPS is on battery | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=3` |AVERAGE | | +|UPS is Off | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=7` |AVERAGE | | +|UPS is Emergency Static Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=16` |AVERAGE | | +|UPS is Hardware Failure Bypass | |`{TEMPLATE_NAME:output.status[upsBasicOutputStatus].last()}=10` |AVERAGE | | +|System name has changed (new name: {ITEM.VALUE}) |<p>System name has changed. Ack to close.</p> |`{TEMPLATE_NAME:system.name.diff()}=1 and {TEMPLATE_NAME:system.name.strlen()}>0` |INFO |<p>Manual close: YES</p> | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {TEMPLATE_NAME:phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}].max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay |<p>The battery cartridge status:</p><p>bit 0 Disconnected</p><p>bit 1 Overvoltage</p><p>bit 2 NeedsReplacement</p><p>bit 3 OvertemperatureCritical</p><p>bit 4 Charger</p><p>bit 5 TemperatureSensor</p><p>bit 6 BusSoftStart</p><p>bit 7 OvertemperatureWarning</p><p>bit 8 GeneralError</p><p>bit 9 Communication</p><p>bit 10 DisconnectedFrame</p><p>bit 11 FirmwareMismatch</p> |`{TEMPLATE_NAME:battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0{16})$")}=0` |WARNING | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD}) | |`{TEMPLATE_NAME:battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}` |HIGH | | +|{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay |<p>The battery cartridge health.</p><p> bit 0 Battery lifetime okay</p><p> bit 1 Battery lifetime near end, order replacement cartridge</p><p> bit 2 Battery lifetime exceeded, replace battery</p><p> bit 3 Battery lifetime near end acknowledged, order replacement cartridge</p><p> bit 4 Battery lifetime exceeded acknowledged, replace battery</p><p> bit 5 Battery measured lifetime near end, order replacement cartridge</p><p> bit 6 Battery measured lifetime near end acknowledged, order replacement cartridge</p> |`{TEMPLATE_NAME:battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}].regexp("^(0)[0|1]{15}$")}=1` |WARNING | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}].last()}=3` |HIGH | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable |<p>The external sensor does not work or is not connected.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=4` |INFO | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning |<p>The external sensor has returned a value greater than the warning threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=2` |AVERAGE | | +|{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical |<p>The external sensor has returned a value greater than the critical threshold.</p> |`{TEMPLATE_NAME:external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}].last()}=3` |HIGH | | +|{HOST.NAME} has been restarted (uptime < 10m) |<p>Uptime is less than 10 minutes</p> |`{TEMPLATE_NAME:system.uptime[sysUpTime.0].last()}<10m` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> | +|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`{TEMPLATE_NAME:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`{TEMPLATE_NAME:icmpping.max(#3)}=0` |HIGH | | +|High ICMP ping loss |<p>-</p> |`{TEMPLATE_NAME:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {TEMPLATE_NAME:icmppingloss.min(5m)}<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> | +|High ICMP ping response time |<p>-</p> |`{TEMPLATE_NAME:icmppingsec.avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> | + +## Feedback + +Please report any issues with the template at https://support.zabbix.com + +You can also provide a 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). + diff --git a/templates/power/apc/apc_ups_symmetra_rm_snmp/template_power_apc_ups_symmetra_rm_snmp.yaml b/templates/power/apc/apc_ups_symmetra_rm_snmp/template_power_apc_ups_symmetra_rm_snmp.yaml new file mode 100644 index 00000000000..a87a97f41fe --- /dev/null +++ b/templates/power/apc/apc_ups_symmetra_rm_snmp/template_power_apc_ups_symmetra_rm_snmp.yaml @@ -0,0 +1,1498 @@ +zabbix_export: + version: '5.4' + date: '2021-03-24T17:34:07Z' + groups: + - + name: Templates/Power + templates: + - + template: 'APC UPS Symmetra RM SNMP' + name: 'APC UPS Symmetra RM SNMP' + description: | + Template Power APC UPS Symmetra RM + + MIBs used: + PowerNet-MIB + SNMPv2-MIB + + You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/420730-discussion-thread-for-official-zabbix-template-apc-ups + + Template tooling version used: 0.38 + groups: + - + name: Templates/Power + applications: + - + name: General + - + name: Status + items: + - + name: 'Battery capacity' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.1.0 + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The remaining battery capacity expressed as + percentage of full capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' + opdata: 'Current capacity: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'External battery packs count' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.5.0 + key: 'battery.external_packs_count[upsAdvBatteryNumOfBattPacks]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery last replace date' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.3.0 + key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery replace indicator' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.4.0 + key: 'battery.replace_indicator[upsAdvBatteryReplaceIndicator]' + history: 7d + description: | + MIB: PowerNet-MIB + Indicates whether the UPS batteries need replacement. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=2' + name: 'Battery needs replacement' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Battery runtime remaining' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.3.0 + key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' + history: 7d + value_type: FLOAT + units: s + description: | + MIB: PowerNet-MIB + The UPS battery run time remaining before battery + exhaustion. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Battery status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.1.1.0 + key: 'battery.status[upsBasicBatteryStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=4' + name: 'Battery has an internal error condition' + priority: AVERAGE + description: 'A battery installed has an internal error condition.' + - + expression: '{last()}=3' + name: 'Battery is Low' + priority: AVERAGE + description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' + - + name: 'Battery temperature' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.2.0 + key: 'battery.temperature[upsHighPrecBatteryTemperature]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The current internal UPS temperature in Celsius. + Temperatures below zero read as 0. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Battery voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.3.4.0 + key: 'battery.voltage[upsHighPrecBatteryActualVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The actual battery bus voltage in Volts. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'ICMP ping' + type: SIMPLE + key: icmpping + history: 1w + applications: + - + name: Status + valuemap: + name: 'Service state' + triggers: + - + expression: '{max(#3)}=0' + name: 'Unavailable by ICMP ping' + priority: HIGH + description: 'Last three attempts returned timeout. Please check device connectivity.' + - + name: 'ICMP loss' + type: SIMPLE + key: icmppingloss + history: 1w + value_type: FLOAT + units: '%' + applications: + - + name: Status + triggers: + - + expression: '{min(5m)}>{$ICMP.LOSS.WARN} and {min(5m)}<100' + name: 'High ICMP ping loss' + opdata: 'Loss: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC UPS Symmetra RM SNMP:icmpping.max(#3)}=0' + - + name: 'ICMP response time' + type: SIMPLE + key: icmppingsec + history: 1w + value_type: FLOAT + units: s + applications: + - + name: Status + triggers: + - + expression: '{avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}' + name: 'High ICMP ping response time' + opdata: 'Value: {ITEM.LASTVALUE1}' + priority: WARNING + dependencies: + - + name: 'High ICMP ping loss' + expression: '{APC UPS Symmetra RM SNMP:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {APC UPS Symmetra RM SNMP:icmppingloss.min(5m)}<100' + - + name: 'Unavailable by ICMP ping' + expression: '{APC UPS Symmetra RM SNMP:icmpping.max(#3)}=0' + - + name: 'Input fail cause' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.2.5.0 + key: 'input.fail[upsAdvInputLineFailCause]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Input frequency' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.4.0 + key: 'input.frequency[upsHighPrecInputFrequency]' + history: 7d + value_type: FLOAT + units: Hz + description: | + MIB: PowerNet-MIB + The current input frequency to the UPS system in Hz. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' + opdata: 'Current frequency: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Input voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.3.3.1.0 + key: 'input.voltage[upsHighPrecInputLineVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The current utility line voltage in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output current' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.4.0 + key: 'output.current[upsHighPrecOutputCurrent]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The current in amperes drawn by the load on the UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'Output load' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.3.0 + key: 'output.load[upsHighPrecOutputLoad]' + history: 7d + value_type: FLOAT + units: '%' + description: | + MIB: PowerNet-MIB + The current UPS load expressed as percentage + of rated capacity. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' + opdata: 'Current load: {ITEM.LASTVALUE1}' + priority: HIGH + description: 'A battery installed has an internal error condition.' + - + name: 'Output status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.1.1.0 + key: 'output.status[upsBasicOutputStatus]' + history: 7d + description: | + 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. + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::upsBasicBatteryStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + triggers: + - + expression: '{last()}=16' + name: 'UPS is Emergency Static Bypass' + priority: AVERAGE + - + expression: '{last()}=10' + name: 'UPS is Hardware Failure Bypass' + priority: AVERAGE + - + expression: '{last()}=7' + name: 'UPS is Off' + priority: AVERAGE + - + expression: '{last()}=3' + name: 'UPS is on battery' + priority: AVERAGE + - + expression: '{last()}=4' + name: 'UPS is on Smart Boost' + priority: AVERAGE + - + expression: '{last()}=12' + name: 'UPS is On Smart Trim' + priority: AVERAGE + - + expression: '{last()}=8' + name: 'UPS is Rebooting' + priority: AVERAGE + - + expression: '{last()}=11' + name: 'UPS is Sleeping Until Power Return' + priority: AVERAGE + - + expression: '{last()}=6' + name: 'UPS is Software Bypass' + priority: AVERAGE + - + expression: '{last()}=9' + name: 'UPS is Switched Bypass' + priority: AVERAGE + - + expression: '{last()}=5' + name: 'UPS is Timed Sleeping' + priority: AVERAGE + - + name: 'Output voltage' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.4.3.1.0 + key: 'output.voltage[upsHighPrecOutputVoltage]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage of the UPS system in VAC. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'SNMP traps (fallback)' + type: SNMP_TRAP + key: snmptrap.fallback + history: 2w + trends: '0' + value_type: LOG + description: 'Item is used to collect all SNMP traps unmatched by other snmptrap items' + applications: + - + name: General + logtimefmt: 'hh:mm:sszyyyy/MM/dd' + - + name: 'System contact details' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.4.0 + key: 'system.contact[sysContact.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: CONTACT + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System description' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.1.0 + key: 'system.descr[sysDescr.0]' + delay: 1h + history: 2w + trends: '0' + value_type: CHAR + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1d + - + name: 'System location' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.6.0 + key: 'system.location[sysLocation.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: LOCATION + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: Model + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.1.1.0 + key: 'system.model[upsBasicIdentModel]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The UPS model name (e.g. 'APC Smart-UPS 600'). + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'System name' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.5.0 + key: system.name + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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. + inventory_link: NAME + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + triggers: + - + expression: '{diff()}=1 and {strlen()}>0' + name: 'System name has changed (new name: {ITEM.VALUE})' + priority: INFO + description: 'System name has changed. Ack to close.' + manual_close: 'YES' + - + name: 'System object ID' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.2.0 + key: 'system.objectid[sysObjectID.0]' + delay: 15m + history: 2w + trends: '0' + value_type: CHAR + description: | + 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'. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + - + name: 'Serial number' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.1.2.3.0 + key: 'system.sn[upsAdvIdentSerialNumber]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: Uptime + type: SNMP_AGENT + snmp_oid: 1.3.6.1.2.1.1.3.0 + key: 'system.uptime[sysUpTime.0]' + delay: 30s + history: 2w + trends: 0d + units: uptime + description: | + MIB: SNMPv2-MIB + The time (in hundredths of a second) since the network management + portion of the system was last re-initialized. + applications: + - + name: Status + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.01' + triggers: + - + expression: '{last()}<10m' + name: '{HOST.NAME} has been restarted (uptime < 10m)' + priority: WARNING + description: 'Uptime is less than 10 minutes' + manual_close: 'YES' + dependencies: + - + name: 'No SNMP data collection' + expression: '{APC UPS Symmetra RM SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + - + name: 'SNMP agent availability' + type: INTERNAL + key: 'zabbix[host,snmp,available]' + history: 7d + applications: + - + name: Status + valuemap: + name: zabbix.host.available + triggers: + - + expression: '{max({$SNMP.TIMEOUT})}=0' + name: 'No SNMP data collection' + opdata: 'Current state: {ITEM.LASTVALUE1}' + priority: WARNING + description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.' + dependencies: + - + name: 'Unavailable by ICMP ping' + expression: '{APC UPS Symmetra RM SNMP:icmpping.max(#3)}=0' + discovery_rules: + - + name: 'External bad battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_PACKS},1.3.6.1.4.1.318.1.1.1.2.2.6]' + key: battery.packs.bad.discovery + delay: 1h + description: 'Discovery of the number of external defective battery packs.' + item_prototypes: + - + name: '{#SNMPINDEX}: External battery packs bad' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.1.2.2.6.0 + key: 'battery.external_packs_bad[upsAdvBatteryNumOfBadBattPacks.{#SNMPINDEX}]' + history: 7d + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External battery packs discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#CARTRIDGE_STATUS},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7,{#BATTERY_PACK},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.1,{#CARTRIDGE_INDEX},1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.2]' + key: battery.packs.discovery + delay: 1h + filter: + evaltype: AND + conditions: + - + macro: '{#CARTRIDGE_STATUS}' + value: ^$ + operator: NOT_MATCHES_REGEX + formulaid: A + item_prototypes: + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery estimated replace date' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.8.{#SNMPINDEX}' + key: 'battery.estimated_replace_date[upsHighPrecBatteryPackCartridgeReplaceDate.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery cartridge estimated battery replace date. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.7.{#SNMPINDEX}' + key: 'battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0)[0|1]{15}$")}=1' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.10.{#SNMPINDEX}' + key: 'battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + 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 + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{regexp("^(0{16})$")}=0' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' + opdata: 'Current bit set: {ITEM.LASTVALUE1}' + priority: WARNING + description: | + 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 + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery temperature' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.5.{#SNMPINDEX}' + key: 'battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The battery pack temperature in Celsius. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' + opdata: 'Current temperature: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Serial number' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.2.3.10.2.1.4.{#SNMPINDEX}' + key: 'system.sn[upsHighPrecBatteryPackSerialNumber.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}]' + history: 7d + trends: '0' + value_type: CHAR + description: | + MIB: PowerNet-MIB + The battery pack serial number. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: 'External sensor port 1 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR1_NAME},1.3.6.1.4.1.318.1.1.25.1.2.1.3]' + key: external.sensor1.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR1_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR1_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.1.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.1.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR1_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'External sensor port 2 discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#EXTERNAL_SENSOR2_NAME},1.3.6.1.4.1.318.1.1.25.1.2.2.3]' + key: external.sensor2.discovery + delay: 1h + description: uioSensorStatusTable + item_prototypes: + - + name: '{#EXTERNAL_SENSOR2_NAME}: Humidity sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.7.1.1 + key: 'external.sensor.humidity[uioSensorStatusHumidity.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.9.1.1 + key: 'external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}]' + history: 7d + description: | + MIB: PowerNet-MIB + The alarm status of the sensor. Possible values: + uioNormal (1), + uioWarning (2), + uioCritical (3), + sensorStatusNotApplicable (4) + applications: + - + name: General + valuemap: + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{last()}=3' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' + priority: HIGH + description: 'The external sensor has returned a value greater than the critical threshold.' + - + expression: '{last()}=4' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' + priority: INFO + description: 'The external sensor does not work or is not connected.' + - + expression: '{last()}=2' + name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' + priority: AVERAGE + description: 'The external sensor has returned a value greater than the warning threshold.' + - + name: '{#EXTERNAL_SENSOR2_NAME}: Temperature sensor' + type: SNMP_AGENT + snmp_oid: 1.3.6.1.4.1.318.1.1.25.1.2.2.6.1.1 + key: 'external.sensor.temperature[uioSensorStatusTemperatureDegC.2.{#SNMPINDEX}]' + history: 7d + value_type: FLOAT + units: ℃ + description: | + MIB: PowerNet-MIB + The sensor's current temperature reading in Celsius. + -1 indicates an invalid reading due to lost communications. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + overrides: + - + name: Temp + step: '1' + filter: + conditions: + - + macro: '{#EXTERNAL_SENSOR2_NAME}' + value: Temp + formulaid: A + operations: + - + operationobject: ITEM_PROTOTYPE + operator: LIKE + value: Humidity + status: ENABLED + discover: NO_DISCOVER + - + name: 'Input phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.2.3.1.2.1.1]' + key: input.phases.discovery + delay: 1h + description: 'The input phase identifier. OID upsPhaseInputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase input current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.6.1.1.{#PHASEINDEX}' + key: 'phase.input.current[upsPhaseInputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + MIB: PowerNet-MIB + The input current in 0.1 amperes, or -0.1 if it's + unsupported by this UPS. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase input voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.2.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The input voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + - + name: 'Output phases discovery' + type: SNMP_AGENT + snmp_oid: 'discovery[{#PHASEINDEX},1.3.6.1.4.1.318.1.1.1.9.3.3.1.2.1.1]' + key: output.phases.discovery + delay: 1h + description: 'The output phase identifier. OID upsPhaseOutputPhaseIndex.1.1' + item_prototypes: + - + name: '{#PHASEINDEX}: Phase output current' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.4.1.1.{#PHASEINDEX}' + key: 'phase.output.current[upsPhaseOutputCurrent.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: A + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: MULTIPLIER + parameters: + - '0.1' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output load, %' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.10.1.1.{#PHASEINDEX}' + key: 'phase.output.load.percent[upsPhaseOutputPercentLoad.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: '%' + description: | + 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. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + - + name: '{#PHASEINDEX}: Phase output voltage' + type: SNMP_AGENT + snmp_oid: '1.3.6.1.4.1.318.1.1.1.9.3.3.1.3.1.1.{#PHASEINDEX}' + key: 'phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}]' + history: 7d + value_type: FLOAT + units: V + description: | + MIB: PowerNet-MIB + The output voltage in VAC, or -1 if it's unsupported + by this UPS. + applications: + - + name: General + preprocessing: + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 6h + trigger_prototypes: + - + expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' + opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' + priority: HIGH + macros: + - + macro: '{$BATTERY.CAPACITY.MIN.WARN}' + value: '50' + description: 'Minimum battery capacity percentage for trigger expression.' + - + macro: '{$BATTERY.TEMP.MAX.WARN}' + value: '55' + description: 'Maximum battery temperature for trigger expression.' + - + macro: '{$ICMP.LOSS.WARN}' + value: '20' + - + macro: '{$ICMP.RESPONSE_TIME.WARN}' + value: '0.15' + - + macro: '{$SNMP.TIMEOUT}' + value: 5m + description: 'The time interval for SNMP agent availability trigger expression.' + - + macro: '{$TIME.PERIOD}' + value: 15m + description: 'Time period for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MAX.WARN}' + value: '50.3' + description: 'Maximum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_FREQ.MIN.WARN}' + value: '49.7' + description: 'Minimum input frequency for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MAX.WARN}' + value: '243' + description: 'Maximum input voltage for trigger expression.' + - + macro: '{$UPS.INPUT_VOLT.MIN.WARN}' + value: '197' + description: 'Minimum input voltage for trigger expression.' + - + macro: '{$UPS.OUTPUT.MAX.WARN}' + value: '80' + description: 'Maximum output load in % for trigger expression.' + valuemaps: + - + name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' + mappings: + - + value: '1' + newvalue: Normal + - + value: '2' + newvalue: Warning + - + value: '3' + newvalue: Critical + - + value: '4' + newvalue: 'Not applicable' + - + name: 'PowerNet-MIB::upsAdvBatteryReplaceIndicator' + mappings: + - + value: '1' + newvalue: 'no Battery Needs Replacing' + - + value: '2' + newvalue: 'battery Needs Replacing' + - + name: 'PowerNet-MIB::upsAdvInputLineFailCause' + mappings: + - + value: '1' + newvalue: 'no Transfer' + - + value: '2' + newvalue: 'High Line Voltage' + - + value: '3' + newvalue: Brownout + - + value: '4' + newvalue: Blackout + - + value: '5' + newvalue: 'Small Momentary Sag' + - + value: '6' + newvalue: 'Deep Momentary Sag' + - + value: '7' + newvalue: 'Small Momentary Spike' + - + value: '8' + newvalue: 'Large Momentary Spike' + - + value: '9' + newvalue: 'Self Test' + - + value: '10' + newvalue: 'Rate of Voltage Change' + - + name: 'PowerNet-MIB::upsBasicBatteryStatus' + mappings: + - + value: '1' + newvalue: Unknown + - + value: '2' + newvalue: Normal + - + value: '3' + newvalue: Low + - + value: '4' + newvalue: 'In Fault Condition' + - + name: 'Service state' + mappings: + - + value: '0' + newvalue: Down + - + value: '1' + newvalue: Up + - + name: zabbix.host.available + mappings: + - + value: '0' + newvalue: 'not available' + - + value: '1' + newvalue: available + - + value: '2' + newvalue: unknown + graphs: + - + name: 'Capacity of the UPS batteries' + type: PIE + graph_items: + - + color: 1A7C11 + item: + host: 'APC UPS Symmetra RM SNMP' + key: 'battery.capacity[upsHighPrecBatteryCapacity]' + - + name: Output + graph_items: + - + color: 1A7C11 + item: + host: 'APC UPS Symmetra RM SNMP' + key: 'output.current[upsHighPrecOutputCurrent]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC UPS Symmetra RM SNMP' + key: 'output.load[upsHighPrecOutputLoad]' + - + name: Voltage + graph_items: + - + color: 1A7C11 + item: + host: 'APC UPS Symmetra RM SNMP' + key: 'input.voltage[upsHighPrecInputLineVoltage]' + - + sortorder: '1' + color: 2774A4 + item: + host: 'APC UPS Symmetra RM SNMP' + key: 'output.voltage[upsHighPrecOutputVoltage]' |