{"id":46199386,"url":"https://github.com/oposs/cmk-oposs_vertiv_ups","last_synced_at":"2026-03-03T04:37:50.832Z","repository":{"id":324180530,"uuid":"1096273179","full_name":"oposs/cmk-oposs_vertiv_ups","owner":"oposs","description":"Vertiv/Liebert UPS Monitoring Plugin for CheckMK","archived":false,"fork":false,"pushed_at":"2025-11-14T08:29:32.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-14T09:23:40.603Z","etag":null,"topics":["checkmk","checkmk-plugin","monitoring-plugins","ups-monitoring","vertiv"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oposs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"oetiker"}},"created_at":"2025-11-14T07:24:27.000Z","updated_at":"2025-11-14T08:29:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/oposs/cmk-oposs_vertiv_ups","commit_stats":null,"previous_names":["oposs/cmk-oposs_vertiv_ups"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/oposs/cmk-oposs_vertiv_ups","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oposs%2Fcmk-oposs_vertiv_ups","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oposs%2Fcmk-oposs_vertiv_ups/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oposs%2Fcmk-oposs_vertiv_ups/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oposs%2Fcmk-oposs_vertiv_ups/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oposs","download_url":"https://codeload.github.com/oposs/cmk-oposs_vertiv_ups/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oposs%2Fcmk-oposs_vertiv_ups/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30032042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T03:27:35.548Z","status":"ssl_error","status_checked_at":"2026-03-03T03:27:09.213Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["checkmk","checkmk-plugin","monitoring-plugins","ups-monitoring","vertiv"],"created_at":"2026-03-03T04:37:50.208Z","updated_at":"2026-03-03T04:37:50.825Z","avatar_url":"https://github.com/oposs.png","language":"Python","funding_links":["https://github.com/sponsors/oetiker"],"categories":[],"sub_categories":[],"readme":"# OPOSS Vertiv/Liebert UPS Monitoring Plugin for Checkmk\n\n[![License](https://img.shields.io/badge/License-GPLv2-blue.svg)](LICENSE)\n[![Checkmk](https://img.shields.io/badge/Checkmk-2.3.0+-green.svg)](https://checkmk.com/)\n\nComprehensive SNMP monitoring plugin for Vertiv/Liebert UPS devices in Checkmk 2.3.x.\n\n![Checkmk Services Overview](https://private-user-images.githubusercontent.com/631883/514492454-32a55a10-6ea6-4482-a335-687535bb712f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjMxMzUyODEsIm5iZiI6MTc2MzEzNDk4MSwicGF0aCI6Ii82MzE4ODMvNTE0NDkyNDU0LTMyYTU1YTEwLTZlYTYtNDQ4Mi1hMzM1LTY4NzUzNWJiNzEyZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMTE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTExNFQxNTQzMDFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jYTdkOTA3OTJlNzAwODcwY2RiZjFiNTk3ODM4MDdkYWRjNWVmZmEyZDJlY2YwZTkwOTZmNTIwMjE1ZTNiYTFmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.AGPKIBY4g2ZuhmUB9QCbft9lPy45J7tvUX_gXdDo1YY)\n\n## ✨ Features\n\n- 📊 **52+ SNMP OIDs monitored** across battery, power, and environmental metrics\n- 🔌 **Dual Protocol Support**: RFC1628 standard UPS MIB and Liebert enterprise MIBs\n- ⚡ **Smart Fallback**: Automatically falls back from Liebert OIDs to RFC1628 when needed\n- 🌿 **ECO Mode Detection**: Recognizes and properly reports ECO/bypass mode as normal operation\n- 📈 **Rich Visualization**: Comprehensive graphs and perfometers\n- ⚙️ **Easy Configuration**: Web UI rulesets for threshold customization\n- 🚀 **Out-of-the-Box**: Works immediately with sensible defaults\n- 🌍 **Multi-Voltage Support**: Handles both 120V (US) and 230V (EU) systems\n\n## 📦 Installation\n\n1. Download the latest MKP package from [Releases](https://github.com/oposs/cmk-oposs_vertiv_ups/releases)\n2. In Checkmk: **Setup → Extension packages**\n3. Click **Upload package** and select the `.mkp` file\n4. Click **Install**\n\n**Test SNMP connectivity:**\n```bash\nsnmpwalk -v2c -c public your-ups-hostname .1.3.6.1.4.1.476\n```\n\n## Supported Devices\n\n**Tested:** Vertiv GXT5-1500IRT2UXL\n\n**Compatible with any Vertiv/Liebert UPS supporting:**\n- Liebert-GP MIB (OID: 1.3.6.1.4.1.476.1.42)\n- RFC1628 UPS MIB (OID: 1.3.6.1.2.1.33)\n\nIncluding: GXT5 series, Liebert GXT series, Liebert PSI series, and other Liebert-GP compatible devices.\n\n## 📊 Monitored Services\n\n### 🔋 Battery Service\n- Charge percentage, temperature, runtime, voltage, current\n- Last battery replacement date\n- Alarms: battery low, over-temperature, discharging, replace battery\n- **Defaults:** Charge WARN 20%/CRIT 10%, Temp WARN 30°C/CRIT 35°C, Runtime WARN 10min/CRIT 5min\n\n### ⚡ Power Service\n- System status, ECO mode, output load, voltage, current, power, frequency\n- Input voltage/current/frequency/power factor, voltage statistics (min/max)\n- Alarms: input problem, overload, bypass unavailable, output off, inverter failure\n- **Defaults:** Load WARN 80%/CRIT 90%, Frequency WARN ±2Hz/CRIT ±3Hz (50Hz nominal)\n- **Voltage:** Disabled by default (configure per region)\n\n### 🌡️ Environment Service\n- Ambient/inlet air temperature\n- **Defaults:** WARN 35°C, CRIT 40°C\n\n## ⚙️ Configuration\n\n### 🌍 Voltage Thresholds (Regional)\n\n**230V Systems (Europe/Asia):**\n- Upper: 253V (warn), 265V (crit)\n- Lower: 207V (warn), 195V (crit)\n\n**120V Systems (North America):**\n- Upper: 132V (warn), 138V (crit)\n- Lower: 108V (warn), 102V (crit)\n\n### Frequency Thresholds\n\n**50Hz Systems:** Upper 52Hz/53Hz, Lower 48Hz/47Hz\n**60Hz Systems:** Upper 62Hz/63Hz, Lower 58Hz/57Hz\n\n**Configure via:** Setup → Services → Service monitoring rules → Search \"Vertiv UPS\"\n\n## 🔍 Troubleshooting\n\n**Services not appearing?**\n1. Test: `snmpwalk -v2c -c public UPS_IP .1.3.6.1.4.1.476`\n2. Check Checkmk SNMP settings\n3. Run service discovery: Setup → Hosts → Services → Fix all\n\n**Wrong values (÷10)?** → Update to v0.0.4+\n\n**System status \"unknown\"?** → Update to v0.0.7+ (supports string status values)\n\n**Voltage alarms (230V)?** → Update to v0.0.8+ (voltage thresholds disabled by default)\n\n## 🏗️ Architecture\n\n**Metadata-Driven OID Management:** All OIDs in structured table with Liebert primary + RFC1628 fallback\n**Smart Unit Handling:** Liebert OIDs return decimals, RFC1628 returns deci-units\n**DRY Code:** Helper functions eliminate repetition\n**Declarative Alarms:** Simple declarative alarm lists\n\n```\nlocal/lib/python3/cmk_addons/plugins/oposs_vertiv_ups/\n├── agent_based/      # SNMP section + check plugins\n├── graphing/         # Metrics, graphs, perfometers\n└── rulesets/         # Web UI configuration\n```\n\n## 🤝 Contributing\n\nContributions welcome via [GitHub Issues](https://github.com/oposs/cmk-oposs_vertiv_ups/issues):\n- Bug reports\n- Feature requests\n- Pull requests\n- Documentation improvements\n- Device compatibility reports\n\n## 📚 References\n\n- [Checkmk Documentation](https://docs.checkmk.com/)\n- [Checkmk Plugin Development](https://docs.checkmk.com/latest/en/devel_intro.html)\n- [RFC1628 UPS MIB](https://www.rfc-editor.org/rfc/rfc1628)\n- [Vertiv Support](https://www.vertiv.com/en-us/support/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foposs%2Fcmk-oposs_vertiv_ups","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foposs%2Fcmk-oposs_vertiv_ups","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foposs%2Fcmk-oposs_vertiv_ups/lists"}