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
- Host: GitHub
- URL: https://github.com/oposs/cmk-oposs_vertiv_ups
- Owner: oposs
- License: mit
- Created: 2025-11-14T07:24:27.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-11-14T08:29:32.000Z (4 months ago)
- Last Synced: 2025-11-14T09:23:40.603Z (4 months ago)
- Topics: checkmk, checkmk-plugin, monitoring-plugins, ups-monitoring, vertiv
- Language: Python
- Homepage:
- Size: 37.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# OPOSS Vertiv/Liebert UPS Monitoring Plugin for Checkmk
[](LICENSE)
[](https://checkmk.com/)
Comprehensive SNMP monitoring plugin for Vertiv/Liebert UPS devices in Checkmk 2.3.x.

## โจ 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/)