An open API service indexing awesome lists of open source software.

https://github.com/oposs/cmk-oposs_vertiv_ups

Vertiv/Liebert UPS Monitoring Plugin for CheckMK
https://github.com/oposs/cmk-oposs_vertiv_ups

checkmk checkmk-plugin monitoring-plugins ups-monitoring vertiv

Last synced: 8 days ago
JSON representation

Vertiv/Liebert UPS Monitoring Plugin for CheckMK

Awesome Lists containing this project

README

          

# OPOSS Vertiv/Liebert UPS Monitoring Plugin for Checkmk

[![License](https://img.shields.io/badge/License-GPLv2-blue.svg)](LICENSE)
[![Checkmk](https://img.shields.io/badge/Checkmk-2.3.0+-green.svg)](https://checkmk.com/)

Comprehensive SNMP monitoring plugin for Vertiv/Liebert UPS devices in Checkmk 2.3.x.

![Checkmk Services Overview](https://private-user-images.githubusercontent.com/631883/514492454-32a55a10-6ea6-4482-a335-687535bb712f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjMxMzUyODEsIm5iZiI6MTc2MzEzNDk4MSwicGF0aCI6Ii82MzE4ODMvNTE0NDkyNDU0LTMyYTU1YTEwLTZlYTYtNDQ4Mi1hMzM1LTY4NzUzNWJiNzEyZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMTE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTExNFQxNTQzMDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jYTdkOTA3OTJlNzAwODcwY2RiZjFiNTk3ODM4MDdkYWRjNWVmZmEyZDJlY2YwZTkwOTZmNTIwMjE1ZTNiYTFmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.AGPKIBY4g2ZuhmUB9QCbft9lPy45J7tvUX_gXdDo1YY)

## โœจ Features

- ๐Ÿ“Š **52+ SNMP OIDs monitored** across battery, power, and environmental metrics
- ๐Ÿ”Œ **Dual Protocol Support**: RFC1628 standard UPS MIB and Liebert enterprise MIBs
- โšก **Smart Fallback**: Automatically falls back from Liebert OIDs to RFC1628 when needed
- ๐ŸŒฟ **ECO Mode Detection**: Recognizes and properly reports ECO/bypass mode as normal operation
- ๐Ÿ“ˆ **Rich Visualization**: Comprehensive graphs and perfometers
- โš™๏ธ **Easy Configuration**: Web UI rulesets for threshold customization
- ๐Ÿš€ **Out-of-the-Box**: Works immediately with sensible defaults
- ๐ŸŒ **Multi-Voltage Support**: Handles both 120V (US) and 230V (EU) systems

## ๐Ÿ“ฆ Installation

1. Download the latest MKP package from [Releases](https://github.com/oposs/cmk-oposs_vertiv_ups/releases)
2. In Checkmk: **Setup โ†’ Extension packages**
3. Click **Upload package** and select the `.mkp` file
4. Click **Install**

**Test SNMP connectivity:**
```bash
snmpwalk -v2c -c public your-ups-hostname .1.3.6.1.4.1.476
```

## Supported Devices

**Tested:** Vertiv GXT5-1500IRT2UXL

**Compatible with any Vertiv/Liebert UPS supporting:**
- Liebert-GP MIB (OID: 1.3.6.1.4.1.476.1.42)
- RFC1628 UPS MIB (OID: 1.3.6.1.2.1.33)

Including: GXT5 series, Liebert GXT series, Liebert PSI series, and other Liebert-GP compatible devices.

## ๐Ÿ“Š Monitored Services

### ๐Ÿ”‹ Battery Service
- Charge percentage, temperature, runtime, voltage, current
- Last battery replacement date
- Alarms: battery low, over-temperature, discharging, replace battery
- **Defaults:** Charge WARN 20%/CRIT 10%, Temp WARN 30ยฐC/CRIT 35ยฐC, Runtime WARN 10min/CRIT 5min

### โšก Power Service
- System status, ECO mode, output load, voltage, current, power, frequency
- Input voltage/current/frequency/power factor, voltage statistics (min/max)
- Alarms: input problem, overload, bypass unavailable, output off, inverter failure
- **Defaults:** Load WARN 80%/CRIT 90%, Frequency WARN ยฑ2Hz/CRIT ยฑ3Hz (50Hz nominal)
- **Voltage:** Disabled by default (configure per region)

### ๐ŸŒก๏ธ Environment Service
- Ambient/inlet air temperature
- **Defaults:** WARN 35ยฐC, CRIT 40ยฐC

## โš™๏ธ Configuration

### ๐ŸŒ Voltage Thresholds (Regional)

**230V Systems (Europe/Asia):**
- Upper: 253V (warn), 265V (crit)
- Lower: 207V (warn), 195V (crit)

**120V Systems (North America):**
- Upper: 132V (warn), 138V (crit)
- Lower: 108V (warn), 102V (crit)

### Frequency Thresholds

**50Hz Systems:** Upper 52Hz/53Hz, Lower 48Hz/47Hz
**60Hz Systems:** Upper 62Hz/63Hz, Lower 58Hz/57Hz

**Configure via:** Setup โ†’ Services โ†’ Service monitoring rules โ†’ Search "Vertiv UPS"

## ๐Ÿ” Troubleshooting

**Services not appearing?**
1. Test: `snmpwalk -v2c -c public UPS_IP .1.3.6.1.4.1.476`
2. Check Checkmk SNMP settings
3. Run service discovery: Setup โ†’ Hosts โ†’ Services โ†’ Fix all

**Wrong values (รท10)?** โ†’ Update to v0.0.4+

**System status "unknown"?** โ†’ Update to v0.0.7+ (supports string status values)

**Voltage alarms (230V)?** โ†’ Update to v0.0.8+ (voltage thresholds disabled by default)

## ๐Ÿ—๏ธ Architecture

**Metadata-Driven OID Management:** All OIDs in structured table with Liebert primary + RFC1628 fallback
**Smart Unit Handling:** Liebert OIDs return decimals, RFC1628 returns deci-units
**DRY Code:** Helper functions eliminate repetition
**Declarative Alarms:** Simple declarative alarm lists

```
local/lib/python3/cmk_addons/plugins/oposs_vertiv_ups/
โ”œโ”€โ”€ agent_based/ # SNMP section + check plugins
โ”œโ”€โ”€ graphing/ # Metrics, graphs, perfometers
โ””โ”€โ”€ rulesets/ # Web UI configuration
```

## ๐Ÿค Contributing

Contributions welcome via [GitHub Issues](https://github.com/oposs/cmk-oposs_vertiv_ups/issues):
- Bug reports
- Feature requests
- Pull requests
- Documentation improvements
- Device compatibility reports

## ๐Ÿ“š References

- [Checkmk Documentation](https://docs.checkmk.com/)
- [Checkmk Plugin Development](https://docs.checkmk.com/latest/en/devel_intro.html)
- [RFC1628 UPS MIB](https://www.rfc-editor.org/rfc/rfc1628)
- [Vertiv Support](https://www.vertiv.com/en-us/support/)