diff --git a/LibreNMS/Snmptrap/Handlers/UpsTrapsOnBattery.php b/LibreNMS/Snmptrap/Handlers/UpsTrapsOnBattery.php new file mode 100644 index 0000000000..45ac7fb2a2 --- /dev/null +++ b/LibreNMS/Snmptrap/Handlers/UpsTrapsOnBattery.php @@ -0,0 +1,48 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @author TheGreatDoc + */ + +namespace LibreNMS\Snmptrap\Handlers; + +use App\Models\Device; +use LibreNMS\Interfaces\SnmptrapHandler; +use LibreNMS\Snmptrap\Trap; +use Log; + +class UpsTrapsOnBattery implements SnmptrapHandler +{ + /** + * Handle snmptrap. + * Data is pre-parsed and delivered as a Trap. + * + * @param Device $device + * @param Trap $trap + * @return void + */ + public function handle(Device $device, Trap $trap) + { + $remaining = $trap->getOidData($trap->findOid('UPS-MIB::upsEstimatedMinutesRemaining.0')); + $time = $trap->getOidData($trap->findOid('UPS-MIB::upsSecondsOnBattery.0')); + Log::event("UPS running on battery for $time seconds. Estimated $remaining minutes remaining", $device->device_id, 'trap', 5); + } +} diff --git a/config/snmptraps.php b/config/snmptraps.php index b9467ba9ff..77ba2bf5a4 100644 --- a/config/snmptraps.php +++ b/config/snmptraps.php @@ -101,5 +101,6 @@ return [ 'VMWARE-VMINFO-MIB::vmwVmSuspended' => \LibreNMS\Snmptrap\Handlers\VmwVmSuspended::class, 'OSPF-TRAP-MIB::ospfIfStateChange' => \LibreNMS\Snmptrap\Handlers\OspfIfStateChange::class, 'OSPF-TRAP-MIB::ospfNbrStateChange' => \LibreNMS\Snmptrap\Handlers\OspfNbrStateChange::class, + 'UPS-MIB::upsTraps.0.1' => \LibreNMS\Snmptrap\Handlers\UpsTrapsOnBattery::class, ] ];