diff --git a/LibreNMS/Alert/RunAlerts.php b/LibreNMS/Alert/RunAlerts.php index 41516c3e3b..aad4add77f 100644 --- a/LibreNMS/Alert/RunAlerts.php +++ b/LibreNMS/Alert/RunAlerts.php @@ -34,8 +34,8 @@ use App\Facades\DeviceCache; use App\Models\AlertTransport; use App\Models\Eventlog; use LibreNMS\Config; -use LibreNMS\Enum\Alert; use LibreNMS\Enum\AlertState; +use LibreNMS\Enum\Severity; use LibreNMS\Exceptions\AlertTransportDeliveryException; use LibreNMS\Polling\ConnectivityHelper; use LibreNMS\Util\Time; @@ -449,7 +449,7 @@ class RunAlerts if ($this->isParentDown($alert['device_id'])) { $noiss = true; - Eventlog::log('Skipped alerts because all parent devices are down', $alert['device_id'], 'alert', 1); + Eventlog::log('Skipped alerts because all parent devices are down', $alert['device_id'], 'alert', Severity::Ok); } if ($alert['state'] == AlertState::RECOVERED && $rextra['recovery'] == false) { @@ -511,7 +511,7 @@ class RunAlerts $tmp = $instance->deliverAlert($obj, $item['opts'] ?? []); $this->alertLog($tmp, $obj, $obj['transport']); } catch (AlertTransportDeliveryException $e) { - Eventlog::log($e->getMessage(), $obj['device_id'], 'alert', Alert::ERROR); + Eventlog::log($e->getMessage(), $obj['device_id'], 'alert', Severity::Error); $this->alertLog($e->getMessage(), $obj, $obj['transport']); } catch (\Exception $e) { $this->alertLog($e, $obj, $obj['transport']); @@ -537,25 +537,22 @@ class RunAlerts AlertState::BETTER => 'got better', ]; - if ($obj['state'] == AlertState::RECOVERED) { - $severity = Alert::OK; - } elseif ($obj['state'] == AlertState::ACTIVE) { - $severity = Alert::SEVERITIES[$obj['severity']] ?? Alert::UNKNOWN; - } elseif ($obj['state'] == AlertState::ACKNOWLEDGED) { - $severity = Alert::NOTICE; - } else { - $severity = Alert::UNKNOWN; - } + $severity = match ($obj['state']) { + AlertState::RECOVERED => Severity::Ok, + AlertState::ACTIVE => Severity::tryFrom((int) $obj['severity']) ?? Severity::Unknown, + AlertState::ACKNOWLEDGED => Severity::Notice, + default => Severity::Unknown, + }; if ($result === true) { echo 'OK'; Eventlog::log('Issued ' . $prefix[$obj['state']] . " for rule '" . $obj['name'] . "' to transport '" . $transport . "'", $obj['device_id'], 'alert', $severity); } elseif ($result === false) { echo 'ERROR'; - Eventlog::log('Could not issue ' . $prefix[$obj['state']] . " for rule '" . $obj['name'] . "' to transport '" . $transport . "'", $obj['device_id'], null, Alert::ERROR); + Eventlog::log('Could not issue ' . $prefix[$obj['state']] . " for rule '" . $obj['name'] . "' to transport '" . $transport . "'", $obj['device_id'], null, Severity::Error); } else { echo "ERROR: $result\r\n"; - Eventlog::log('Could not issue ' . $prefix[$obj['state']] . " for rule '" . $obj['name'] . "' to transport '" . $transport . "' Error: " . $result, $obj['device_id'], 'error', Alert::ERROR); + Eventlog::log('Could not issue ' . $prefix[$obj['state']] . " for rule '" . $obj['name'] . "' to transport '" . $transport . "' Error: " . $result, $obj['device_id'], 'error', Severity::Error); } } diff --git a/LibreNMS/Component.php b/LibreNMS/Component.php index cdb57113b0..57cac9808d 100644 --- a/LibreNMS/Component.php +++ b/LibreNMS/Component.php @@ -29,6 +29,7 @@ use App\Models\ComponentPref; use App\Models\ComponentStatusLog; use App\Models\Eventlog; use Illuminate\Support\Arr; +use LibreNMS\Enum\Severity; use Log; class Component @@ -242,7 +243,7 @@ class Component } $component->save(); - Eventlog::log($message, $component->device_id, 'component', 3, $component->id); + Eventlog::log($message, $component->device_id, 'component', Severity::Notice, $component->id); } // update preferences @@ -258,18 +259,18 @@ class Component $invalid->forget($existing->id); $existing->fill(['value' => $value]); if ($existing->isDirty()) { - Eventlog::log("Component: $component->type($component->id). Attribute: $attribute, was modified from: " . $existing->getOriginal('value') . ", to: $value", $device_id, 'component', 3, $component->id); + Eventlog::log("Component: $component->type($component->id). Attribute: $attribute, was modified from: " . $existing->getOriginal('value') . ", to: $value", $device_id, 'component', Severity::Notice, $component->id); $existing->save(); } } else { $component->prefs()->save(new ComponentPref(['attribute' => $attribute, 'value' => $value])); - Eventlog::log("Component: $component->type($component->id). Attribute: $attribute, was added with value: $value", $component->device_id, 'component', 3, $component->id); + Eventlog::log("Component: $component->type($component->id). Attribute: $attribute, was added with value: $value", $component->device_id, 'component', Severity::Notice, $component->id); } } foreach ($invalid as $pref) { $pref->delete(); - Eventlog::log("Component: $component->type($component->id). Attribute: $pref->attribute, was deleted.", $component->device_id, 'component', 4); + Eventlog::log("Component: $component->type($component->id). Attribute: $pref->attribute, was deleted.", $component->device_id, 'component', Severity::Warning); } }); diff --git a/LibreNMS/Data/Source/NetSnmpQuery.php b/LibreNMS/Data/Source/NetSnmpQuery.php index bc1bdc480c..66906437e5 100644 --- a/LibreNMS/Data/Source/NetSnmpQuery.php +++ b/LibreNMS/Data/Source/NetSnmpQuery.php @@ -32,7 +32,7 @@ use DeviceCache; use Illuminate\Support\Arr; use Illuminate\Support\Str; use LibreNMS\Config; -use LibreNMS\Enum\Alert; +use LibreNMS\Enum\Severity; use LibreNMS\Util\Debug; use LibreNMS\Util\Oid; use LibreNMS\Util\Rewrite; @@ -467,9 +467,9 @@ class NetSnmpQuery implements SnmpQueryInterface { if ($code) { if (Str::startsWith($error, 'Invalid authentication protocol specified')) { - Eventlog::log('Unsupported SNMP authentication algorithm - ' . $code, $this->device, 'poller', Alert::ERROR); + Eventlog::log('Unsupported SNMP authentication algorithm - ' . $code, $this->device, 'poller', Severity::Error); } elseif (Str::startsWith($error, 'Invalid privacy protocol specified')) { - Eventlog::log('Unsupported SNMP privacy algorithm - ' . $code, $this->device, 'poller', Alert::ERROR); + Eventlog::log('Unsupported SNMP privacy algorithm - ' . $code, $this->device, 'poller', Severity::Error); } Log::debug('Exitcode: ' . $code, [$error]); } diff --git a/LibreNMS/Enum/Severity.php b/LibreNMS/Enum/Severity.php new file mode 100644 index 0000000000..5bc686e366 --- /dev/null +++ b/LibreNMS/Enum/Severity.php @@ -0,0 +1,13 @@ +getDirty() as $attribute => $value) { - Eventlog::log($value . ' -> ' . $device->$attribute, $device, 'system', 3); + Eventlog::log($value . ' -> ' . $device->$attribute, $device, 'system', Severity::Notice); $os->getDeviceArray()[$attribute] = $value; // update device array } @@ -69,7 +70,7 @@ class Core implements Module $device->os = self::detectOS($device, false); if ($device->isDirty('os')) { - Eventlog::log('Device OS changed: ' . $device->getOriginal('os') . ' -> ' . $device->os, $device, 'system', 3); + Eventlog::log('Device OS changed: ' . $device->getOriginal('os') . ' -> ' . $device->os, $device, 'system', Severity::Notice); $os->getDeviceArray()['os'] = $device->os; echo 'Changed '; @@ -272,7 +273,7 @@ class Core implements Module // set it if unless it is wrong if ($uptime > 0) { if ($uptime < $device->uptime) { - Eventlog::log('Device rebooted after ' . Time::formatInterval($device->uptime) . " -> {$uptime}s", $device, 'reboot', 4, $device->uptime); + Eventlog::log('Device rebooted after ' . Time::formatInterval($device->uptime) . " -> {$uptime}s", $device, 'reboot', Severity::Warning, $device->uptime); if (Config::get('discovery_on_reboot')) { $device->last_discovered = null; $device->save(); diff --git a/LibreNMS/Modules/PrinterSupplies.php b/LibreNMS/Modules/PrinterSupplies.php index 30f97a8b77..a33b0bb6ae 100644 --- a/LibreNMS/Modules/PrinterSupplies.php +++ b/LibreNMS/Modules/PrinterSupplies.php @@ -27,7 +27,7 @@ use App\Observers\ModuleModelObserver; use Illuminate\Support\Collection; use Illuminate\Support\Str; use LibreNMS\DB\SyncsModels; -use LibreNMS\Enum\Alert; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\Module; use LibreNMS\OS; use LibreNMS\RRD\RrdDefinition; @@ -98,7 +98,7 @@ class PrinterSupplies implements Module 'Toner ' . $toner['supply_descr'] . ' is empty', $os->getDevice(), 'toner', - Alert::ERROR, + Severity::Error, $toner['supply_id'] ); } @@ -109,7 +109,7 @@ class PrinterSupplies implements Module 'Toner ' . $toner['supply_descr'] . ' was replaced (new level: ' . $tonerperc . '%)', $os->getDevice(), 'toner', - Alert::NOTICE, + Severity::Notice, $toner['supply_id'] ); } diff --git a/LibreNMS/OS/Coriant.php b/LibreNMS/OS/Coriant.php index e0dfb763b7..2aac024aa6 100644 --- a/LibreNMS/OS/Coriant.php +++ b/LibreNMS/OS/Coriant.php @@ -28,6 +28,7 @@ namespace LibreNMS\OS; use App\Models\Eventlog; use App\Models\TnmsneInfo; use App\Observers\ModuleModelObserver; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\Polling\OSPolling; class Coriant extends \LibreNMS\OS implements OSPolling @@ -58,7 +59,7 @@ class Coriant extends \LibreNMS\OS implements OSPolling if ($ne->isDirty()) { $ne->save(); - Eventlog::log("Coriant enmsNETable Hardware $ne->neType : $ne->neName ($index) at $ne->neLocation Discovered", $this->getDevice(), 'system', 2); + Eventlog::log("Coriant enmsNETable Hardware $ne->neType : $ne->neName ($index) at $ne->neLocation Discovered", $this->getDevice(), 'system'); } $c_list[] = $index; } @@ -66,7 +67,7 @@ class Coriant extends \LibreNMS\OS implements OSPolling foreach (TnmsneInfo::where('device_id', $this->getDeviceId())->whereNotIn('neID', $c_list)->get() as $ne) { /** @var TnmsneInfo $ne */ $ne->delete(); - Eventlog::log("Coriant enmsNETable Hardware $ne->neName at $ne->neLocation Removed", $this->getDevice(), 'system', $ne->neID); + Eventlog::log("Coriant enmsNETable Hardware $ne->neName at $ne->neLocation Removed", $this->getDevice(), 'system', Severity::Info, $ne->neID); } } } diff --git a/LibreNMS/Poller.php b/LibreNMS/Poller.php index 955b790dce..d37f3821aa 100644 --- a/LibreNMS/Poller.php +++ b/LibreNMS/Poller.php @@ -34,7 +34,7 @@ use Carbon\Carbon; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; -use LibreNMS\Enum\Alert; +use LibreNMS\Enum\Severity; use LibreNMS\Exceptions\PollerException; use LibreNMS\Polling\ConnectivityHelper; use LibreNMS\RRD\RrdDefinition; @@ -146,7 +146,7 @@ class Poller // check if the poll took too long and log an event if ($measurement->getDuration() > Config::get('rrd.step')) { \App\Models\Eventlog::log('Polling took longer than ' . round(Config::get('rrd.step') / 60, 2) . - ' minutes! This will cause gaps in graphs.', $this->device, 'system', 5); + ' minutes! This will cause gaps in graphs.', $this->device, 'system', Severity::Error); } } @@ -188,7 +188,7 @@ class Poller } catch (Throwable $e) { // isolate module exceptions so they don't disrupt the polling process $this->logger->error("%rError polling $module module for {$this->device->hostname}.%n $e", ['color' => true]); - \App\Models\Eventlog::log("Error polling $module module. Check log file for more details.", $this->device, 'poller', Alert::ERROR); + \App\Models\Eventlog::log("Error polling $module module. Check log file for more details.", $this->device, 'poller', Severity::Error); report($e); } diff --git a/LibreNMS/Polling/ConnectivityHelper.php b/LibreNMS/Polling/ConnectivityHelper.php index 0fa31355f1..0c0b0e0761 100644 --- a/LibreNMS/Polling/ConnectivityHelper.php +++ b/LibreNMS/Polling/ConnectivityHelper.php @@ -31,6 +31,7 @@ use App\Models\Eventlog; use LibreNMS\Config; use LibreNMS\Data\Source\Fping; use LibreNMS\Data\Source\FpingResponse; +use LibreNMS\Enum\Severity; use LibreNMS\RRD\RrdDefinition; use SnmpQuery; use Symfony\Component\Process\Process; @@ -124,7 +125,7 @@ class ConnectivityHelper ); if ($status->duplicates > 0) { - Eventlog::log('Duplicate ICMP response detected! This could indicate a network issue.', $this->device, 'icmp', 4); + Eventlog::log('Duplicate ICMP response detected! This could indicate a network issue.', $this->device, 'icmp', Severity::Warning); $status->exit_code = 0; // when duplicate is detected fping returns 1. The device is up, but there is another issue. Clue admins in with above event. } diff --git a/LibreNMS/Snmptrap/Handlers/AdvaNetworkElementAlmTrap.php b/LibreNMS/Snmptrap/Handlers/AdvaNetworkElementAlmTrap.php index 24de54bef9..56f0b0ccac 100644 --- a/LibreNMS/Snmptrap/Handlers/AdvaNetworkElementAlmTrap.php +++ b/LibreNMS/Snmptrap/Handlers/AdvaNetworkElementAlmTrap.php @@ -29,6 +29,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -45,23 +46,13 @@ class AdvaNetworkElementAlmTrap implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $alSeverity = $trap->getOidData($trap->findOid('CM-ALARM-MIB::cmNetworkElementAlmNotifCode')); - switch ($alSeverity) { - case 'critical': - $logSeverity = 5; - break; - case 'major': - $logSeverity = 4; - break; - case 'minor': - $logSeverity = 3; - break; - case 'cleared': - $logSeverity = 1; - break; - default: - $logSeverity = 2; - break; - } + $logSeverity = match ($alSeverity) { + 'critical' => Severity::Error, + 'major' => Severity::Warning, + 'minor' => Severity::Notice, + 'cleared' => Severity::Ok, + default => Severity::Info, + }; $almDescr = $trap->getOidData($trap->findOid('CM-ALARM-MIB::cmNetworkElementAlmDescr')); $almObjName = $trap->getOidData($trap->findOid('CM-ALARM-MIB::cmNetworkElementAlmObjectName')); diff --git a/LibreNMS/Snmptrap/Handlers/AdvaSnmpDyingGaspTrap.php b/LibreNMS/Snmptrap/Handlers/AdvaSnmpDyingGaspTrap.php index 915a054508..38a2e029ae 100644 --- a/LibreNMS/Snmptrap/Handlers/AdvaSnmpDyingGaspTrap.php +++ b/LibreNMS/Snmptrap/Handlers/AdvaSnmpDyingGaspTrap.php @@ -29,6 +29,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class AdvaSnmpDyingGaspTrap implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('Dying Gasp received', 5); + $trap->log('Dying Gasp received', Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/AdvaSysAlmTrap.php b/LibreNMS/Snmptrap/Handlers/AdvaSysAlmTrap.php index 3e19ead746..5106f0e4db 100644 --- a/LibreNMS/Snmptrap/Handlers/AdvaSysAlmTrap.php +++ b/LibreNMS/Snmptrap/Handlers/AdvaSysAlmTrap.php @@ -29,6 +29,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -45,23 +46,13 @@ class AdvaSysAlmTrap implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $alSeverity = $trap->getOidData($trap->findOid('CM-ALARM-MIB::cmSysAlmNotifCode')); - switch ($alSeverity) { - case 'critical': - $logSeverity = 5; - break; - case 'major': - $logSeverity = 4; - break; - case 'minor': - $logSeverity = 3; - break; - case 'cleared': - $logSeverity = 1; - break; - default: - $logSeverity = 2; - break; - } + $logSeverity = match ($alSeverity) { + 'critical' => Severity::Error, + 'major' => Severity::Warning, + 'minor' => Severity::Notice, + 'cleared' => Severity::Ok, + default => Severity::Info, + }; $sysAlmDescr = $trap->getOidData($trap->findOid('CM-ALARM-MIB::cmSysAlmDescr')); $trap->log("System Alarm: $sysAlmDescr Status: $alSeverity", $logSeverity); diff --git a/LibreNMS/Snmptrap/Handlers/Aos6LbdStateChangeForAutoRecovery.php b/LibreNMS/Snmptrap/Handlers/Aos6LbdStateChangeForAutoRecovery.php index 30ca8d6e96..412e8c7131 100644 --- a/LibreNMS/Snmptrap/Handlers/Aos6LbdStateChangeForAutoRecovery.php +++ b/LibreNMS/Snmptrap/Handlers/Aos6LbdStateChangeForAutoRecovery.php @@ -31,6 +31,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -50,6 +51,6 @@ class Aos6LbdStateChangeForAutoRecovery implements SnmptrapHandler $current = $trap->getOidData($trap->findOid('ALCATEL-IND1-LBD-MIB::alaLbdCurrentStateAutoRecovery')); $ifIndex = $trap->getOidData($trap->findOid('ALCATEL-IND1-LBD-MIB::alaLbdPortIfIndex')); $port = $device->ports()->where('ifIndex', $ifIndex)->first(); - $trap->log("Loopback detection has been recovered on the port $port->ifDescr. Status of the port before was $before and now is $current.", 1); + $trap->log("Loopback detection has been recovered on the port $port->ifDescr. Status of the port before was $before and now is $current.", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/Aos6LbdStateChangeToShutdown.php b/LibreNMS/Snmptrap/Handlers/Aos6LbdStateChangeToShutdown.php index 750fa52ee8..eda6f40ccd 100644 --- a/LibreNMS/Snmptrap/Handlers/Aos6LbdStateChangeToShutdown.php +++ b/LibreNMS/Snmptrap/Handlers/Aos6LbdStateChangeToShutdown.php @@ -31,6 +31,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -51,6 +52,6 @@ class Aos6LbdStateChangeToShutdown implements SnmptrapHandler $ifDescr = $trap->getOidData($trap->findOid('IF-MIB::ifDescr')); $ifIndex = $trap->getOidData($trap->findOid('ALCATEL-IND1-LBD-MIB::alaLbdPortIfIndex')); $port = $device->ports()->where('ifIndex', $ifIndex)->first(); - $trap->log("There has been a loop detected on the port $port->ifDescr. Status of the port before was $before and now is $current.", 5); + $trap->log("There has been a loop detected on the port $port->ifDescr. Status of the port before was $before and now is $current.", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/Aos6StackMgrDuplicateSlot.php b/LibreNMS/Snmptrap/Handlers/Aos6StackMgrDuplicateSlot.php index 093640d1f8..b500516e64 100644 --- a/LibreNMS/Snmptrap/Handlers/Aos6StackMgrDuplicateSlot.php +++ b/LibreNMS/Snmptrap/Handlers/Aos6StackMgrDuplicateSlot.php @@ -31,6 +31,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -47,6 +48,6 @@ class Aos6StackMgrDuplicateSlot implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $slot_nr = $trap->getOidData($trap->findOid('ALCATEL-IND1-STACK-MANAGER-MIB::alaStackMgrSlotNINumber')); - $trap->log("Stack member $slot_nr is duplicated.", 5); + $trap->log("Stack member $slot_nr is duplicated.", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/Aos7portViolation.php b/LibreNMS/Snmptrap/Handlers/Aos7portViolation.php index 1d9e03b481..b2b1d7d966 100644 --- a/LibreNMS/Snmptrap/Handlers/Aos7portViolation.php +++ b/LibreNMS/Snmptrap/Handlers/Aos7portViolation.php @@ -31,6 +31,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -51,6 +52,6 @@ class Aos7portViolation implements SnmptrapHandler $ifDescr = $trap->getOidData($trap->findOid('IF-MIB::ifDescr')); $ifIndex = $trap->getOidData($trap->findOid('IF-MIB::ifIndex')); $port = $device->ports()->where('ifIndex', $ifIndex)->first(); - $trap->log("There has been a loop detected on the port $port->ifDescr. The source code of the violation is: $reason and the current status code is: $current.", 5); + $trap->log("There has been a loop detected on the port $port->ifDescr. The source code of the violation is: $reason and the current status code is: $current.", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/Aos7portViolationNotification.php b/LibreNMS/Snmptrap/Handlers/Aos7portViolationNotification.php index bd9f3ff961..45ccec2201 100644 --- a/LibreNMS/Snmptrap/Handlers/Aos7portViolationNotification.php +++ b/LibreNMS/Snmptrap/Handlers/Aos7portViolationNotification.php @@ -31,6 +31,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -50,6 +51,6 @@ class Aos7portViolationNotification implements SnmptrapHandler $ifDescr = $trap->getOidData($trap->findOid('IF-MIB::ifDescr')); $ifIndex = $trap->getOidData($trap->findOid('IF-MIB::ifIndex')); $port = $device->ports()->where('ifIndex', $ifIndex)->first(); - $trap->log("There has been a loop detected on the port $port->ifDescr. The current status code is: $reason.", 5); + $trap->log("There has been a loop detected on the port $port->ifDescr. The current status code is: $reason.", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/Aos7stpNewRoot.php b/LibreNMS/Snmptrap/Handlers/Aos7stpNewRoot.php index 9b492b728a..76dc0e6d78 100644 --- a/LibreNMS/Snmptrap/Handlers/Aos7stpNewRoot.php +++ b/LibreNMS/Snmptrap/Handlers/Aos7stpNewRoot.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -41,6 +42,6 @@ class Aos7stpNewRoot implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Device ' . $device->displayName() . ' was elected as new root on one of its Spanning Tree Instances', 3, 'stp'); + $trap->log('SNMP Trap: Device ' . $device->displayName() . ' was elected as new root on one of its Spanning Tree Instances', Severity::Notice, 'stp'); } } diff --git a/LibreNMS/Snmptrap/Handlers/Aos7stpRootPortChange.php b/LibreNMS/Snmptrap/Handlers/Aos7stpRootPortChange.php index cd8a6c8faf..509165dd77 100644 --- a/LibreNMS/Snmptrap/Handlers/Aos7stpRootPortChange.php +++ b/LibreNMS/Snmptrap/Handlers/Aos7stpRootPortChange.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -41,6 +42,6 @@ class Aos7stpRootPortChange implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: A root port has changed for a spanning tree bridge. The root port is the port that offers the lowest cost path from this bridge to the root bridge.', 3, 'stp'); + $trap->log('SNMP Trap: A root port has changed for a spanning tree bridge. The root port is the port that offers the lowest cost path from this bridge to the root bridge.', Severity::Notice, 'stp'); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcOnBattery.php b/LibreNMS/Snmptrap/Handlers/ApcOnBattery.php index b07194ff46..a9bb51ef79 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcOnBattery.php +++ b/LibreNMS/Snmptrap/Handlers/ApcOnBattery.php @@ -27,6 +27,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -43,6 +44,6 @@ class ApcOnBattery implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $message = $trap->getOidData($trap->findOid('PowerNet-MIB::mtrapargsString')); - $trap->log($message, 4); + $trap->log($message, Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcPduNearOverload.php b/LibreNMS/Snmptrap/Handlers/ApcPduNearOverload.php index 087f4ff219..9a2bf54e38 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcPduNearOverload.php +++ b/LibreNMS/Snmptrap/Handlers/ApcPduNearOverload.php @@ -31,6 +31,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -50,6 +51,6 @@ class ApcPduNearOverload implements SnmptrapHandler $pdu_id = ApcTrapUtil::getPduIdentName($trap); $phase_num = ApcTrapUtil::getPduPhaseNum($trap); $alarm_str = ApcTrapUtil::getApcTrapString($trap); - $trap->log("$pdu_id phase $phase_num $alarm_str", 4); + $trap->log("$pdu_id phase $phase_num $alarm_str", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcPduNearOverloadCleared.php b/LibreNMS/Snmptrap/Handlers/ApcPduNearOverloadCleared.php index 2ef1b569b0..7dd3c127f5 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcPduNearOverloadCleared.php +++ b/LibreNMS/Snmptrap/Handlers/ApcPduNearOverloadCleared.php @@ -31,6 +31,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -50,6 +51,6 @@ class ApcPduNearOverloadCleared implements SnmptrapHandler $pdu_id = ApcTrapUtil::getPduIdentName($trap); $phase_num = ApcTrapUtil::getPduPhaseNum($trap); $alarm_str = ApcTrapUtil::getApcTrapString($trap); - $trap->log("$pdu_id phase $phase_num $alarm_str", 1); + $trap->log("$pdu_id phase $phase_num $alarm_str", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcPduOutletOff.php b/LibreNMS/Snmptrap/Handlers/ApcPduOutletOff.php index 55bbc100e6..6010a7dc69 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcPduOutletOff.php +++ b/LibreNMS/Snmptrap/Handlers/ApcPduOutletOff.php @@ -23,6 +23,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -39,6 +40,6 @@ class ApcPduOutletOff implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $outlet = $trap->getOidData($trap->findOid('PowerNet-MIB::mtrapargsInteger.0')); - $trap->log("APC PDU: Outlet has turned off: $outlet", 4); + $trap->log("APC PDU: Outlet has turned off: $outlet", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcPduOutletOn.php b/LibreNMS/Snmptrap/Handlers/ApcPduOutletOn.php index e5b086bb39..f1e8cd6470 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcPduOutletOn.php +++ b/LibreNMS/Snmptrap/Handlers/ApcPduOutletOn.php @@ -23,6 +23,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -39,6 +40,6 @@ class ApcPduOutletOn implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $outlet = $trap->getOidData($trap->findOid('PowerNet-MIB::mtrapargsInteger.0')); - $trap->log("APC PDU: Outlet has been turned on: $outlet", 4); + $trap->log("APC PDU: Outlet has been turned on: $outlet", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcPduOutletReboot.php b/LibreNMS/Snmptrap/Handlers/ApcPduOutletReboot.php index b2ccc7dd25..9fb20d0bb8 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcPduOutletReboot.php +++ b/LibreNMS/Snmptrap/Handlers/ApcPduOutletReboot.php @@ -23,6 +23,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -39,6 +40,6 @@ class ApcPduOutletReboot implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $outlet = $trap->getOidData($trap->findOid('PowerNet-MIB::mtrapargsInteger.0')); - $trap->log("APC PDU: Outlet has rebooted: $outlet", 4); + $trap->log("APC PDU: Outlet has rebooted: $outlet", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcPduOverload.php b/LibreNMS/Snmptrap/Handlers/ApcPduOverload.php index b1cd724f02..865ee65859 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcPduOverload.php +++ b/LibreNMS/Snmptrap/Handlers/ApcPduOverload.php @@ -31,6 +31,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -50,6 +51,6 @@ class ApcPduOverload implements SnmptrapHandler $pdu_id = ApcTrapUtil::getPduIdentName($trap); $phase_num = ApcTrapUtil::getPduPhaseNum($trap); $alarm_str = ApcTrapUtil::getApcTrapString($trap); - $trap->log("$pdu_id phase $phase_num $alarm_str", 5); + $trap->log("$pdu_id phase $phase_num $alarm_str", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcPduOverloadCleared.php b/LibreNMS/Snmptrap/Handlers/ApcPduOverloadCleared.php index 972bfaa3a5..393ecaf1c9 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcPduOverloadCleared.php +++ b/LibreNMS/Snmptrap/Handlers/ApcPduOverloadCleared.php @@ -31,6 +31,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -50,6 +51,6 @@ class ApcPduOverloadCleared implements SnmptrapHandler $pdu_id = ApcTrapUtil::getPduIdentName($trap); $phase_num = ApcTrapUtil::getPduPhaseNum($trap); $alarm_str = ApcTrapUtil::getApcTrapString($trap); - $trap->log("$pdu_id phase $phase_num $alarm_str", 1); + $trap->log("$pdu_id phase $phase_num $alarm_str", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcPowerRestored.php b/LibreNMS/Snmptrap/Handlers/ApcPowerRestored.php index 7eda182356..5a4faa6a69 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcPowerRestored.php +++ b/LibreNMS/Snmptrap/Handlers/ApcPowerRestored.php @@ -27,6 +27,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -43,6 +44,6 @@ class ApcPowerRestored implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $message = $trap->getOidData($trap->findOid('PowerNet-MIB::mtrapargsString')); - $trap->log($message, 1); + $trap->log($message, Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcSmartAvrReducing.php b/LibreNMS/Snmptrap/Handlers/ApcSmartAvrReducing.php index ffe829ec76..f22008bbe7 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcSmartAvrReducing.php +++ b/LibreNMS/Snmptrap/Handlers/ApcSmartAvrReducing.php @@ -27,6 +27,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -43,6 +44,6 @@ class ApcSmartAvrReducing implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $message = $trap->getOidData($trap->findOid('PowerNet-MIB::mtrapargsString')); - $trap->log($message, 3); + $trap->log($message, Severity::Notice); } } diff --git a/LibreNMS/Snmptrap/Handlers/ApcSmartAvrReducingOff.php b/LibreNMS/Snmptrap/Handlers/ApcSmartAvrReducingOff.php index fdcbbbb219..f5e43e2af5 100644 --- a/LibreNMS/Snmptrap/Handlers/ApcSmartAvrReducingOff.php +++ b/LibreNMS/Snmptrap/Handlers/ApcSmartAvrReducingOff.php @@ -27,6 +27,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -43,6 +44,6 @@ class ApcSmartAvrReducingOff implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $message = $trap->getOidData($trap->findOid('PowerNet-MIB::mtrapargsString')); - $trap->log($message, 1); + $trap->log($message, Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/AuthenticationFailure.php b/LibreNMS/Snmptrap/Handlers/AuthenticationFailure.php index 1ef034e754..d239cbe434 100644 --- a/LibreNMS/Snmptrap/Handlers/AuthenticationFailure.php +++ b/LibreNMS/Snmptrap/Handlers/AuthenticationFailure.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -41,6 +42,6 @@ class AuthenticationFailure implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Authentication Failure: ' . $device->displayName(), 3, 'auth'); + $trap->log('SNMP Trap: Authentication Failure: ' . $device->displayName(), Severity::Notice, 'auth'); } } diff --git a/LibreNMS/Snmptrap/Handlers/BgpBackwardTransition.php b/LibreNMS/Snmptrap/Handlers/BgpBackwardTransition.php index d8e994e586..9be1e50686 100644 --- a/LibreNMS/Snmptrap/Handlers/BgpBackwardTransition.php +++ b/LibreNMS/Snmptrap/Handlers/BgpBackwardTransition.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -56,7 +57,8 @@ class BgpBackwardTransition implements SnmptrapHandler $bgpPeer->bgpPeerState = $trap->getOidData($state_oid); if ($bgpPeer->isDirty('bgpPeerState')) { - $trap->log('SNMP Trap: BGP Down ' . $bgpPeer->bgpPeerIdentifier . ' ' . get_astext($bgpPeer->bgpPeerRemoteAs) . ' is now ' . $bgpPeer->bgpPeerState, 5, 'bgpPeer', $bgpPeerIp); + $trap->log('SNMP Trap: BGP Down ' . $bgpPeer->bgpPeerIdentifier . ' ' . get_astext($bgpPeer->bgpPeerRemoteAs) . ' is now ' . $bgpPeer->bgpPeerState, severity: Severity::Error, type: 'bgpPeer', + reference: $bgpPeerIp); } $bgpPeer->save(); diff --git a/LibreNMS/Snmptrap/Handlers/BgpEstablished.php b/LibreNMS/Snmptrap/Handlers/BgpEstablished.php index a6ec3b2a3a..10343b3b7c 100644 --- a/LibreNMS/Snmptrap/Handlers/BgpEstablished.php +++ b/LibreNMS/Snmptrap/Handlers/BgpEstablished.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -56,7 +57,7 @@ class BgpEstablished implements SnmptrapHandler $bgpPeer->bgpPeerState = $trap->getOidData($state_oid); if ($bgpPeer->isDirty('bgpPeerState')) { - $trap->log('SNMP Trap: BGP Up ' . $bgpPeer->bgpPeerIdentifier . ' ' . get_astext($bgpPeer->bgpPeerRemoteAs) . ' is now ' . $bgpPeer->bgpPeerState, 1, 'bgpPeer', $bgpPeerIp); + $trap->log('SNMP Trap: BGP Up ' . $bgpPeer->bgpPeerIdentifier . ' ' . get_astext($bgpPeer->bgpPeerRemoteAs) . ' is now ' . $bgpPeer->bgpPeerState, Severity::Ok, 'bgpPeer', $bgpPeerIp); } $bgpPeer->save(); diff --git a/LibreNMS/Snmptrap/Handlers/BridgeNewRoot.php b/LibreNMS/Snmptrap/Handlers/BridgeNewRoot.php index 6993d65b5d..9a4ca91ee3 100644 --- a/LibreNMS/Snmptrap/Handlers/BridgeNewRoot.php +++ b/LibreNMS/Snmptrap/Handlers/BridgeNewRoot.php @@ -23,6 +23,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -38,6 +39,6 @@ class BridgeNewRoot implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Device ' . $device->displayName() . ' was elected as new root on one of its Spanning Tree Instances', 3, 'stp'); + $trap->log('SNMP Trap: Device ' . $device->displayName() . ' was elected as new root on one of its Spanning Tree Instances', Severity::Notice, 'stp'); } } diff --git a/LibreNMS/Snmptrap/Handlers/BridgeTopologyChanged.php b/LibreNMS/Snmptrap/Handlers/BridgeTopologyChanged.php index 7255a2016a..03d731dcb6 100644 --- a/LibreNMS/Snmptrap/Handlers/BridgeTopologyChanged.php +++ b/LibreNMS/Snmptrap/Handlers/BridgeTopologyChanged.php @@ -23,6 +23,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -38,6 +39,6 @@ class BridgeTopologyChanged implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Topology of Spanning Tree Instance on device ' . $device->displayName() . ' was changed', 3, 'stp'); + $trap->log('SNMP Trap: Topology of Spanning Tree Instance on device ' . $device->displayName() . ' was changed', Severity::Notice, 'stp'); } } diff --git a/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerFreeAddressHigh.php b/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerFreeAddressHigh.php index 51094d931f..c40dc12a2c 100644 --- a/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerFreeAddressHigh.php +++ b/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerFreeAddressHigh.php @@ -29,6 +29,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -48,6 +49,6 @@ class CiscoDHCPServerFreeAddressHigh implements SnmptrapHandler $oid = $trap->findOid($oid_prefix); $pool = str_replace($oid_prefix, '', $oid); $value = $trap->getOidData($oid); - $trap->log("SNMP Trap: DHCP pool $pool address space high. Free addresses: '$value' addresses.", 2); + $trap->log("SNMP Trap: DHCP pool $pool address space high. Free addresses: '$value' addresses.", Severity::Info); } } diff --git a/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerFreeAddressLow.php b/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerFreeAddressLow.php index 0f3cd23b6b..f803cfe0ef 100644 --- a/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerFreeAddressLow.php +++ b/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerFreeAddressLow.php @@ -29,6 +29,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -48,6 +49,6 @@ class CiscoDHCPServerFreeAddressLow implements SnmptrapHandler $oid = $trap->findOid($oid_prefix); $pool = str_replace($oid_prefix, '', $oid); $value = $trap->getOidData($oid); - $trap->log("SNMP Trap: DHCP pool $pool address space low. Free addresses: '$value' addresses.", 5); + $trap->log("SNMP Trap: DHCP pool $pool address space low. Free addresses: '$value' addresses.", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerStart.php b/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerStart.php index aa74923a54..cd894e59e5 100644 --- a/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerStart.php +++ b/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerStart.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -41,6 +42,6 @@ class CiscoDHCPServerStart implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Device DHCP service started.', 2); + $trap->log('SNMP Trap: Device DHCP service started.', Severity::Info); } } diff --git a/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerStop.php b/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerStop.php index 85bcb30d3f..d7cacd87f7 100644 --- a/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerStop.php +++ b/LibreNMS/Snmptrap/Handlers/CiscoDHCPServerStop.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -41,6 +42,6 @@ class CiscoDHCPServerStop implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Device DHCP service stopped.', 5); + $trap->log('SNMP Trap: Device DHCP service stopped.', Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/CiscoErrDisableInterfaceEvent.php b/LibreNMS/Snmptrap/Handlers/CiscoErrDisableInterfaceEvent.php index 3f483cad30..0f6d1a640b 100644 --- a/LibreNMS/Snmptrap/Handlers/CiscoErrDisableInterfaceEvent.php +++ b/LibreNMS/Snmptrap/Handlers/CiscoErrDisableInterfaceEvent.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -47,10 +48,10 @@ class CiscoErrDisableInterfaceEvent implements SnmptrapHandler $cause = $trap->getOidData($trap->findOid('CISCO-ERR-DISABLE-MIB::cErrDisableIfStatusCause.' . $ifIndex[1] . '.0')); if (! $port) { - $trap->log('SNMP TRAP: ' . $cause . ' error detected on unknown port. Either ifIndex is not found in the trap, or it does not match a port on this device.', 4); + $trap->log('SNMP TRAP: ' . $cause . ' error detected on unknown port. Either ifIndex is not found in the trap, or it does not match a port on this device.', Severity::Warning); return; } - $trap->log('SNMP TRAP: ' . $cause . ' error detected on ' . $port->ifName . ' (Description: ' . $port->ifDescr . '). ' . $port->ifName . ' in err-disable state.', 4); + $trap->log('SNMP TRAP: ' . $cause . ' error detected on ' . $port->ifName . ' (Description: ' . $port->ifDescr . '). ' . $port->ifName . ' in err-disable state.', Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/CiscoMacViolation.php b/LibreNMS/Snmptrap/Handlers/CiscoMacViolation.php index ac94528488..f562ae42e1 100644 --- a/LibreNMS/Snmptrap/Handlers/CiscoMacViolation.php +++ b/LibreNMS/Snmptrap/Handlers/CiscoMacViolation.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CiscoMacViolation implements SnmptrapHandler $ifName = $trap->getOidData($trap->findOid('IF-MIB::ifName')); $mac = $trap->getOidData($trap->findOid('CISCO-PORT-SECURITY-MIB::cpsIfSecureLastMacAddress')); - $trap->log("SNMP Trap: Secure MAC Address Violation on port $ifName. Last MAC address: $mac", 4); + $trap->log("SNMP Trap: Secure MAC Address Violation on port $ifName. Last MAC address: $mac", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/ColdBoot.php b/LibreNMS/Snmptrap/Handlers/ColdBoot.php index 8231329c3d..620df7000f 100644 --- a/LibreNMS/Snmptrap/Handlers/ColdBoot.php +++ b/LibreNMS/Snmptrap/Handlers/ColdBoot.php @@ -23,6 +23,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -38,6 +39,6 @@ class ColdBoot implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Device ' . $device->displayName() . ' cold booted', 4, 'reboot'); + $trap->log('SNMP Trap: Device ' . $device->displayName() . ' cold booted', Severity::Warning, 'reboot'); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpLowBattery.php b/LibreNMS/Snmptrap/Handlers/CpLowBattery.php index e0308c02a3..74c51dd054 100644 --- a/LibreNMS/Snmptrap/Handlers/CpLowBattery.php +++ b/LibreNMS/Snmptrap/Handlers/CpLowBattery.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpLowBattery implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $battery = CyberPowerUtil::getMessage($trap); - $trap->log("$battery", 4); + $trap->log("$battery", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpPowerRestored.php b/LibreNMS/Snmptrap/Handlers/CpPowerRestored.php index 225a8def1d..8c70122fcf 100644 --- a/LibreNMS/Snmptrap/Handlers/CpPowerRestored.php +++ b/LibreNMS/Snmptrap/Handlers/CpPowerRestored.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpPowerRestored implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $power = CyberPowerUtil::getMessage($trap); - $trap->log("$power", 1); + $trap->log("$power", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpRtnDischarge.php b/LibreNMS/Snmptrap/Handlers/CpRtnDischarge.php index 8a879bf893..0824ed824d 100644 --- a/LibreNMS/Snmptrap/Handlers/CpRtnDischarge.php +++ b/LibreNMS/Snmptrap/Handlers/CpRtnDischarge.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpRtnDischarge implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $returnInfo = CyberPowerUtil::getMessage($trap); - $trap->log("$returnInfo", 1); + $trap->log("$returnInfo", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpRtnLowBattery.php b/LibreNMS/Snmptrap/Handlers/CpRtnLowBattery.php index 26194069dc..ae855a9d0e 100644 --- a/LibreNMS/Snmptrap/Handlers/CpRtnLowBattery.php +++ b/LibreNMS/Snmptrap/Handlers/CpRtnLowBattery.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpRtnLowBattery implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $battery = CyberPowerUtil::getMessage($trap); - $trap->log("$battery", 1); + $trap->log("$battery", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsChargerFailure.php b/LibreNMS/Snmptrap/Handlers/CpUpsChargerFailure.php index b67849b08b..ddb0a1988c 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsChargerFailure.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsChargerFailure.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsChargerFailure implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $chargeInfo = CyberPowerUtil::getMessage($trap); - $trap->log("$chargeInfo", 4); + $trap->log("$chargeInfo", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsDiagFailed.php b/LibreNMS/Snmptrap/Handlers/CpUpsDiagFailed.php index b2aae91b6c..4f4b7a7d9c 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsDiagFailed.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsDiagFailed.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsDiagFailed implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $diagInfo = CyberPowerUtil::getMessage($trap); - $trap->log("$diagInfo", 5); + $trap->log("$diagInfo", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsOnBattery.php b/LibreNMS/Snmptrap/Handlers/CpUpsOnBattery.php index c652213b2a..20caca98e8 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsOnBattery.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsOnBattery.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsOnBattery implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $battery = CyberPowerUtil::getMessage($trap); - $trap->log("$battery", 4); + $trap->log("$battery", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsOverTemp.php b/LibreNMS/Snmptrap/Handlers/CpUpsOverTemp.php index 8cb746ae36..7594604505 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsOverTemp.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsOverTemp.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsOverTemp implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $temp = CyberPowerUtil::getMessage($trap); - $trap->log("$temp", 5); + $trap->log("$temp", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsOverload.php b/LibreNMS/Snmptrap/Handlers/CpUpsOverload.php index 5ecb6dc303..6266db2a47 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsOverload.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsOverload.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsOverload implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $overload = CyberPowerUtil::getMessage($trap); - $trap->log("$overload", 5); + $trap->log("$overload", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsRebootStarted.php b/LibreNMS/Snmptrap/Handlers/CpUpsRebootStarted.php index b167b008fa..80576d3b19 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsRebootStarted.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsRebootStarted.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsRebootStarted implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $status = CyberPowerUtil::getMessage($trap); - $trap->log("$status", 4); + $trap->log("$status", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsRtnChargerFailure.php b/LibreNMS/Snmptrap/Handlers/CpUpsRtnChargerFailure.php index be7eb0b890..f94bfe4c21 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsRtnChargerFailure.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsRtnChargerFailure.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsRtnChargerFailure implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $chargeInfo = CyberPowerUtil::getMessage($trap); - $trap->log("$chargeInfo", 1); + $trap->log("$chargeInfo", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsRtnOverTemp.php b/LibreNMS/Snmptrap/Handlers/CpUpsRtnOverTemp.php index 23302a717f..293c7ba2be 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsRtnOverTemp.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsRtnOverTemp.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsRtnOverTemp implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $temp = CyberPowerUtil::getMessage($trap); - $trap->log("$temp", 1); + $trap->log("$temp", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsRtnOverload.php b/LibreNMS/Snmptrap/Handlers/CpUpsRtnOverload.php index 49c11329e7..161313c46a 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsRtnOverload.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsRtnOverload.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsRtnOverload implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $overload = CyberPowerUtil::getMessage($trap); - $trap->log("$overload", 1); + $trap->log("$overload", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsSleeping.php b/LibreNMS/Snmptrap/Handlers/CpUpsSleeping.php index 11ce7aad4c..69c0e410ac 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsSleeping.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsSleeping.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsSleeping implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $status = CyberPowerUtil::getMessage($trap); - $trap->log("$status", 4); + $trap->log("$status", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsTurnedOff.php b/LibreNMS/Snmptrap/Handlers/CpUpsTurnedOff.php index 17f6059dc7..7275f39e63 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsTurnedOff.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsTurnedOff.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsTurnedOff implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $status = CyberPowerUtil::getMessage($trap); - $trap->log("$status", 4); + $trap->log("$status", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/CpUpsWokeUp.php b/LibreNMS/Snmptrap/Handlers/CpUpsWokeUp.php index 04380699d6..63309bfa16 100644 --- a/LibreNMS/Snmptrap/Handlers/CpUpsWokeUp.php +++ b/LibreNMS/Snmptrap/Handlers/CpUpsWokeUp.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class CpUpsWokeUp implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $status = CyberPowerUtil::getMessage($trap); - $trap->log("$status", 1); + $trap->log("$status", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/EntityDatabaseConfigChanged.php b/LibreNMS/Snmptrap/Handlers/EntityDatabaseConfigChanged.php index 520d71f2d8..c7757997cb 100644 --- a/LibreNMS/Snmptrap/Handlers/EntityDatabaseConfigChanged.php +++ b/LibreNMS/Snmptrap/Handlers/EntityDatabaseConfigChanged.php @@ -23,6 +23,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -38,6 +39,6 @@ class EntityDatabaseConfigChanged implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Configuration of Entity Database on device ' . $device->displayName() . ' was changed', 3, 'system'); + $trap->log('SNMP Trap: Configuration of Entity Database on device ' . $device->displayName() . ' was changed', Severity::Notice, 'system'); } } diff --git a/LibreNMS/Snmptrap/Handlers/EquipStatusTrap.php b/LibreNMS/Snmptrap/Handlers/EquipStatusTrap.php index aa9d4b610a..a988ba177c 100644 --- a/LibreNMS/Snmptrap/Handlers/EquipStatusTrap.php +++ b/LibreNMS/Snmptrap/Handlers/EquipStatusTrap.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -47,14 +48,14 @@ class EquipStatusTrap implements SnmptrapHandler $trap->log('SNMP Trap: Equipment Status ' . $state, $severity, 'state'); } - private function getSeverity(string $state): int + private function getSeverity(string $state): Severity { return match ($state) { - 'warning', '3', 'major', '5' => 4, - 'critical', '4' => 5, - 'minor', '2' => 3, - 'nonAlarmed', '1' => 1, - default => 0, + 'warning', '3', 'major', '5' => Severity::Warning, + 'critical', '4' => Severity::Error, + 'minor', '2' => Severity::Notice, + 'nonAlarmed', '1' => Severity::Ok, + default => Severity::Unknown, }; } } diff --git a/LibreNMS/Snmptrap/Handlers/FailedUserLogin.php b/LibreNMS/Snmptrap/Handlers/FailedUserLogin.php index e456aea034..3bf2ee466f 100644 --- a/LibreNMS/Snmptrap/Handlers/FailedUserLogin.php +++ b/LibreNMS/Snmptrap/Handlers/FailedUserLogin.php @@ -23,6 +23,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -38,6 +39,6 @@ class FailedUserLogin implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Failed User Login: ' . $device->displayName(), 4, 'auth'); + $trap->log('SNMP Trap: Failed User Login: ' . $device->displayName(), Severity::Warning, 'auth'); } } diff --git a/LibreNMS/Snmptrap/Handlers/FgTrapIpsAnomaly.php b/LibreNMS/Snmptrap/Handlers/FgTrapIpsAnomaly.php index 68dcc7350d..7cb1f0db00 100644 --- a/LibreNMS/Snmptrap/Handlers/FgTrapIpsAnomaly.php +++ b/LibreNMS/Snmptrap/Handlers/FgTrapIpsAnomaly.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -45,6 +46,6 @@ class FgTrapIpsAnomaly implements SnmptrapHandler { $srcIp = $trap->getOidData($trap->findOid('FORTINET-FORTIGATE-MIB::fgIpsTrapSrcIp')); $proto = $trap->getOidData($trap->findOid('FORTINET-FORTIGATE-MIB::fgIpsTrapSigMsg')); - $trap->log("DDoS prevention triggered. Source: $srcIp Protocol: $proto", 4); + $trap->log("DDoS prevention triggered. Source: $srcIp Protocol: $proto", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/FgTrapIpsSignature.php b/LibreNMS/Snmptrap/Handlers/FgTrapIpsSignature.php index 092d9729a1..a565528e1c 100644 --- a/LibreNMS/Snmptrap/Handlers/FgTrapIpsSignature.php +++ b/LibreNMS/Snmptrap/Handlers/FgTrapIpsSignature.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -46,6 +47,6 @@ class FgTrapIpsSignature implements SnmptrapHandler $srcIp = $trap->getOidData($trap->findOid('FORTINET-FORTIGATE-MIB::fgIpsTrapSrcIp')); $sigNum = $trap->getOidData($trap->findOid('FORTINET-FORTIGATE-MIB::fgIpsTrapSigId')); $sigName = $trap->getOidData($trap->findOid('FORTINET-FORTIGATE-MIB::fgIpsTrapSigMsg')); - $trap->log("IPS signature $sigName detected from $srcIp with Fortiguard ID $sigNum", 4); + $trap->log("IPS signature $sigName detected from $srcIp with Fortiguard ID $sigNum", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/FgTrapVpnTunDown.php b/LibreNMS/Snmptrap/Handlers/FgTrapVpnTunDown.php index 7054e8c130..d9ae097c78 100644 --- a/LibreNMS/Snmptrap/Handlers/FgTrapVpnTunDown.php +++ b/LibreNMS/Snmptrap/Handlers/FgTrapVpnTunDown.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -45,6 +46,6 @@ class FgTrapVpnTunDown implements SnmptrapHandler { $remoteGw = $trap->getOidData($trap->findOid('FORTIGATE-MIB::fgVpnTrapRemoteGateway')); $tunName = $trap->getOidData($trap->findOid('FORTIGATE-MIB::fgVpnTrapPhase1Name')); - $trap->log("VPN tunnel $tunName to $remoteGw is down", 3); + $trap->log("VPN tunnel $tunName to $remoteGw is down", Severity::Notice); } } diff --git a/LibreNMS/Snmptrap/Handlers/FgTrapVpnTunUp.php b/LibreNMS/Snmptrap/Handlers/FgTrapVpnTunUp.php index 983c08b74a..c62f27ab45 100644 --- a/LibreNMS/Snmptrap/Handlers/FgTrapVpnTunUp.php +++ b/LibreNMS/Snmptrap/Handlers/FgTrapVpnTunUp.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -45,6 +46,6 @@ class FgTrapVpnTunUp implements SnmptrapHandler { $remoteGw = $trap->getOidData($trap->findOid('FORTIGATE-MIB::fgVpnTrapRemoteGateway')); $tunName = $trap->getOidData($trap->findOid('FORTIGATE-MIB::fgVpnTrapPhase1Name')); - $trap->log("VPN tunnel $tunName to $remoteGw is up", 1); + $trap->log("VPN tunnel $tunName to $remoteGw is up", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/FmTrapLogRateThreshold.php b/LibreNMS/Snmptrap/Handlers/FmTrapLogRateThreshold.php index d53c147c77..5dcc8197b7 100644 --- a/LibreNMS/Snmptrap/Handlers/FmTrapLogRateThreshold.php +++ b/LibreNMS/Snmptrap/Handlers/FmTrapLogRateThreshold.php @@ -29,6 +29,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -46,6 +47,6 @@ class FmTrapLogRateThreshold implements SnmptrapHandler { $logRate = $trap->getOidData($trap->findOid('FORTINET-FORTIMANAGER-FORTIANALYZER-MIB::fmLogRate')); $logThresh = $trap->getOidData($trap->findOid('FORTINET-FORTIMANAGER-FORTIANALYZER-MIB::fmLogRateThreshold')); - $trap->log("Recommended log rate exceeded. Current Rate: $logRate Recommended Rate: $logThresh", 3); + $trap->log("Recommended log rate exceeded. Current Rate: $logRate Recommended Rate: $logThresh", Severity::Notice); } } diff --git a/LibreNMS/Snmptrap/Handlers/HpFault.php b/LibreNMS/Snmptrap/Handlers/HpFault.php index 5b966e5036..d2d7be83e0 100644 --- a/LibreNMS/Snmptrap/Handlers/HpFault.php +++ b/LibreNMS/Snmptrap/Handlers/HpFault.php @@ -3,6 +3,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -21,16 +22,16 @@ class HpFault implements SnmptrapHandler $type = $trap->getOidData($trap->findOid('HP-ICF-FAULT-FINDER-MIB::hpicfFfLogFaultType')); switch ($type) { case 'badXcvr': - $trap->log('Fault - CRC Error ' . $trap->getOidData($trap->findOid('HP-ICF-FAULT-FINDER-MIB::hpicfFfFaultInfoURL')), 4, $type); + $trap->log('Fault - CRC Error ' . $trap->getOidData($trap->findOid('HP-ICF-FAULT-FINDER-MIB::hpicfFfFaultInfoURL')), Severity::Warning, $type); break; case 'badCable': - $trap->log('Fault - Bad Cable ' . $trap->getOidData($trap->findOid('HP-ICF-FAULT-FINDER-MIB::hpicfFfFaultInfoURL')), 4, $type); + $trap->log('Fault - Bad Cable ' . $trap->getOidData($trap->findOid('HP-ICF-FAULT-FINDER-MIB::hpicfFfFaultInfoURL')), Severity::Warning, $type); break; case 'bcastStorm': - $trap->log('Fault - Broadcaststorm ' . $trap->getOidData($trap->findOid('HP-ICF-FAULT-FINDER-MIB::hpicfFfFaultInfoURL')), 5, $type); + $trap->log('Fault - Broadcaststorm ' . $trap->getOidData($trap->findOid('HP-ICF-FAULT-FINDER-MIB::hpicfFfFaultInfoURL')), Severity::Error, $type); break; default: - $trap->log('Fault - Unhandled ' . $trap->getOidData($trap->findOid('HP-ICF-FAULT-FINDER-MIB::hpicfFfFaultInfoURL')), 2, $type); + $trap->log('Fault - Unhandled ' . $trap->getOidData($trap->findOid('HP-ICF-FAULT-FINDER-MIB::hpicfFfFaultInfoURL')), Severity::Info, $type); break; } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxBgpM2BackwardTransition.php b/LibreNMS/Snmptrap/Handlers/JnxBgpM2BackwardTransition.php index 5edb93e742..b32ec4be1d 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxBgpM2BackwardTransition.php +++ b/LibreNMS/Snmptrap/Handlers/JnxBgpM2BackwardTransition.php @@ -30,6 +30,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use LibreNMS\Util\IP; @@ -61,7 +62,7 @@ class JnxBgpM2BackwardTransition implements SnmptrapHandler $bgpPeer->bgpPeerState = $peerState; if ($bgpPeer->isDirty('bgpPeerState')) { - $trap->log("BGP Peer $peerAddr is now in the $peerState state", 5); + $trap->log("BGP Peer $peerAddr is now in the $peerState state", Severity::Error); } $bgpPeer->save(); diff --git a/LibreNMS/Snmptrap/Handlers/JnxBgpM2Established.php b/LibreNMS/Snmptrap/Handlers/JnxBgpM2Established.php index 460a87f3b5..1d94b618a0 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxBgpM2Established.php +++ b/LibreNMS/Snmptrap/Handlers/JnxBgpM2Established.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use LibreNMS\Util\IP; @@ -57,7 +58,7 @@ class JnxBgpM2Established implements SnmptrapHandler $bgpPeer->bgpPeerState = $peerState; if ($bgpPeer->isDirty('bgpPeerState')) { - $trap->log("BGP Peer $peerAddr is now in the $peerState state", 1); + $trap->log("BGP Peer $peerAddr is now in the $peerState state", Severity::Ok); } $bgpPeer->save(); diff --git a/LibreNMS/Snmptrap/Handlers/JnxDomAlarmCleared.php b/LibreNMS/Snmptrap/Handlers/JnxDomAlarmCleared.php index 9653d4eb3c..4d1513e044 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxDomAlarmCleared.php +++ b/LibreNMS/Snmptrap/Handlers/JnxDomAlarmCleared.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class JnxDomAlarmCleared implements SnmptrapHandler $currentAlarm = $trap->getOidData($trap->findOid('JUNIPER-DOM-MIB::jnxDomCurrentAlarms')); $ifDescr = $trap->getOidData($trap->findOid('IF-MIB::ifDescr')); $alarmList = JnxDomAlarmId::getAlarms($currentAlarm); - $trap->log("DOM alarm cleared for interface $ifDescr. Cleared alarm(s): $alarmList", 1); + $trap->log("DOM alarm cleared for interface $ifDescr. Cleared alarm(s): $alarmList", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxDomAlarmSet.php b/LibreNMS/Snmptrap/Handlers/JnxDomAlarmSet.php index 6ce13d48a6..57488fe901 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxDomAlarmSet.php +++ b/LibreNMS/Snmptrap/Handlers/JnxDomAlarmSet.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class JnxDomAlarmSet implements SnmptrapHandler $currentAlarm = $trap->getOidData($trap->findOid('JUNIPER-DOM-MIB::jnxDomCurrentAlarms')); $ifDescr = $trap->getOidData($trap->findOid('IF-MIB::ifDescr')); $alarmList = JnxDomAlarmId::getAlarms($currentAlarm); - $trap->log("DOM alarm set for interface $ifDescr. Current alarm(s): $alarmList", 5); + $trap->log("DOM alarm set for interface $ifDescr. Current alarm(s): $alarmList", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxDomLaneAlarmCleared.php b/LibreNMS/Snmptrap/Handlers/JnxDomLaneAlarmCleared.php index 95887f7a3d..36c802c815 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxDomLaneAlarmCleared.php +++ b/LibreNMS/Snmptrap/Handlers/JnxDomLaneAlarmCleared.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -56,6 +57,6 @@ class JnxDomLaneAlarmCleared implements SnmptrapHandler return; } - $trap->log("DOM lane alarm cleared on interface $port->ifDescr lane $lane. Current alarm(s): $alarmList", 1); + $trap->log("DOM lane alarm cleared on interface $port->ifDescr lane $lane. Current alarm(s): $alarmList", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxDomLaneAlarmSet.php b/LibreNMS/Snmptrap/Handlers/JnxDomLaneAlarmSet.php index 0cfad2c075..310aa1121a 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxDomLaneAlarmSet.php +++ b/LibreNMS/Snmptrap/Handlers/JnxDomLaneAlarmSet.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -54,6 +55,6 @@ class JnxDomLaneAlarmSet implements SnmptrapHandler return; } - $trap->log("DOM lane alarm on interface $port->ifDescr lane $lane. Current alarm(s): $alarmList", 5); + $trap->log("DOM lane alarm on interface $port->ifDescr lane $lane. Current alarm(s): $alarmList", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxLdpLspDown.php b/LibreNMS/Snmptrap/Handlers/JnxLdpLspDown.php index 92f81ece65..7aa993e06a 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxLdpLspDown.php +++ b/LibreNMS/Snmptrap/Handlers/JnxLdpLspDown.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -46,6 +47,6 @@ class JnxLdpLspDown implements SnmptrapHandler $reason = $trap->getOidData($trap->findOid('JUNIPER-LDP-MIB::jnxLdpLspDownReason')); $instanceName = $trap->getOidData($trap->findOid('JUNIPER-LDP-MIB::jnxLdpInstanceName')); - $trap->log("LDP session $instanceName from $routerID to $lspForward has gone down due to $reason", 4); + $trap->log("LDP session $instanceName from $routerID to $lspForward has gone down due to $reason", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxLdpLspUp.php b/LibreNMS/Snmptrap/Handlers/JnxLdpLspUp.php index d16afe92c9..88704f20aa 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxLdpLspUp.php +++ b/LibreNMS/Snmptrap/Handlers/JnxLdpLspUp.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -45,6 +46,6 @@ class JnxLdpLspUp implements SnmptrapHandler $routerID = $trap->getOidData($trap->findOid('JUNIPER-LDP-MIB::jnxLdpRtrid')); $instanceName = $trap->getOidData($trap->findOid('JUNIPER-LDP-MIB::jnxLdpInstanceName')); - $trap->log("LDP session $instanceName from $routerID to $lspForward is now up.", 1); + $trap->log("LDP session $instanceName from $routerID to $lspForward is now up.", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxLdpSesDown.php b/LibreNMS/Snmptrap/Handlers/JnxLdpSesDown.php index 7d82b4406d..263aaea682 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxLdpSesDown.php +++ b/LibreNMS/Snmptrap/Handlers/JnxLdpSesDown.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -53,6 +54,6 @@ class JnxLdpSesDown implements SnmptrapHandler return; } - $trap->log("LDP session on interface $port->ifDescr is $state due to $reason", 4); + $trap->log("LDP session on interface $port->ifDescr is $state due to $reason", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxLdpSesUp.php b/LibreNMS/Snmptrap/Handlers/JnxLdpSesUp.php index 65e0560f5b..55ca8ed182 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxLdpSesUp.php +++ b/LibreNMS/Snmptrap/Handlers/JnxLdpSesUp.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -52,6 +53,6 @@ class JnxLdpSesUp implements SnmptrapHandler return; } - $trap->log("LDP session on interface $port->ifDescr is $state", 1); + $trap->log("LDP session on interface $port->ifDescr is $state", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxPowerSupplyFailure.php b/LibreNMS/Snmptrap/Handlers/JnxPowerSupplyFailure.php index 615727faf6..f4cf2cca5e 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxPowerSupplyFailure.php +++ b/LibreNMS/Snmptrap/Handlers/JnxPowerSupplyFailure.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -43,6 +44,6 @@ class JnxPowerSupplyFailure implements SnmptrapHandler { $powerSupply = $trap->getOidData($trap->findOid('JUNIPER-MIB::jnxContentsDescr')); $state = $trap->getOidData($trap->findOid('JUNIPER-MIB::jnxOperatingState')); - $trap->log("Power Supply $powerSupply is $state", 5); + $trap->log("Power Supply $powerSupply is $state", Severity::Error); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxPowerSupplyOk.php b/LibreNMS/Snmptrap/Handlers/JnxPowerSupplyOk.php index dec85cf275..888f8e2bc1 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxPowerSupplyOk.php +++ b/LibreNMS/Snmptrap/Handlers/JnxPowerSupplyOk.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -42,6 +43,6 @@ class JnxPowerSupplyOk implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $powerSupply = $trap->getOidData($trap->findOid('JUNIPER-MIB::jnxContentsDescr')); - $trap->log("Power Supply $powerSupply is OK", 1); + $trap->log("Power Supply $powerSupply is OK", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxVpnIfDown.php b/LibreNMS/Snmptrap/Handlers/JnxVpnIfDown.php index 09b04c552a..d3bf93b950 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxVpnIfDown.php +++ b/LibreNMS/Snmptrap/Handlers/JnxVpnIfDown.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class JnxVpnIfDown implements SnmptrapHandler $vpnType = $trap->getOidData($trap->findOid('JUNIPER-VPN-MIB::jnxVpnIfVpnType')); $vpnName = $trap->getOidData($trap->findOid('JUNIPER-VPN-MIB::jnxVpnIfVpnName')); - $trap->log("$vpnType on interface $vpnName has gone down", 4); + $trap->log("$vpnType on interface $vpnName has gone down", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxVpnIfUp.php b/LibreNMS/Snmptrap/Handlers/JnxVpnIfUp.php index f2cc10cab0..5ec9d7d1f4 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxVpnIfUp.php +++ b/LibreNMS/Snmptrap/Handlers/JnxVpnIfUp.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -46,9 +47,9 @@ class JnxVpnIfUp implements SnmptrapHandler if (substr($vpnName, 0, 6) === 'vt/lsi') { $vpnDevice = substr($vpnName, 7, 15); - $trap->log("$vpnType to device $vpnDevice is now connected", 1); + $trap->log("$vpnType to device $vpnDevice is now connected", Severity::Ok); } else { - $trap->log("$vpnType on interface $vpnName is now connected", 1); + $trap->log("$vpnType on interface $vpnName is now connected", Severity::Ok); } } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxVpnPwDown.php b/LibreNMS/Snmptrap/Handlers/JnxVpnPwDown.php index 08ebae6db0..b461f44c23 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxVpnPwDown.php +++ b/LibreNMS/Snmptrap/Handlers/JnxVpnPwDown.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class JnxVpnPwDown implements SnmptrapHandler $vpnType = $trap->getOidData($trap->findOid('JUNIPER-VPN-MIB::jnxVpnPwVpnType')); $vpnName = $trap->getOidData($trap->findOid('JUNIPER-VPN-MIB::jnxVpnPwVpnName')); - $trap->log("$vpnType on a pseudowire belonging to $vpnName has gone down", 4); + $trap->log("$vpnType on a pseudowire belonging to $vpnName has gone down", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/JnxVpnPwUp.php b/LibreNMS/Snmptrap/Handlers/JnxVpnPwUp.php index bbda1bf1fa..866894296a 100644 --- a/LibreNMS/Snmptrap/Handlers/JnxVpnPwUp.php +++ b/LibreNMS/Snmptrap/Handlers/JnxVpnPwUp.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -44,6 +45,6 @@ class JnxVpnPwUp implements SnmptrapHandler $vpnType = $trap->getOidData($trap->findOid('JUNIPER-VPN-MIB::jnxVpnPwVpnType')); $vpnName = $trap->getOidData($trap->findOid('JUNIPER-VPN-MIB::jnxVpnPwVpnName')); - $trap->log("$vpnType on a pseudowire belonging to $vpnName is now connected", 1); + $trap->log("$vpnType on a pseudowire belonging to $vpnName is now connected", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/LinkDown.php b/LibreNMS/Snmptrap/Handlers/LinkDown.php index ebf204946e..b18f57778f 100644 --- a/LibreNMS/Snmptrap/Handlers/LinkDown.php +++ b/LibreNMS/Snmptrap/Handlers/LinkDown.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -58,14 +59,14 @@ class LinkDown implements SnmptrapHandler if ($trapAdminStatus) { $port->ifAdminStatus = $trapAdminStatus; } - $trap->log("SNMP Trap: linkDown $port->ifAdminStatus/$port->ifOperStatus " . $port->ifDescr, 5, 'interface', $port->port_id); + $trap->log("SNMP Trap: linkDown $port->ifAdminStatus/$port->ifOperStatus " . $port->ifDescr, Severity::Error, 'interface', $port->port_id); if ($port->isDirty('ifAdminStatus')) { - $trap->log("Interface Disabled : $port->ifDescr (TRAP)", 3, 'interface', $port->port_id); + $trap->log("Interface Disabled : $port->ifDescr (TRAP)", Severity::Notice, 'interface', $port->port_id); } if ($port->isDirty('ifOperStatus')) { - $trap->log("Interface went Down : $port->ifDescr (TRAP)", 5, 'interface', $port->port_id); + $trap->log("Interface went Down : $port->ifDescr (TRAP)", Severity::Error, 'interface', $port->port_id); } $port->save(); diff --git a/LibreNMS/Snmptrap/Handlers/LinkUp.php b/LibreNMS/Snmptrap/Handlers/LinkUp.php index d1aa28efea..37a1fde355 100644 --- a/LibreNMS/Snmptrap/Handlers/LinkUp.php +++ b/LibreNMS/Snmptrap/Handlers/LinkUp.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -55,14 +56,14 @@ class LinkUp implements SnmptrapHandler $port->ifOperStatus = $trap->getOidData("IF-MIB::ifOperStatus.$ifIndex") ?: 'up'; $port->ifAdminStatus = $trap->getOidData("IF-MIB::ifAdminStatus.$ifIndex") ?: 'up'; // If we receive LinkUp trap, we can safely assume that the ifAdminStatus is also up. - $trap->log("SNMP Trap: linkUp $port->ifAdminStatus/$port->ifOperStatus " . $port->ifDescr, 1, 'interface', $port->port_id); + $trap->log("SNMP Trap: linkUp $port->ifAdminStatus/$port->ifOperStatus " . $port->ifDescr, Severity::Ok, 'interface', $port->port_id); if ($port->isDirty('ifAdminStatus')) { - $trap->log("Interface Enabled : $port->ifDescr (TRAP)", 3, 'interface', $port->port_id); + $trap->log("Interface Enabled : $port->ifDescr (TRAP)", Severity::Notice, 'interface', $port->port_id); } if ($port->isDirty('ifOperStatus')) { - $trap->log("Interface went Up : $port->ifDescr (TRAP)", 1, 'interface', $port->port_id); + $trap->log("Interface went Up : $port->ifDescr (TRAP)", Severity::Ok, 'interface', $port->port_id); } $port->save(); diff --git a/LibreNMS/Snmptrap/Handlers/LogTrap.php b/LibreNMS/Snmptrap/Handlers/LogTrap.php index 43dbe53d77..18028de2cb 100644 --- a/LibreNMS/Snmptrap/Handlers/LogTrap.php +++ b/LibreNMS/Snmptrap/Handlers/LogTrap.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -54,14 +55,14 @@ class LogTrap implements SnmptrapHandler $trap->log('SNMP Trap: Log ' . $logName . ' ' . $logEvent . ' ' . $logPC . ' ' . $logAI . ' ' . $state, $severity, 'log'); } - private function getSeverity(string $state): int + private function getSeverity(string $state): Severity { return match ($state) { - 'warning', '3', 'major', '5' => 4, - 'critical', '4' => 5, - 'minor', '2' => 3, - 'nonAlarmed', '1' => 1, - default => 0, + 'warning', '3', 'major', '5' => Severity::Warning, + 'critical', '4' => Severity::Error, + 'minor', '2' => Severity::Notice, + 'nonAlarmed', '1' => Severity::Ok, + default => Severity::Unknown, }; } } diff --git a/LibreNMS/Snmptrap/Handlers/Mgnt2TrapNmsAlarm.php b/LibreNMS/Snmptrap/Handlers/Mgnt2TrapNmsAlarm.php index efa61703d8..5e248e8bc2 100644 --- a/LibreNMS/Snmptrap/Handlers/Mgnt2TrapNmsAlarm.php +++ b/LibreNMS/Snmptrap/Handlers/Mgnt2TrapNmsAlarm.php @@ -28,6 +28,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -69,29 +70,13 @@ class Mgnt2TrapNmsAlarm implements SnmptrapHandler $msg = "Alarm on slot $slot, $sourcePm Issue: $probSpecific Possible Cause: $probCause"; } - switch ($alarmSeverity) { - case 'cleared': - $severity = 1; - break; - case 'critical': - $severity = 5; - break; - case 'major': - $severity = 5; - break; - case 'minor': - $severity = 4; - break; - case 'warning': - $severity = 4; - break; - case 'indeterminate': - $severity = 0; - break; - default: - $severity = 2; - break; - } + $severity = match ($alarmSeverity) { + 'cleared' => Severity::Ok, + 'critical', 'major' => Severity::Error, + 'minor', 'warning' => Severity::Warning, + 'indeterminate' => Severity::Unknown, + default => Severity::Info, + }; $trap->log($msg, $severity); } diff --git a/LibreNMS/Snmptrap/Handlers/OspfIfStateChange.php b/LibreNMS/Snmptrap/Handlers/OspfIfStateChange.php index dbd48d599d..c8585e59cf 100644 --- a/LibreNMS/Snmptrap/Handlers/OspfIfStateChange.php +++ b/LibreNMS/Snmptrap/Handlers/OspfIfStateChange.php @@ -29,6 +29,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -58,32 +59,12 @@ class OspfIfStateChange implements SnmptrapHandler $ospfPort->ospfIfState = $trap->getOidData($trap->findOid('OSPF-MIB::ospfIfState')); - switch ($ospfPort->ospfIfState) { - case 'down': - $severity = 5; - break; - case 'designatedRouter': - $severity = 1; - break; - case 'backupDesignatedRouter': - $severity = 1; - break; - case 'otherDesignatedRouter': - $severity = 1; - break; - case 'pointToPoint': - $severity = 1; - break; - case 'waiting': - $severity = 4; - break; - case 'loopback': - $severity = 4; - break; - default: - $severity = 0; - break; - } + $severity = match ($ospfPort->ospfIfState) { + 'down' => Severity::Error, + 'designatedRouter', 'backupDesignatedRouter', 'otherDesignatedRouter', 'pointToPoint' => Severity::Ok, + 'waiting', 'loopback' => Severity::Warning, + default => Severity::Unknown, + }; $trap->log("OSPF interface $port->ifName is $ospfPort->ospfIfState", $severity); diff --git a/LibreNMS/Snmptrap/Handlers/OspfNbrStateChange.php b/LibreNMS/Snmptrap/Handlers/OspfNbrStateChange.php index 73990abbfc..b48b6c999e 100644 --- a/LibreNMS/Snmptrap/Handlers/OspfNbrStateChange.php +++ b/LibreNMS/Snmptrap/Handlers/OspfNbrStateChange.php @@ -29,6 +29,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -49,13 +50,11 @@ class OspfNbrStateChange implements SnmptrapHandler $ospfNbr->ospfNbrState = $trap->getOidData($trap->findOid('OSPF-MIB::ospfNbrState')); - $severity = 4; - - if ($ospfNbr->ospfNbrState == 'full') { - $severity = 1; - } elseif ($ospfNbr->ospfNbrState == 'down') { - $severity = 5; - } + $severity = match ($ospfNbr->ospfNbrState) { + 'full' => Severity::Ok, + 'down' => Severity::Error, + default => Severity::Warning, + }; $trap->log("OSPF neighbor $ospfNbrIpAddr changed state to $ospfNbr->ospfNbrState", $severity); diff --git a/LibreNMS/Snmptrap/Handlers/RuckusSzClusterInMaintenance.php b/LibreNMS/Snmptrap/Handlers/RuckusSzClusterInMaintenance.php index 78fee7bfe9..8ebb17cbba 100644 --- a/LibreNMS/Snmptrap/Handlers/RuckusSzClusterInMaintenance.php +++ b/LibreNMS/Snmptrap/Handlers/RuckusSzClusterInMaintenance.php @@ -32,6 +32,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -48,6 +49,6 @@ class RuckusSzClusterInMaintenance implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $clusterName = $trap->getOidData($trap->findOid('RUCKUS-SZ-EVENT-MIB::ruckusSZClusterName')); - $trap->log("Smartzone cluster $clusterName state changed to maintenance", 3); + $trap->log("Smartzone cluster $clusterName state changed to maintenance", Severity::Notice); } } diff --git a/LibreNMS/Snmptrap/Handlers/RuckusSzSeverity.php b/LibreNMS/Snmptrap/Handlers/RuckusSzSeverity.php index 9ec1eb0121..9cff817df2 100644 --- a/LibreNMS/Snmptrap/Handlers/RuckusSzSeverity.php +++ b/LibreNMS/Snmptrap/Handlers/RuckusSzSeverity.php @@ -28,15 +28,17 @@ namespace LibreNMS\Snmptrap\Handlers; +use LibreNMS\Enum\Severity; + class RuckusSzSeverity { - public static function getSeverity(string $severity): int + public static function getSeverity(string $severity): Severity { return match ($severity) { - 'Critical' => 5, - 'Major', 'Minor' => 4, - 'Warning' => 3, - default => 2 // Informational + 'Critical' => Severity::Error, + 'Major', 'Minor' => Severity::Warning, + 'Warning' => Severity::Notice, + default => Severity::Info, }; } } diff --git a/LibreNMS/Snmptrap/Handlers/Tripplite.php b/LibreNMS/Snmptrap/Handlers/Tripplite.php index f74d43122c..3013f70caf 100644 --- a/LibreNMS/Snmptrap/Handlers/Tripplite.php +++ b/LibreNMS/Snmptrap/Handlers/Tripplite.php @@ -25,19 +25,20 @@ namespace LibreNMS\Snmptrap\Handlers; -use Illuminate\Support\Arr; +use LibreNMS\Enum\Severity; use LibreNMS\Snmptrap\Trap; class Tripplite { - protected function getSeverity(Trap $trap): int + protected function getSeverity(Trap $trap): Severity { - return Arr::get([ - 'critical' => 5, - 'warning' => 4, - 'info' => 2, - 'status' => 3, - ], $trap->getOidData('TRIPPLITE-PRODUCTS::tlpAlarmType'), 4); + return match ($trap->getOidData('TRIPPLITE-PRODUCTS::tlpAlarmType')) { + 'critical' => Severity::Error, + 'warning' => Severity::Warning, + 'info' => Severity::Info, + 'status' => Severity::Notice, + default => Severity::Warning, + }; } protected function describe(Trap $trap): string diff --git a/LibreNMS/Snmptrap/Handlers/UpsTrapOnBattery.php b/LibreNMS/Snmptrap/Handlers/UpsTrapOnBattery.php index c33a4d57b2..9f369665cd 100644 --- a/LibreNMS/Snmptrap/Handlers/UpsTrapOnBattery.php +++ b/LibreNMS/Snmptrap/Handlers/UpsTrapOnBattery.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; use Illuminate\Support\Str; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -44,7 +45,7 @@ class UpsTrapOnBattery implements SnmptrapHandler { $min_remaining = (int) Str::before($trap->getOidData($trap->findOid('UPS-MIB::upsEstimatedMinutesRemaining')), ' '); $sec_time = (int) Str::before($trap->getOidData($trap->findOid('UPS-MIB::upsSecondsOnBattery')), ' '); - $trap->log("UPS running on battery for $sec_time seconds. Estimated $min_remaining minutes remaining", 5); + $trap->log("UPS running on battery for $sec_time seconds. Estimated $min_remaining minutes remaining", Severity::Error); $sensor_remaining = $device->sensors()->where('sensor_index', '200')->where('sensor_type', 'rfc1628')->first(); if (! $sensor_remaining) { Log::warning("Snmptrap upsTrapOnBattery: Could not find matching sensor \'Estimated battery time remaining\' for device: " . $device->hostname); diff --git a/LibreNMS/Snmptrap/Handlers/UpsmgUtilityFailure.php b/LibreNMS/Snmptrap/Handlers/UpsmgUtilityFailure.php index 971550f77f..c547cda8a7 100644 --- a/LibreNMS/Snmptrap/Handlers/UpsmgUtilityFailure.php +++ b/LibreNMS/Snmptrap/Handlers/UpsmgUtilityFailure.php @@ -26,6 +26,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -50,6 +51,6 @@ class UpsmgUtilityFailure implements SnmptrapHandler } $sensor->sensor_current = 1; $sensor->save(); - $trap->log('UPS power failed, state sensor ' . $sensor->sensor_descr . ' has changed to ' . $sensor->sensor_current . '.', 5, 'Power'); + $trap->log('UPS power failed, state sensor ' . $sensor->sensor_descr . ' has changed to ' . $sensor->sensor_current . '.', Severity::Error, 'Power'); } } diff --git a/LibreNMS/Snmptrap/Handlers/UpsmgUtilityRestored.php b/LibreNMS/Snmptrap/Handlers/UpsmgUtilityRestored.php index a039701722..513d48d455 100644 --- a/LibreNMS/Snmptrap/Handlers/UpsmgUtilityRestored.php +++ b/LibreNMS/Snmptrap/Handlers/UpsmgUtilityRestored.php @@ -24,6 +24,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; use Log; @@ -48,6 +49,6 @@ class UpsmgUtilityRestored implements SnmptrapHandler } $sensor->sensor_current = 2; $sensor->save(); - $trap->log('UPS power restored, state sensor ' . $sensor->sensor_descr . ' has changed to ' . $sensor->sensor_current . '.', 1, 'Power'); + $trap->log('UPS power restored, state sensor ' . $sensor->sensor_descr . ' has changed to ' . $sensor->sensor_current . '.', Severity::Ok, 'Power'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamBackupJobCompleted.php b/LibreNMS/Snmptrap/Handlers/VeeamBackupJobCompleted.php index f37af67227..9beefb9370 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamBackupJobCompleted.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamBackupJobCompleted.php @@ -6,7 +6,7 @@ use App\Models\Device; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamBackupJobCompleted implements SnmptrapHandler +class VeeamBackupJobCompleted extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -21,8 +21,8 @@ class VeeamBackupJobCompleted implements SnmptrapHandler $name = $trap->getOidData('VEEAM-MIB::backupJobName'); $comment = $trap->getOidData('VEEAM-MIB::backupJobComment'); $result = $trap->getOidData('VEEAM-MIB::backupJobResult'); - $color = ['Success' => 1, 'Warning' => 4, 'Failed' => 5]; + $severity = $this->getResultSeverity($result); - $trap->log('SNMP Trap: Backup Job ' . $result . ' - ' . $name . ' - ' . $comment, $color[$result], 'backup'); + $trap->log('SNMP Trap: Backup Job ' . $result . ' - ' . $name . ' - ' . $comment, $severity, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamCdpRpoReport.php b/LibreNMS/Snmptrap/Handlers/VeeamCdpRpoReport.php index 29109dc8d0..ebe6ac3c59 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamCdpRpoReport.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamCdpRpoReport.php @@ -6,7 +6,7 @@ use App\Models\Device; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamCdpRpoReport implements SnmptrapHandler +class VeeamCdpRpoReport extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -21,8 +21,8 @@ class VeeamCdpRpoReport implements SnmptrapHandler $policy_name = $trap->getOidData('VEEAM-MIB::cdpPolicyName'); $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); $result = $trap->getOidData('VEEAM-MIB::cdpRpoStatus'); - $color = ['Success' => 1, 'Warning' => 4, 'Failed' => 5]; + $severity = $this->getResultSeverity($result); - $trap->log('SNMP Trap: CDP policy RPO status change' . $result . ' - ' . $policy_name . ' ' . $vm_name, $color[$result], 'policy'); + $trap->log('SNMP Trap: CDP policy RPO status change' . $result . ' - ' . $policy_name . ' ' . $vm_name, $severity, 'policy'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRCopyToFinished.php b/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRCopyToFinished.php index 3054f636a1..3f9b5227dc 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRCopyToFinished.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRCopyToFinished.php @@ -6,7 +6,7 @@ use App\Models\Device; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamLinuxFLRCopyToFinished implements SnmptrapHandler +class VeeamLinuxFLRCopyToFinished extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -24,8 +24,8 @@ class VeeamLinuxFLRCopyToFinished implements SnmptrapHandler $target_dir = $trap->getOidData('VEEAM-MIB::targetDir'); $time = $trap->getOidData('VEEAM-MIB::transferTime'); $result = $trap->getOidData('VEEAM-MIB::transferStatus'); - $color = ['Success' => 1, 'Warning' => 4, 'Failed' => 5]; + $severity = $this->getResultSeverity($result); - $trap->log('SNMP Trap: FLR job ' . $result . ' - ' . $vm_name . ' - ' . $initiator_name . ' ' . $target_host . ' ' . $target_dir . ' Time taken: ' . $time, $color[$result], 'backup'); + $trap->log('SNMP Trap: FLR job ' . $result . ' - ' . $vm_name . ' - ' . $initiator_name . ' ' . $target_host . ' ' . $target_dir . ' Time taken: ' . $time, $severity, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRCopyToStarted.php b/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRCopyToStarted.php index 6e09864855..22c9fd8e9c 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRCopyToStarted.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRCopyToStarted.php @@ -3,10 +3,11 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamLinuxFLRCopyToStarted implements SnmptrapHandler +class VeeamLinuxFLRCopyToStarted extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -23,6 +24,6 @@ class VeeamLinuxFLRCopyToStarted implements SnmptrapHandler $target_host = $trap->getOidData('VEEAM-MIB::targetHost'); $target_dir = $trap->getOidData('VEEAM-MIB::targetDir'); - $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name . ' ' . $target_dir . ' ' . $target_host, 2, 'backup'); + $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name . ' ' . $target_dir . ' ' . $target_host, Severity::Info, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRMountStarted.php b/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRMountStarted.php index b0fdd01ec6..2e6f45b7f9 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRMountStarted.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRMountStarted.php @@ -3,10 +3,11 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamLinuxFLRMountStarted implements SnmptrapHandler +class VeeamLinuxFLRMountStarted extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -21,6 +22,6 @@ class VeeamLinuxFLRMountStarted implements SnmptrapHandler $initiator_name = $trap->getOidData('VEEAM-MIB::initiatorName'); $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); - $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name, 2, 'backup'); + $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name, Severity::Info, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRToOriginalFinished.php b/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRToOriginalFinished.php index 1e230c1d86..ef05523af5 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRToOriginalFinished.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRToOriginalFinished.php @@ -6,7 +6,7 @@ use App\Models\Device; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamLinuxFLRToOriginalFinished implements SnmptrapHandler +class VeeamLinuxFLRToOriginalFinished extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -22,8 +22,8 @@ class VeeamLinuxFLRToOriginalFinished implements SnmptrapHandler $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); $time = $trap->getOidData('VEEAM-MIB::transferTime'); $result = $trap->getOidData('VEEAM-MIB::transferStatus'); - $color = ['Success' => 1, 'Warning' => 4, 'Failed' => 5]; + $severity = $this->getResultSeverity($result); - $trap->log('SNMP Trap: FLR job ' . $result . ' - ' . $vm_name . ' - ' . $initiator_name . ' Time taken: ' . $time, $color[$result], 'backup'); + $trap->log('SNMP Trap: FLR job ' . $result . ' - ' . $vm_name . ' - ' . $initiator_name . ' Time taken: ' . $time, $severity, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRToOriginalStarted.php b/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRToOriginalStarted.php index 5a8587ba8e..3db30e7d9f 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRToOriginalStarted.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamLinuxFLRToOriginalStarted.php @@ -3,10 +3,11 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamLinuxFLRToOriginalStarted implements SnmptrapHandler +class VeeamLinuxFLRToOriginalStarted extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -21,6 +22,6 @@ class VeeamLinuxFLRToOriginalStarted implements SnmptrapHandler $initiator_name = $trap->getOidData('VEEAM-MIB::initiatorName'); $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); - $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name, 2, 'backup'); + $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name, Severity::Info, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamSobrOffloadFinished.php b/LibreNMS/Snmptrap/Handlers/VeeamSobrOffloadFinished.php index af5e5c13db..718f8a9a21 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamSobrOffloadFinished.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamSobrOffloadFinished.php @@ -6,7 +6,7 @@ use App\Models\Device; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamSobrOffloadFinished implements SnmptrapHandler +class VeeamSobrOffloadFinished extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -20,8 +20,8 @@ class VeeamSobrOffloadFinished implements SnmptrapHandler { $name = $trap->getOidData('VEEAM-MIB::repositoryName'); $result = $trap->getOidData('VEEAM-MIB::repositoryStatus'); - $color = ['Success' => 1, 'Warning' => 4, 'Failed' => 5]; + $severity = $this->getResultSeverity($result); - $trap->log('SNMP Trap: Scale-out offload job ' . $result . ' - ' . $name, $color[$result], 'backup'); + $trap->log('SNMP Trap: Scale-out offload job ' . $result . ' - ' . $name, $severity, 'backup'); } } diff --git a/LibreNMS/Enum/Alert.php b/LibreNMS/Snmptrap/Handlers/VeeamTrap.php similarity index 57% rename from LibreNMS/Enum/Alert.php rename to LibreNMS/Snmptrap/Handlers/VeeamTrap.php index 0a95ced9e4..21cb77a3db 100644 --- a/LibreNMS/Enum/Alert.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamTrap.php @@ -1,8 +1,8 @@ + * @copyright 2022 Tony Murray + * @author Tony Murray */ -namespace LibreNMS\Enum; +namespace LibreNMS\Snmptrap\Handlers; -abstract class Alert +use LibreNMS\Enum\Severity; + +abstract class VeeamTrap { - const UNKNOWN = 0; - const OK = 1; - const INFO = 2; - const NOTICE = 3; - const WARNING = 4; - const ERROR = 5; - - const SEVERITIES = ['unknown' => self::UNKNOWN, - 'ok' => self::OK, - 'info' => self::INFO, - 'notice' => self::NOTICE, - 'warning' => self::WARNING, - 'error' => self::ERROR, - ]; + protected function getResultSeverity(string $result): Severity + { + return match ($result) { + 'Success' => Severity::Ok, + 'Warning' => Severity::Warning, + 'Failed' => Severity::Error, + default => Severity::Unknown, + }; + } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamVmBackupCompleted.php b/LibreNMS/Snmptrap/Handlers/VeeamVmBackupCompleted.php index 2245407a2c..8a7c152b35 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamVmBackupCompleted.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamVmBackupCompleted.php @@ -6,7 +6,7 @@ use App\Models\Device; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamVmBackupCompleted implements SnmptrapHandler +class VeeamVmBackupCompleted extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -22,8 +22,8 @@ class VeeamVmBackupCompleted implements SnmptrapHandler $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); $comment = $trap->getOidData('VEEAM-MIB::vmBackupComment'); $result = $trap->getOidData('VEEAM-MIB::vmBackupResult'); - $color = ['Success' => 1, 'Warning' => 4, 'Failed' => 5]; + $severity = $this->getResultSeverity($result); - $trap->log('SNMP Trap: VM backup ' . $result . ' - ' . $vm_name . ' Job: ' . $job_name . ' - ' . $comment, $color[$result], 'backup'); + $trap->log('SNMP Trap: VM backup ' . $result . ' - ' . $vm_name . ' Job: ' . $job_name . ' - ' . $comment, $severity, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamWebDownloadFinished.php b/LibreNMS/Snmptrap/Handlers/VeeamWebDownloadFinished.php index 4edd6f7d6b..842a24f2fd 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamWebDownloadFinished.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamWebDownloadFinished.php @@ -6,7 +6,7 @@ use App\Models\Device; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamWebDownloadFinished implements SnmptrapHandler +class VeeamWebDownloadFinished extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -21,8 +21,8 @@ class VeeamWebDownloadFinished implements SnmptrapHandler $initiator_name = $trap->getOidData('VEEAM-MIB::initiatorName'); $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); $result = $trap->getOidData('VEEAM-MIB::transferStatus'); - $color = ['Success' => 1, 'Warning' => 4, 'Failed' => 5]; + $severity = $this->getResultSeverity($result); - $trap->log('SNMP Trap: 1 click FLR job ' . $result . ' - ' . $vm_name . ' - ' . $initiator_name, $color[$result], 'backup'); + $trap->log('SNMP Trap: 1 click FLR job ' . $result . ' - ' . $vm_name . ' - ' . $initiator_name, $severity, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamWebDownloadStart.php b/LibreNMS/Snmptrap/Handlers/VeeamWebDownloadStart.php index e96835f85c..dacc8be112 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamWebDownloadStart.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamWebDownloadStart.php @@ -3,10 +3,11 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamWebDownloadStart implements SnmptrapHandler +class VeeamWebDownloadStart extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -21,6 +22,6 @@ class VeeamWebDownloadStart implements SnmptrapHandler $initiator_name = $trap->getOidData('VEEAM-MIB::initiatorName'); $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); - $trap->log('SNMP Trap: 1 click FLR job started - ' . $vm_name . ' - ' . $initiator_name, 2, 'backup'); + $trap->log('SNMP Trap: 1 click FLR job started - ' . $vm_name . ' - ' . $initiator_name, Severity::Info, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamWinFLRCopyToFinished.php b/LibreNMS/Snmptrap/Handlers/VeeamWinFLRCopyToFinished.php index b231167908..afbbdab4fb 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamWinFLRCopyToFinished.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamWinFLRCopyToFinished.php @@ -6,7 +6,7 @@ use App\Models\Device; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamWinFLRCopyToFinished implements SnmptrapHandler +class VeeamWinFLRCopyToFinished extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -22,8 +22,8 @@ class VeeamWinFLRCopyToFinished implements SnmptrapHandler $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); $target_dir = $trap->getOidData('VEEAM-MIB::targetDir'); $result = $trap->getOidData('VEEAM-MIB::transferStatus'); - $color = ['Success' => 1, 'Warning' => 4, 'Failed' => 5]; + $severity = $this->getResultSeverity($result); - $trap->log('SNMP Trap: FLR job ' . $result . ' - ' . $vm_name . ' - ' . $initiator_name . ' ' . $target_dir, $color[$result], 'backup'); + $trap->log('SNMP Trap: FLR job ' . $result . ' - ' . $vm_name . ' - ' . $initiator_name . ' ' . $target_dir, $severity, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamWinFLRCopyToStarted.php b/LibreNMS/Snmptrap/Handlers/VeeamWinFLRCopyToStarted.php index 90bc90d887..91eb1abfb5 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamWinFLRCopyToStarted.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamWinFLRCopyToStarted.php @@ -3,10 +3,11 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamWinFLRCopyToStarted implements SnmptrapHandler +class VeeamWinFLRCopyToStarted extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -22,6 +23,6 @@ class VeeamWinFLRCopyToStarted implements SnmptrapHandler $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); $target_dir = $trap->getOidData('VEEAM-MIB::targetDir'); - $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name . ' - ' . $target_dir, 2, 'backup'); + $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name . ' - ' . $target_dir, Severity::Info, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamWinFLRMountStarted.php b/LibreNMS/Snmptrap/Handlers/VeeamWinFLRMountStarted.php index c88f3b60cb..8bc500ed7b 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamWinFLRMountStarted.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamWinFLRMountStarted.php @@ -3,10 +3,11 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamWinFLRMountStarted implements SnmptrapHandler +class VeeamWinFLRMountStarted extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -21,6 +22,6 @@ class VeeamWinFLRMountStarted implements SnmptrapHandler $initiator_name = $trap->getOidData('VEEAM-MIB::initiatorName'); $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); - $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name, 2, 'backup'); + $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name, Severity::Info, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamWinFLRToOriginalFinished.php b/LibreNMS/Snmptrap/Handlers/VeeamWinFLRToOriginalFinished.php index 2f52cad4ff..118a7c952a 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamWinFLRToOriginalFinished.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamWinFLRToOriginalFinished.php @@ -6,7 +6,7 @@ use App\Models\Device; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamWinFLRToOriginalFinished implements SnmptrapHandler +class VeeamWinFLRToOriginalFinished extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -21,8 +21,8 @@ class VeeamWinFLRToOriginalFinished implements SnmptrapHandler $initiator_name = $trap->getOidData('VEEAM-MIB::initiatorName'); $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); $result = $trap->getOidData('VEEAM-MIB::transferStatus'); - $color = ['Success' => 1, 'Warning' => 4, 'Failed' => 5]; + $severity = $this->getResultSeverity($result); - $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name, $color[$result], 'backup'); + $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name, $severity, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VeeamWinFLRToOriginalStarted.php b/LibreNMS/Snmptrap/Handlers/VeeamWinFLRToOriginalStarted.php index c2faaaaa50..d599d2f2b9 100644 --- a/LibreNMS/Snmptrap/Handlers/VeeamWinFLRToOriginalStarted.php +++ b/LibreNMS/Snmptrap/Handlers/VeeamWinFLRToOriginalStarted.php @@ -3,10 +3,11 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; -class VeeamWinFLRToOriginalStarted implements SnmptrapHandler +class VeeamWinFLRToOriginalStarted extends VeeamTrap implements SnmptrapHandler { /** * Handle snmptrap. @@ -21,6 +22,6 @@ class VeeamWinFLRToOriginalStarted implements SnmptrapHandler $initiator_name = $trap->getOidData('VEEAM-MIB::initiatorName'); $vm_name = $trap->getOidData('VEEAM-MIB::vmName'); - $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name, 2, 'backup'); + $trap->log('SNMP Trap: FLR job started - ' . $vm_name . ' - ' . $initiator_name, Severity::Info, 'backup'); } } diff --git a/LibreNMS/Snmptrap/Handlers/VmwVmHBDetected.php b/LibreNMS/Snmptrap/Handlers/VmwVmHBDetected.php index 8c3e54e7f8..aa4313c510 100644 --- a/LibreNMS/Snmptrap/Handlers/VmwVmHBDetected.php +++ b/LibreNMS/Snmptrap/Handlers/VmwVmHBDetected.php @@ -31,6 +31,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -47,6 +48,6 @@ class VmwVmHBDetected implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $vmGuestName = VmwTrapUtil::getGuestName($trap); - $trap->log("Heartbeat from guest $vmGuestName detected", 1); + $trap->log("Heartbeat from guest $vmGuestName detected", Severity::Ok); } } diff --git a/LibreNMS/Snmptrap/Handlers/VmwVmHBLost.php b/LibreNMS/Snmptrap/Handlers/VmwVmHBLost.php index 0e681e857c..c6bb42dff3 100644 --- a/LibreNMS/Snmptrap/Handlers/VmwVmHBLost.php +++ b/LibreNMS/Snmptrap/Handlers/VmwVmHBLost.php @@ -30,6 +30,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -46,6 +47,6 @@ class VmwVmHBLost implements SnmptrapHandler public function handle(Device $device, Trap $trap) { $vmGuestName = VmwTrapUtil::getGuestName($trap); - $trap->log("Heartbeat from guest $vmGuestName lost", 4); + $trap->log("Heartbeat from guest $vmGuestName lost", Severity::Warning); } } diff --git a/LibreNMS/Snmptrap/Handlers/WarmBoot.php b/LibreNMS/Snmptrap/Handlers/WarmBoot.php index 844b852a44..e1964efa7c 100644 --- a/LibreNMS/Snmptrap/Handlers/WarmBoot.php +++ b/LibreNMS/Snmptrap/Handlers/WarmBoot.php @@ -23,6 +23,7 @@ namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -38,6 +39,6 @@ class WarmBoot implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Device ' . $device->displayName() . ' warm booted', 4, 'reboot'); + $trap->log('SNMP Trap: Device ' . $device->displayName() . ' warm booted', Severity::Warning, 'reboot'); } } diff --git a/LibreNMS/Snmptrap/Trap.php b/LibreNMS/Snmptrap/Trap.php index cdc981ad45..620d83188f 100644 --- a/LibreNMS/Snmptrap/Trap.php +++ b/LibreNMS/Snmptrap/Trap.php @@ -29,7 +29,7 @@ use App\Models\Device; use App\Models\Eventlog; use Illuminate\Support\Collection; use Illuminate\Support\Str; -use LibreNMS\Enum\Alert; +use LibreNMS\Enum\Severity; use LibreNMS\Util\IP; class Trap @@ -130,7 +130,7 @@ class Trap /** * Log this trap in the eventlog with the given message */ - public function log(string $message, int $severity = Alert::INFO, string $type = 'trap', int|null|string $reference = null): void + public function log(string $message, Severity $severity = Severity::Info, string $type = 'trap', int|null|string $reference = null): void { Eventlog::log($message, $this->getDevice(), $type, $severity, $reference); } diff --git a/app/Checks.php b/app/Checks.php index 54a3fd3277..59bc8cc8c3 100644 --- a/app/Checks.php +++ b/app/Checks.php @@ -32,6 +32,7 @@ use Cache; use Carbon\Carbon; use Illuminate\Support\Facades\Auth; use LibreNMS\Config; +use LibreNMS\Enum\Severity; class Checks { @@ -51,7 +52,7 @@ class Checks $user = Auth::user(); if ($user->isAdmin()) { - $notifications = Notification::isUnread($user)->where('severity', '>', \LibreNMS\Enum\Alert::OK)->get(); + $notifications = Notification::isUnread($user)->where('severity', '>', Severity::Ok->value)->get(); foreach ($notifications as $notification) { flash() ->using('template.librenms') diff --git a/app/Http/Controllers/AlertController.php b/app/Http/Controllers/AlertController.php index 85bfaf42b0..33120d7628 100644 --- a/app/Http/Controllers/AlertController.php +++ b/app/Http/Controllers/AlertController.php @@ -6,6 +6,7 @@ use App\Models\Alert; use App\Models\Eventlog; use Illuminate\Http\Request; use LibreNMS\Config; +use LibreNMS\Enum\Severity; class AlertController extends Controller { @@ -41,7 +42,7 @@ class AlertController extends Controller if ($alert->save()) { if (in_array($state, [2, 22])) { $rule_name = $alert->rule->name; - Eventlog::log("$username acknowledged alert $rule_name note: $ack_msg", $alert->device_id, 'alert', 2, $alert->id); + Eventlog::log("$username acknowledged alert $rule_name note: $ack_msg", $alert->device_id, 'alert', Severity::Info, $alert->id); } return response()->json([ diff --git a/app/Http/Controllers/Table/EventlogController.php b/app/Http/Controllers/Table/EventlogController.php index 1b9733d6eb..34624c5ee3 100644 --- a/app/Http/Controllers/Table/EventlogController.php +++ b/app/Http/Controllers/Table/EventlogController.php @@ -28,7 +28,7 @@ namespace App\Http\Controllers\Table; use App\Models\Eventlog; use Carbon\Carbon; use LibreNMS\Config; -use LibreNMS\Enum\Alert; +use LibreNMS\Enum\Severity; use LibreNMS\Util\Url; class EventlogController extends TableController @@ -124,26 +124,18 @@ class EventlogController extends TableController } /** - * @param int $eventlog_severity + * @param Severity $eventlog_severity * @return string $eventlog_severity_icon */ private function severityLabel($eventlog_severity) { - switch ($eventlog_severity) { - case Alert::OK: - return 'label-success'; //OK - case Alert::INFO: - return 'label-info'; //Informational - case Alert::NOTICE: - return 'label-primary'; //Notice - case Alert::WARNING: - return 'label-warning'; //Warning - case Alert::ERROR: - return 'label-danger'; //Critical - default: - return 'label-default'; //Unknown - } + return match ($eventlog_severity) { + Severity::Ok => 'label-success', + Severity::Info => 'label-info', + Severity::Notice => 'label-primary', + Severity::Warning => 'label-warning', + Severity::Error => 'label-danger', + default => 'label-default', // Unknown + }; } - - // end eventlog_severity } diff --git a/app/Models/Eventlog.php b/app/Models/Eventlog.php index f6d8421008..7628dca677 100644 --- a/app/Models/Eventlog.php +++ b/app/Models/Eventlog.php @@ -28,7 +28,7 @@ namespace App\Models; use Carbon\Carbon; use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Support\Facades\Auth; -use LibreNMS\Enum\Alert; +use LibreNMS\Enum\Severity; class Eventlog extends DeviceRelatedModel { @@ -36,6 +36,9 @@ class Eventlog extends DeviceRelatedModel protected $primaryKey = 'event_id'; public $timestamps = false; protected $fillable = ['datetime', 'device_id', 'message', 'type', 'reference', 'username', 'severity']; + protected $casts = [ + 'severity' => Severity::class, + ]; // ---- Helper Functions ---- /** @@ -46,10 +49,10 @@ class Eventlog extends DeviceRelatedModel * @param string $text message describing the event * @param Device|int|null $device related device * @param string $type brief category for this event. Examples: sensor, state, stp, system, temperature, interface - * @param int $severity 1: ok, 2: info, 3: notice, 4: warning, 5: critical, 0: unknown + * @param Severity $severity 1: ok, 2: info, 3: notice, 4: warning, 5: critical, 0: unknown * @param int|string|null $reference the id of the referenced entity. Supported types: interface */ - public static function log($text, $device = null, $type = null, $severity = Alert::INFO, $reference = null): void + public static function log($text, $device = null, $type = null, Severity $severity = Severity::Info, $reference = null): void { $model = app()->make(Eventlog::class); $model->_log($text, $device, $type, $severity, $reference); @@ -61,10 +64,10 @@ class Eventlog extends DeviceRelatedModel * @param string $text * @param Device|int|null $device * @param string $type - * @param int $severity + * @param Severity $severity * @param int|string|null $reference */ - public function _log($text, $device = null, $type = null, $severity = Alert::INFO, $reference = null): void + public function _log($text, $device = null, $type = null, Severity $severity = Severity::Info, $reference = null): void { $log = new static([ 'reference' => $reference, diff --git a/app/Observers/DeviceObserver.php b/app/Observers/DeviceObserver.php index f2f1657d33..1a7e5348b2 100644 --- a/app/Observers/DeviceObserver.php +++ b/app/Observers/DeviceObserver.php @@ -7,6 +7,7 @@ use App\ApiClients\Oxidized; use App\Models\Device; use App\Models\Eventlog; use File; +use LibreNMS\Enum\Severity; use Log; class DeviceObserver @@ -19,7 +20,7 @@ class DeviceObserver */ public function created(Device $device): void { - Eventlog::log("Device $device->hostname has been created", $device, 'system', 3); + Eventlog::log("Device $device->hostname has been created", $device, 'system', Severity::Notice); (new Oxidized)->reloadNodes(); } @@ -46,11 +47,11 @@ class DeviceObserver // key attribute changes foreach (['os', 'sysName', 'version', 'hardware', 'features', 'serial', 'icon', 'type', 'ip'] as $attribute) { if ($device->isDirty($attribute)) { - Eventlog::log(self::attributeChangedMessage($attribute, $device->$attribute, $device->getOriginal($attribute)), $device, 'system', 3); + Eventlog::log(self::attributeChangedMessage($attribute, $device->$attribute, $device->getOriginal($attribute)), $device, 'system', Severity::Notice); } } if ($device->isDirty('location_id')) { - Eventlog::log(self::attributeChangedMessage('location', (string) $device->location, null), $device, 'system', 3); + Eventlog::log(self::attributeChangedMessage('location', (string) $device->location, null), $device, 'system', Severity::Notice); } } @@ -71,7 +72,7 @@ class DeviceObserver Log::error("Could not delete RRD files for: $device->hostname", [$e]); } - Eventlog::log("Device $device->hostname has been removed", 0, 'system', 3); + Eventlog::log("Device $device->hostname has been removed", 0, 'system', Severity::Notice); (new Oxidized)->reloadNodes(); } diff --git a/app/Observers/PackageObserver.php b/app/Observers/PackageObserver.php index da904e8286..82841a9088 100644 --- a/app/Observers/PackageObserver.php +++ b/app/Observers/PackageObserver.php @@ -4,6 +4,7 @@ namespace App\Observers; use App\Models\Eventlog; use App\Models\Package; +use LibreNMS\Enum\Severity; use Log; class PackageObserver @@ -16,7 +17,7 @@ class PackageObserver */ public function created(Package $package): void { - Eventlog::log('Package installed: ' . $package, $package->device_id, 'package', 3); + Eventlog::log('Package installed: ' . $package, $package->device_id, 'package', Severity::Notice); Log::info("+ $package"); } @@ -30,7 +31,7 @@ class PackageObserver { if ($package->getOriginal('version') !== $package->version || $package->getOriginal('build') !== $package->build) { $message = $package . ' from ' . $package->getOriginal('version') . ($package->getOriginal('build') ? '-' . $package->getOriginal('build') : ''); - Eventlog::log('Package updated: ' . $message, $package->device_id, 'package', 3); + Eventlog::log('Package updated: ' . $message, $package->device_id, 'package', Severity::Notice); Log::info("u $message"); } } @@ -43,7 +44,7 @@ class PackageObserver */ public function deleted(Package $package): void { - Eventlog::log('Package removed: ' . $package, $package->device_id, 'package', 3); + Eventlog::log('Package removed: ' . $package, $package->device_id, 'package', Severity::Notice); Log::info("- $package"); } diff --git a/app/Observers/StpObserver.php b/app/Observers/StpObserver.php index 20fb2592e2..94843a14dc 100644 --- a/app/Observers/StpObserver.php +++ b/app/Observers/StpObserver.php @@ -4,6 +4,7 @@ namespace App\Observers; use App\Models\Eventlog; use App\Models\Stp; +use LibreNMS\Enum\Severity; use LibreNMS\Util\Time; class StpObserver @@ -17,16 +18,16 @@ class StpObserver public function updating(Stp $stp) { if ($stp->isDirty('designatedRoot')) { - Eventlog::log('STP designated root changed: ' . $stp->getOriginal('designatedRoot') . ' > ' . $stp->designatedRoot, $stp->device_id, 'stp', 4); + Eventlog::log('STP designated root changed: ' . $stp->getOriginal('designatedRoot') . ' > ' . $stp->designatedRoot, $stp->device_id, 'stp', Severity::Warning); } if ($stp->isDirty('rootPort')) { - Eventlog::log('STP root port changed: ' . $stp->getOriginal('rootPort') . ' > ' . $stp->rootPort, $stp->device_id, 'stp', 4); + Eventlog::log('STP root port changed: ' . $stp->getOriginal('rootPort') . ' > ' . $stp->rootPort, $stp->device_id, 'stp', Severity::Warning); } if ($stp->isDirty('rootPort')) { $time = Time::formatInterval((int) $stp->timeSinceTopologyChange); - Eventlog::log('STP topology changed after: ' . $time, $stp->device_id, 'stp', 4); + Eventlog::log('STP topology changed after: ' . $time, $stp->device_id, 'stp', Severity::Warning); } } } diff --git a/check-services.php b/check-services.php index 3902c30bab..350d4f4868 100755 --- a/check-services.php +++ b/check-services.php @@ -14,6 +14,7 @@ */ use LibreNMS\Data\Store\Datastore; +use LibreNMS\Enum\Severity; use LibreNMS\Util\Debug; $init_modules = []; @@ -70,7 +71,7 @@ foreach (dbFetchRows($sql, $params) as $service) { Skipping service check because device {$service['hostname']} is down due to icmp", $service['device_id'], 'service', - 4, + Severity::Warning, $service['service_id'] ); } else { diff --git a/doc/Developing/SNMP-Traps.md b/doc/Developing/SNMP-Traps.md index 086426fbc8..8a675e87b6 100644 --- a/doc/Developing/SNMP-Traps.md +++ b/doc/Developing/SNMP-Traps.md @@ -39,6 +39,7 @@ Create a new class in `LibreNMS\Snmptrap\Handlers` that implements the namespace LibreNMS\Snmptrap\Handlers; use App\Models\Device; +use LibreNMS\Enum\Severity; use LibreNMS\Interfaces\SnmptrapHandler; use LibreNMS\Snmptrap\Trap; @@ -54,7 +55,7 @@ class ColdBoot implements SnmptrapHandler */ public function handle(Device $device, Trap $trap) { - $trap->log('SNMP Trap: Device ' . $device->displayName() . ' cold booted', $device->device_id, 'reboot', 4); + $trap->log('SNMP Trap: Device ' . $device->displayName() . ' cold booted', $device->device_id, 'reboot', Severity::Warning); } } diff --git a/includes/common.php b/includes/common.php index b1465ddaa6..d8000508ea 100644 --- a/includes/common.php +++ b/includes/common.php @@ -17,7 +17,7 @@ */ use LibreNMS\Config; -use LibreNMS\Enum\Alert; +use LibreNMS\Enum\Severity; use LibreNMS\Exceptions\InvalidIpException; use LibreNMS\Util\Debug; use LibreNMS\Util\IP; @@ -72,9 +72,9 @@ function external_exec($command) if ($proc->getExitCode()) { if (Str::startsWith($proc->getErrorOutput(), 'Invalid authentication protocol specified')) { - \App\Models\Eventlog::log('Unsupported SNMP authentication algorithm - ' . $proc->getExitCode(), optional($device)->device_id, 'poller', Alert::ERROR); + \App\Models\Eventlog::log('Unsupported SNMP authentication algorithm - ' . $proc->getExitCode(), optional($device)->device_id, 'poller', Severity::Error); } elseif (Str::startsWith($proc->getErrorOutput(), 'Invalid privacy protocol specified')) { - \App\Models\Eventlog::log('Unsupported SNMP privacy algorithm - ' . $proc->getExitCode(), optional($device)->device_id, 'poller', Alert::ERROR); + \App\Models\Eventlog::log('Unsupported SNMP privacy algorithm - ' . $proc->getExitCode(), optional($device)->device_id, 'poller', Severity::Error); } d_echo('Exitcode: ' . $proc->getExitCode()); d_echo($proc->getErrorOutput()); diff --git a/includes/discovery/functions.inc.php b/includes/discovery/functions.inc.php index 639d594b47..036345e20b 100644 --- a/includes/discovery/functions.inc.php +++ b/includes/discovery/functions.inc.php @@ -18,7 +18,7 @@ use App\Models\Port; use Illuminate\Support\Str; use LibreNMS\Config; use LibreNMS\Device\YamlDiscovery; -use LibreNMS\Enum\Alert; +use LibreNMS\Enum\Severity; use LibreNMS\Exceptions\HostExistsException; use LibreNMS\Exceptions\InvalidIpException; use LibreNMS\OS; @@ -155,7 +155,7 @@ function discover_device(&$device, $force_module = false) } catch (Throwable $e) { // isolate module exceptions so they don't disrupt the polling process Log::error("%rError discovering $module module for {$device['hostname']}.%n $e", ['color' => true]); - \App\Models\Eventlog::log("Error discovering $module module. Check log file for more details.", $device['device_id'], 'discovery', Alert::ERROR); + \App\Models\Eventlog::log("Error discovering $module module. Check log file for more details.", $device['device_id'], 'discovery', Severity::Error); report($e); // Re-throw exception if we're in CI diff --git a/includes/discovery/vlans/arubaos-cx.inc.php b/includes/discovery/vlans/arubaos-cx.inc.php index de1986871a..670f15f3fa 100644 --- a/includes/discovery/vlans/arubaos-cx.inc.php +++ b/includes/discovery/vlans/arubaos-cx.inc.php @@ -1,6 +1,7 @@ $vlan_domains) { //vlan does not exist if (! $vlanDB->exists) { - \App\Models\Eventlog::log("Vlan added: $vlan_id with name $vlan_name", $device['device_id'], 'vlan', 4); + \App\Models\Eventlog::log("Vlan added: $vlan_id with name $vlan_name", $device['device_id'], 'vlan', Severity::Warning); d_echo("Vlan added: $vlan_id with name $vlan_name"); } if ($vlanDB->vlan_name != $vlan_name) { $vlanDB->vlan_name = $vlan_name; - \App\Models\Eventlog::log("Vlan changed: $vlan_id new name $vlan_name", $device['device_id'], 'vlan', 4); + \App\Models\Eventlog::log("Vlan changed: $vlan_id new name $vlan_name", $device['device_id'], 'vlan', Severity::Warning); d_echo("Vlan changed: $vlan_id new name $vlan_name"); } diff --git a/includes/discovery/vlans/q-bridge-mib.inc.php b/includes/discovery/vlans/q-bridge-mib.inc.php index 02d918b591..00ec7c06f3 100644 --- a/includes/discovery/vlans/q-bridge-mib.inc.php +++ b/includes/discovery/vlans/q-bridge-mib.inc.php @@ -23,6 +23,7 @@ */ use App\Models\Vlan; +use LibreNMS\Enum\Severity; echo 'IEEE8021-Q-BRIDGE-MIB VLANs: '; @@ -68,12 +69,12 @@ if ($vlanversion == 'version1' || $vlanversion == '2') { //vlan does not exist if (! $vlanDB->exists) { - \App\Models\Eventlog::log("Vlan added: $vlan_id with name $vlan_name ", $device['device_id'], 'vlan', 4); + \App\Models\Eventlog::log("Vlan added: $vlan_id with name $vlan_name ", $device['device_id'], 'vlan', Severity::Warning); } if ($vlanDB->vlan_name != $vlan_name) { $vlanDB->vlan_name = $vlan_name; - \App\Models\Eventlog::log("Vlan changed: $vlan_id new name $vlan_name", $device['device_id'], 'vlan', 4); + \App\Models\Eventlog::log("Vlan changed: $vlan_id new name $vlan_name", $device['device_id'], 'vlan', Severity::Warning); } $vlanDB->save(); diff --git a/includes/discovery/vlans/routeros.inc.php b/includes/discovery/vlans/routeros.inc.php index 92d7cb5c6c..41fec620d9 100644 --- a/includes/discovery/vlans/routeros.inc.php +++ b/includes/discovery/vlans/routeros.inc.php @@ -28,6 +28,7 @@ // i.e: T,254,ether1 is translated to: tagged vlan 254 on ether1 use App\Models\Vlan; +use LibreNMS\Enum\Severity; $scripts = SnmpQuery::walk('MIKROTIK-MIB::mtxrScriptName')->table(); $sIndex = array_flip($scripts['MIKROTIK-MIB::mtxrScriptName'] ?? [])['LNMS_vlans'] ?? null; @@ -59,11 +60,11 @@ if (isset($sIndex)) { ]); if ($vlan->isDirty('vlan_name')) { - \App\Models\Eventlog::log("Vlan id: $vId changed name to: $vName from " . $vlan->getOriginal('vlan_name'), $device['device_id'], 'vlan', 4); + \App\Models\Eventlog::log("Vlan id: $vId changed name to: $vName from " . $vlan->getOriginal('vlan_name'), $device['device_id'], 'vlan', Severity::Warning); } if (! $vlan->exists) { - \App\Models\Eventlog::log("Vlan id: $vId: $vName added", $device['device_id'], 'vlan', 4); + \App\Models\Eventlog::log("Vlan id: $vId: $vName added", $device['device_id'], 'vlan', Severity::Warning); } $vlan->save(); diff --git a/includes/functions.php b/includes/functions.php index 174289b609..2aa6b0a801 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -12,6 +12,7 @@ use App\Models\Device; use Illuminate\Support\Str; use LibreNMS\Config; use LibreNMS\Enum\PortAssociationMode; +use LibreNMS\Enum\Severity; use LibreNMS\Exceptions\HostExistsException; use LibreNMS\Exceptions\HostIpExistsException; use LibreNMS\Exceptions\HostnameExistsException; @@ -518,7 +519,7 @@ function log_event($text, $device = null, $type = null, $severity = 2, $referenc $device = $device['device_id']; } - \App\Models\Eventlog::log($text, $device, $type, $severity, $reference); + \App\Models\Eventlog::log($text, $device, $type, Severity::tryFrom((int) $severity) ?? Severity::Info, $reference); } // Parse string with emails. Return array with email (as key) and name (as value) diff --git a/includes/html/forms/update-ifspeed.inc.php b/includes/html/forms/update-ifspeed.inc.php index c70ead6fa0..d50132d1d8 100644 --- a/includes/html/forms/update-ifspeed.inc.php +++ b/includes/html/forms/update-ifspeed.inc.php @@ -12,6 +12,7 @@ */ use App\Models\Port; +use LibreNMS\Enum\Severity; header('Content-type: application/json'); @@ -27,10 +28,10 @@ if ($port) { if ($port->save()) { if (empty($speed)) { $port->device->forgetAttrib('ifSpeed:' . $port->ifName); - \App\Models\Eventlog::log("{$port->ifName} Port speed cleared manually", $port->device, 'interface', 3, $port_id); + \App\Models\Eventlog::log("{$port->ifName} Port speed cleared manually", $port->device, 'interface', Severity::Notice, $port_id); } else { $port->device->setAttrib('ifSpeed:' . $port->ifName, 1); - \App\Models\Eventlog::log("{$port->ifName} Port speed set manually: $speed", $port->device, 'interface', 3, $port_id); + \App\Models\Eventlog::log("{$port->ifName} Port speed set manually: $speed", $port->device, 'interface', Severity::Notice, $port_id); $port_tune = $port->device->getAttrib('ifName_tune:' . $port->ifName); $device_tune = $port->device->getAttrib('override_rrdtool_tune'); if ($port_tune == 'true' || diff --git a/includes/polling/functions.inc.php b/includes/polling/functions.inc.php index ec1bff7da2..b637bd57cd 100644 --- a/includes/polling/functions.inc.php +++ b/includes/polling/functions.inc.php @@ -3,7 +3,7 @@ use App\Models\DeviceGraph; use Illuminate\Support\Str; use LibreNMS\Config; -use LibreNMS\Enum\Alert; +use LibreNMS\Enum\Severity; use LibreNMS\Exceptions\JsonAppBase64DecodeException; use LibreNMS\Exceptions\JsonAppBlankJsonException; use LibreNMS\Exceptions\JsonAppExtendErroredException; @@ -340,7 +340,7 @@ function poll_device($device, $force_module = false) } catch (Throwable $e) { // isolate module exceptions so they don't disrupt the polling process Log::error("%rError polling $module module for {$device['hostname']}.%n $e", ['color' => true]); - \App\Models\Eventlog::log("Error polling $module module. Check log file for more details.", $device['device_id'], 'poller', Alert::ERROR); + \App\Models\Eventlog::log("Error polling $module module. Check log file for more details.", $device['device_id'], 'poller', Severity::Error); report($e); // Re-throw exception if we're in CI @@ -493,23 +493,23 @@ function update_application($app, $response, $metrics = [], $status = '') switch ($app->app_state) { case 'OK': - $severity = Alert::OK; + $severity = Severity::Ok; $event_msg = 'changed to OK'; break; case 'ERROR': - $severity = Alert::ERROR; + $severity = Severity::Error; $event_msg = 'ends with ERROR'; break; case 'LEGACY': - $severity = Alert::WARNING; + $severity = Severity::Warning; $event_msg = 'Client Agent is deprecated'; break; case 'UNSUPPORTED': - $severity = Alert::ERROR; + $severity = Severity::Error; $event_msg = 'Client Agent Version is not supported'; break; default: - $severity = Alert::UNKNOWN; + $severity = Severity::Unknown; $event_msg = 'has UNKNOWN state'; break; } diff --git a/tests/Feature/SnmpTraps/AdvaDyingGaspTrapTest.php b/tests/Feature/SnmpTraps/AdvaDyingGaspTrapTest.php index e2991596fa..1848a92f42 100644 --- a/tests/Feature/SnmpTraps/AdvaDyingGaspTrapTest.php +++ b/tests/Feature/SnmpTraps/AdvaDyingGaspTrapTest.php @@ -25,6 +25,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class AdvaDyingGaspTrapTest extends SnmpTrapTestCase { public function testDyingGasp(): void @@ -37,7 +39,7 @@ SNMPv2-MIB::snmpTrapOID.0 CM-SYSTEM-MIB::cmSnmpDyingGaspTrap TRAP, 'Dying Gasp received', 'Could not handle cmSnmpDyingGaspTrap', - [5], + [Severity::Error], ); } } diff --git a/tests/Feature/SnmpTraps/AdvaNetworkElementAlmTrapTest.php b/tests/Feature/SnmpTraps/AdvaNetworkElementAlmTrapTest.php index 9c9b3ad764..436315aca7 100644 --- a/tests/Feature/SnmpTraps/AdvaNetworkElementAlmTrapTest.php +++ b/tests/Feature/SnmpTraps/AdvaNetworkElementAlmTrapTest.php @@ -25,6 +25,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class AdvaNetworkElementAlmTrapTest extends SnmpTrapTestCase { public function testElementAlarmCleared(): void @@ -52,7 +54,7 @@ ADVA-MIB::neEventLogTimeStamp.231 2018-12-10,11:1:43.3,-6:0 TRAP, 'Alarming Element: NETWORK PORT-1-1-1-2 Description: Test Alarm Cleared Severity: cleared', 'Could not handle cmNetworkElementAlmTrap cleared', - [1], + [Severity::Ok], ); } @@ -81,7 +83,7 @@ ADVA-MIB::neEventLogTimeStamp.231 2018-12-10,11:1:43.3,-6:0 TRAP, 'Alarming Element: NETWORK PORT-1-1-1-2 Description: Test Alarm Minor Severity: minor', 'Could not handle cmNetworkElementAlmTrap minor', - [3], + [Severity::Notice], ); } @@ -110,7 +112,7 @@ ADVA-MIB::neEventLogTimeStamp.231 2018-12-10,11:1:43.3,-6:0 TRAP, 'Alarming Element: NETWORK PORT-1-1-1-2 Description: Test Alarm Major Severity: major', 'Could not handle cmNetworkElementAlmTrap major', - [4], + [Severity::Warning], ); } @@ -139,7 +141,7 @@ ADVA-MIB::neEventLogTimeStamp.231 2018-12-10,11:1:43.3,-6:0 TRAP, 'Alarming Element: NETWORK PORT-1-1-1-2 Description: Test Alarm Critical Severity: critical', 'Could not handle cmNetworkElementAlmTrap critical', - [5], + [Severity::Error], ); } } diff --git a/tests/Feature/SnmpTraps/AdvaSysAlmTrapTest.php b/tests/Feature/SnmpTraps/AdvaSysAlmTrapTest.php index 4202427d83..b47b7c57a6 100644 --- a/tests/Feature/SnmpTraps/AdvaSysAlmTrapTest.php +++ b/tests/Feature/SnmpTraps/AdvaSysAlmTrapTest.php @@ -25,6 +25,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class AdvaSysAlmTrapTest extends SnmpTrapTestCase { public function testCriticalAlarm(): void @@ -45,7 +47,7 @@ CM-ALARM-MIB::cmSysAlmDescr.5 "Critical alarm test" TRAP, 'System Alarm: Critical alarm test Status: critical', 'Could not handle cmSysAlmTrap critical', - [5], + [Severity::Error], ); } @@ -67,7 +69,7 @@ CM-ALARM-MIB::cmSysAlmDescr.5 "Major alarm test" TRAP, 'System Alarm: Major alarm test Status: major', 'Could not handle cmSysAlmTrap major', - [4], + [Severity::Warning], ); } @@ -89,7 +91,7 @@ CM-ALARM-MIB::cmSysAlmDescr.5 "Minor alarm test" TRAP, 'System Alarm: Minor alarm test Status: minor', 'Could not handle cmSysAlmTrap minor', - [3], + [Severity::Notice], ); } @@ -111,7 +113,7 @@ CM-ALARM-MIB::cmSysAlmDescr.5 "Cleared alarm test" TRAP, 'System Alarm: Cleared alarm test Status: cleared', 'Could not handle cmSysAlmTrap major', - [1], + [Severity::Ok], ); } } diff --git a/tests/Feature/SnmpTraps/ApcOnBatteryTest.php b/tests/Feature/SnmpTraps/ApcOnBatteryTest.php index 8bebe9eb60..99982fc2f6 100755 --- a/tests/Feature/SnmpTraps/ApcOnBatteryTest.php +++ b/tests/Feature/SnmpTraps/ApcOnBatteryTest.php @@ -24,6 +24,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class ApcOnBatteryTest extends SnmpTrapTestCase { /** @@ -43,7 +45,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'The UPS has switched to battery backup power.', 'Could not handle testApcOnBattery trap', - [4], + [Severity::Warning], ); } } diff --git a/tests/Feature/SnmpTraps/ApcPduOutletTest.php b/tests/Feature/SnmpTraps/ApcPduOutletTest.php index 47dbe1e1b2..e6cd339f92 100644 --- a/tests/Feature/SnmpTraps/ApcPduOutletTest.php +++ b/tests/Feature/SnmpTraps/ApcPduOutletTest.php @@ -22,6 +22,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class ApcPduOutletTest extends SnmpTrapTestCase { public function testOutletOff(): void @@ -37,7 +39,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'APC PDU: Outlet has turned off: 2', 'Could not handle outletOff trap', - [4], + [Severity::Warning], ); } @@ -54,7 +56,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'APC PDU: Outlet has been turned on: 2', 'Could not handle outletOn trap', - [4], + [Severity::Warning], ); } @@ -71,7 +73,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'APC PDU: Outlet has rebooted: 2', 'Could not handle outletReboot trap', - [4], + [Severity::Warning], ); } } diff --git a/tests/Feature/SnmpTraps/ApcPduOverloadTest.php b/tests/Feature/SnmpTraps/ApcPduOverloadTest.php index 7ce880cfbc..2b2fe7c83d 100644 --- a/tests/Feature/SnmpTraps/ApcPduOverloadTest.php +++ b/tests/Feature/SnmpTraps/ApcPduOverloadTest.php @@ -22,6 +22,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class ApcPduOverloadTest extends SnmpTrapTestCase { /** @@ -44,7 +46,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'Grand POP PDU R15 A1 phase 1 Metered Rack PDU: Near overload.', 'Could not handle rPDUNearOverload trap', - [4], + [Severity::Warning], ); } @@ -68,7 +70,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'Grand POP PDU R15 A1 phase 1 Metered Rack PDU: Near overload cleared.', 'Could not handle rPDUNearOverloadClear trap', - [1], + [Severity::Ok], ); } @@ -92,7 +94,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'Grand POP PDU R15 A1 phase 1 APC Rack PDU: Overload condition.', 'Could not handle rPDUOverload trap', - [5], + [Severity::Error], ); } @@ -116,7 +118,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'Grand POP PDU R15 A1 phase 1 APC Rack PDU: Overload condition has cleared.', 'Could not handle rPDUOverloadClear trap', - [1], + [Severity::Ok], ); } } diff --git a/tests/Feature/SnmpTraps/ApcPowerRestoredTest.php b/tests/Feature/SnmpTraps/ApcPowerRestoredTest.php index 56ab155598..6902d8417e 100755 --- a/tests/Feature/SnmpTraps/ApcPowerRestoredTest.php +++ b/tests/Feature/SnmpTraps/ApcPowerRestoredTest.php @@ -24,6 +24,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class ApcPowerRestoredTest extends SnmpTrapTestCase { /** @@ -43,7 +45,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'INFORMATIONAL: Utility power has been restored.', 'Could not handle testApcPowerRestored trap', - [1], + [Severity::Ok], ); } } diff --git a/tests/Feature/SnmpTraps/ApcSmartAvrReducingOffTest.php b/tests/Feature/SnmpTraps/ApcSmartAvrReducingOffTest.php index 03e069c914..836e94ed6e 100644 --- a/tests/Feature/SnmpTraps/ApcSmartAvrReducingOffTest.php +++ b/tests/Feature/SnmpTraps/ApcSmartAvrReducingOffTest.php @@ -24,6 +24,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class ApcSmartAvrReducingOffTest extends SnmpTrapTestCase { /** @@ -43,7 +45,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'UPS: No longer compensating for a high input voltage.', 'Could not handle testApcSmartAvrReducingOff trap', - [1], + [Severity::Ok], ); } } diff --git a/tests/Feature/SnmpTraps/ApcSmartAvrReducingTest.php b/tests/Feature/SnmpTraps/ApcSmartAvrReducingTest.php index c9d9052ee2..31931415a8 100644 --- a/tests/Feature/SnmpTraps/ApcSmartAvrReducingTest.php +++ b/tests/Feature/SnmpTraps/ApcSmartAvrReducingTest.php @@ -24,6 +24,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class ApcSmartAvrReducingTest extends SnmpTrapTestCase { /** @@ -43,7 +45,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 PowerNet-MIB::apc TRAP, 'UPS: Compensating for a high input voltage.', 'Could not handle testApcSmartAvrReducing trap', - [3], + [Severity::Notice], ); } } diff --git a/tests/Feature/SnmpTraps/BgpTrapTest.php b/tests/Feature/SnmpTraps/BgpTrapTest.php index 0aa18778ea..11388376b7 100644 --- a/tests/Feature/SnmpTraps/BgpTrapTest.php +++ b/tests/Feature/SnmpTraps/BgpTrapTest.php @@ -29,6 +29,7 @@ use App\Models\BgpPeer; use App\Models\Device; use Illuminate\Foundation\Testing\DatabaseTransactions; use LibreNMS\Config; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class BgpTrapTest extends SnmpTrapTestCase @@ -54,7 +55,7 @@ BGP4-MIB::bgpPeerLastError.$bgppeer->bgpPeerIdentifier \"04 00 \" BGP4-MIB::bgpPeerState.$bgppeer->bgpPeerIdentifier established\n", "SNMP Trap: BGP Up $bgppeer->bgpPeerIdentifier " . get_astext($bgppeer->bgpPeerRemoteAs) . ' is now established', 'Could not handle bgpEstablished', - [1, 'bgpPeer', $bgppeer->bgpPeerIdentifier], + [Severity::Ok, 'bgpPeer', $bgppeer->bgpPeerIdentifier], $device, ); @@ -80,7 +81,7 @@ BGP4-MIB::bgpPeerLastError.$bgppeer->bgpPeerIdentifier \"04 00 \" BGP4-MIB::bgpPeerState.$bgppeer->bgpPeerIdentifier idle\n", "SNMP Trap: BGP Down $bgppeer->bgpPeerIdentifier " . get_astext($bgppeer->bgpPeerRemoteAs) . ' is now idle', 'Could not handle bgpBackwardTransition', - [5, 'bgpPeer', $bgppeer->bgpPeerIdentifier], + [Severity::Error, 'bgpPeer', $bgppeer->bgpPeerIdentifier], $device, ); diff --git a/tests/Feature/SnmpTraps/CiscoDHCPServerTrapTest.php b/tests/Feature/SnmpTraps/CiscoDHCPServerTrapTest.php index f315d1452a..85917de41f 100644 --- a/tests/Feature/SnmpTraps/CiscoDHCPServerTrapTest.php +++ b/tests/Feature/SnmpTraps/CiscoDHCPServerTrapTest.php @@ -23,6 +23,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class CiscoDHCPServerTrapTest extends SnmpTrapTestCase { /** @@ -40,7 +42,7 @@ CISCO-IETF-DHCP-SERVER-MIB::cDhcpv4ServerSharedNetFreeAddrHighThreshold."some-dh CISCO-IETF-DHCP-SERVER-MIB::cDhcpv4ServerSharedNetFreeAddresses."some-dhcp-pool" = INTEGER: 99', 'SNMP Trap: DHCP pool "some-dhcp-pool" address space high. Free addresses: \'= INTEGER: 99\' addresses.', 'Could not handle CiscoDHCPServerFreeAddressHigh Test trap', - [2], + [Severity::Info], ); } @@ -54,7 +56,7 @@ CISCO-IETF-DHCP-SERVER-MIB::cDhcpv4ServerSharedNetFreeAddrLowThreshold."some-dhc CISCO-IETF-DHCP-SERVER-MIB::cDhcpv4ServerSharedNetFreeAddresses."some-dhcp-pool" = INTEGER: 99', 'SNMP Trap: DHCP pool "some-dhcp-pool" address space low. Free addresses: \'= INTEGER: 99\' addresses.', 'Could not handle CiscoDHCPServerFreeAddressHigh Test trap', - [5], + [Severity::Error], ); } @@ -67,7 +69,7 @@ SNMPv2-MIB::snmpTrapOID.0 CISCO-IETF-DHCP-SERVER-MIB::cDhcpv4ServerStartTime CISCO-IETF-DHCP-SERVER-MIB::cDhcpv4ServerStartTime = Hex-STRING: 07 E6 0B 0A 03 0F 25 00 2B 00', 'SNMP Trap: Device DHCP service started.', 'Could not handle CiscoDHCPServerStart Test trap', - [2], + [Severity::Info], ); } @@ -80,7 +82,7 @@ SNMPv2-MIB::snmpTrapOID.0 CISCO-IETF-DHCP-SERVER-MIB::cDhcpv4ServerStopTime CISCO-IETF-DHCP-SERVER-MIB::cDhcpv4ServerStopTime = Hex-STRING: 07 E6 0B 0A 03 0F 25 00 2B 00', 'SNMP Trap: Device DHCP service stopped.', 'Could not handle CiscoDHCPServerStop Test trap', - [5], + [Severity::Error], ); } } diff --git a/tests/Feature/SnmpTraps/CiscoErrDisableInterfaceEventTest.php b/tests/Feature/SnmpTraps/CiscoErrDisableInterfaceEventTest.php index 92890a0a05..80d5a3b44d 100644 --- a/tests/Feature/SnmpTraps/CiscoErrDisableInterfaceEventTest.php +++ b/tests/Feature/SnmpTraps/CiscoErrDisableInterfaceEventTest.php @@ -28,6 +28,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Port; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class CiscoErrDisableInterfaceEventTest extends SnmpTrapTestCase @@ -55,7 +56,7 @@ SNMPv2-MIB::snmpTrapOID.0 CISCO-ERR-DISABLE-MIB::cErrDisableInterfaceEventRev1 CISCO-ERR-DISABLE-MIB::cErrDisableIfStatusCause.$port->ifIndex.0 bpduGuard", 'SNMP TRAP: bpduGuard error detected on ' . $port->ifName . ' (Description: ' . $port->ifDescr . '). ' . $port->ifName . ' in err-disable state.', 'Could not handle testErrDisableInterfaceEvent trap', - [4], + [Severity::Warning], $device, ); } @@ -80,7 +81,7 @@ SNMPv2-MIB::snmpTrapOID.0 CISCO-ERR-DISABLE-MIB::cErrDisableInterfaceEventRev1 CISCO-ERR-DISABLE-MIB::cErrDisableIfStatusCause.10.0 bpduGuard", 'SNMP TRAP: bpduGuard error detected on unknown port. Either ifIndex is not found in the trap, or it does not match a port on this device.', 'Could not handle testErrDisableBadIfIndex trap', - [4], + [Severity::Warning], $device, ); } diff --git a/tests/Feature/SnmpTraps/CiscoMacViolationTest.php b/tests/Feature/SnmpTraps/CiscoMacViolationTest.php index dc209085b9..8cd38c01df 100644 --- a/tests/Feature/SnmpTraps/CiscoMacViolationTest.php +++ b/tests/Feature/SnmpTraps/CiscoMacViolationTest.php @@ -22,6 +22,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class CiscoMacViolationTest extends SnmpTrapTestCase { /** @@ -42,7 +44,7 @@ CISCO-PORT-SECURITY-MIB::cpsIfSecureLastMacAddress a8:9d:21:e1:d8:50 TRAP, 'SNMP Trap: Secure MAC Address Violation on port GigabitEthernet1/0/24. Last MAC address: a8:9d:21:e1:d8:50', 'Could not handle testMacViolation trap', - [4], + [Severity::Warning], ); } } diff --git a/tests/Feature/SnmpTraps/CommonTrapTest.php b/tests/Feature/SnmpTraps/CommonTrapTest.php index 9f199e446f..1834683470 100644 --- a/tests/Feature/SnmpTraps/CommonTrapTest.php +++ b/tests/Feature/SnmpTraps/CommonTrapTest.php @@ -30,6 +30,7 @@ use App\Models\Eventlog; use App\Models\Ipv4Address; use App\Models\Port; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Snmptrap\Dispatcher; use LibreNMS\Snmptrap\Trap; use LibreNMS\Tests\Traits\RequiresDatabase; @@ -74,7 +75,7 @@ DISMAN-EVENT-MIB::sysUpTimeInstance 198:2:10:48.91\n"; $this->assertEquals($device->device_id, $eventlog->device_id, 'Trap eventlog device incorrect'); $this->assertEquals('', $eventlog->message, 'Trap eventlog message incorrect'); $this->assertEquals('trap', $eventlog->type, 'Trap eventlog type incorrect'); - $this->assertEquals(2, $eventlog->severity, 'Trap eventlog severity incorrect'); + $this->assertEquals(Severity::Info, $eventlog->severity, 'Trap eventlog severity incorrect'); } public function testGenericTrap(): void @@ -95,7 +96,7 @@ SNMPv2-MIB::snmpTrapOID.0 SNMPv2-MIB::someOid\n"; $this->assertEquals($device->device_id, $eventlog->device_id, 'Trap eventlog device incorrect'); $this->assertEquals('SNMPv2-MIB::someOid', $eventlog->message, 'Trap eventlog message incorrect'); $this->assertEquals('trap', $eventlog->type, 'Trap eventlog type incorrect'); - $this->assertEquals(2, $eventlog->severity, 'Trap eventlog severity incorrect'); + $this->assertEquals(Severity::Info, $eventlog->severity, 'Trap eventlog severity incorrect'); } public function testAuthorization(): void @@ -117,7 +118,7 @@ SNMPv2-MIB::snmpTrapOID.0 SNMPv2-MIB::authenticationFailure\n"; $this->assertEquals($device->device_id, $eventlog->device_id, 'Trap eventlog device incorrect'); $this->assertEquals('SNMP Trap: Authentication Failure: ' . $device->displayName(), $eventlog->message, 'Trap eventlog message incorrect'); $this->assertEquals('auth', $eventlog->type, 'Trap eventlog type incorrect'); - $this->assertEquals(3, $eventlog->severity, 'Trap eventlog severity incorrect'); + $this->assertEquals(Severity::Notice, $eventlog->severity, 'Trap eventlog severity incorrect'); } public function testBridgeNewRoot(): void @@ -139,7 +140,7 @@ SNMPv2-MIB::snmpTrapOID.0 BRIDGE-MIB::newRoot"; $this->assertEquals($device->device_id, $eventlog->device_id, 'Trap eventlog device incorrect'); $this->assertEquals('SNMP Trap: Device ' . $device->displayName() . ' was elected as new root on one of its Spanning Tree Instances', $eventlog->message, 'Trap eventlog message incorrect'); $this->assertEquals('stp', $eventlog->type, 'Trap eventlog type incorrect'); - $this->assertEquals(3, $eventlog->severity, 'Trap eventlog severity incorrect'); + $this->assertEquals(Severity::Notice, $eventlog->severity, 'Trap eventlog severity incorrect'); } public function testBridgeTopologyChanged(): void @@ -152,7 +153,7 @@ SNMPv2-MIB::snmpTrapOID.0 BRIDGE-MIB::topologyChange TRAP, 'SNMP Trap: Topology of Spanning Tree Instance on device {{ hostname }} was changed', // assertTrapLogsMessage sets display to hostname 'Failed to handle BRIDGE-MIB::topologyChange', - [3, 'stp'], + [Severity::Notice, 'stp'], ); } @@ -166,7 +167,7 @@ SNMPv2-MIB::snmpTrapOID.0 SNMPv2-MIB::coldStart TRAP, 'SNMP Trap: Device {{ hostname }} cold booted', 'Failed to handle SNMPv2-MIB::coldStart', - [4, 'reboot'], + [Severity::Warning, 'reboot'], ); } @@ -180,7 +181,7 @@ SNMPv2-MIB::snmpTrapOID.0 SNMPv2-MIB::warmStart TRAP, 'SNMP Trap: Device {{ hostname }} warm booted', 'Failed to handle SNMPv2-MIB::warmStart', - [4, 'reboot'], + [Severity::Warning, 'reboot'], ); } @@ -194,7 +195,7 @@ SNMPv2-MIB::snmpTrapOID.0 ENTITY-MIB::entConfigChange TRAP, 'SNMP Trap: Configuration of Entity Database on device {{ hostname }} was changed', 'Failed to handle ENTITY-MIB::entConfigChange', - [3, 'system'], + [Severity::Notice, 'system'], ); } } diff --git a/tests/Feature/SnmpTraps/CyberPowerTrapsTest.php b/tests/Feature/SnmpTraps/CyberPowerTrapsTest.php index fb55b274bc..8c99f09490 100644 --- a/tests/Feature/SnmpTraps/CyberPowerTrapsTest.php +++ b/tests/Feature/SnmpTraps/CyberPowerTrapsTest.php @@ -25,6 +25,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class CyberPowerTrapsTest extends SnmpTrapTestCase { public function testCpUpsOverload(): void @@ -41,7 +43,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS has sensed an overload condition.', 'Could not handle CpUpsOverload trap', - [5], + [Severity::Error], ); } @@ -59,7 +61,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS battery test failed.', 'Could not handle CpUpsDiagFailed trap', - [5], + [Severity::Error], ); } @@ -94,7 +96,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'Utility power failed, transfer to backup mode.', 'Could not handle CpUpsOnBattery trap', - [4], + [Severity::Warning], ); } @@ -112,7 +114,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS battery capacity is low than threshold, soon to be exhausted.', 'Could not handle CpLowBattery trap', - [4], + [Severity::Warning], ); } @@ -130,7 +132,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'Utility power restored, return from backup mode.', 'Could not handle CpPowerRestored trap', - [1], + [Severity::Ok], ); } @@ -165,7 +167,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS has returned from a low battery condition.', 'Could not handle CpRtnLowBattery trap', - [1], + [Severity::Ok], ); } @@ -183,7 +185,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS has been turned off.', 'Could not handle CpUpsTurnedOff trap', - [4], + [Severity::Warning], ); } @@ -201,7 +203,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS entered sleep mode. Output power will not be provided.', 'Could not handle CpUpsSleeping trap', - [4], + [Severity::Warning], ); } @@ -219,7 +221,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS woke up from sleep mode. Output power is being provided.', 'Could not handle CpUpsWokeUp trap', - [1], + [Severity::Ok], ); } @@ -237,7 +239,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS started reboot sequence.', 'Could not handle CpUpsRebootStarted trap', - [4], + [Severity::Warning], ); } @@ -255,7 +257,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS inner temperature is too high.', 'Could not handle CpUpsOverTemp trap', - [5], + [Severity::Error], ); } @@ -273,7 +275,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS over temperature condition cleared.', 'Could not handle CpRtnOverTemp trap', - [1], + [Severity::Ok], ); } @@ -291,7 +293,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS has returned from an overload condition.', 'Could not handle CpRtOverLoad trap', - [1], + [Severity::Ok], ); } @@ -309,7 +311,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The UPS runtime calibration completed.', 'Could not handle CpRtnDischarged trap', - [1], + [Severity::Ok], ); } @@ -327,7 +329,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The battery charger is abnormal.', 'Could not handle CpUpsChargerFailure trap', - [4], + [Severity::Warning], ); } @@ -345,7 +347,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 CPS-MIB::cps TRAP, 'The charger returned from a failure condition.', 'Could not handle CpRtnChargerFailure trap', - [1], + [Severity::Ok], ); } diff --git a/tests/Feature/SnmpTraps/FgTrapIpsTest.php b/tests/Feature/SnmpTraps/FgTrapIpsTest.php index fbeee0d7df..afb103c082 100644 --- a/tests/Feature/SnmpTraps/FgTrapIpsTest.php +++ b/tests/Feature/SnmpTraps/FgTrapIpsTest.php @@ -28,6 +28,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Ipv4Address; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class FgTrapIpsTest extends SnmpTrapTestCase @@ -50,7 +51,7 @@ FORTINET-FORTIGATE-MIB::fgIpsTrapSrcIp.0 $ipv4->ipv4_address FORTINET-FORTIGATE-MIB::fgIpsTrapSigMsg.0 tcp_src_session", "DDoS prevention triggered. Source: $ipv4->ipv4_address Protocol: tcp_src_session", 'Could not handle fgTrapIpsAnomaly trap', - [4], + [Severity::Warning], $device, ); } @@ -85,7 +86,7 @@ FORTINET-FORTIGATE-MIB::fgIpsTrapSrcIp.0 $ipv4->ipv4_address FORTINET-FORTIGATE-MIB::fgIpsTrapSigMsg.0 UPnP.SSDP.M.Search.Anomaly", "IPS signature UPnP.SSDP.M.Search.Anomaly detected from $ipv4->ipv4_address with Fortiguard ID 47173", 'Could not handle fgTrapIpsSignature trap', - [4], + [Severity::Warning], $device, ); } diff --git a/tests/Feature/SnmpTraps/FgTrapVpnTunTest.php b/tests/Feature/SnmpTraps/FgTrapVpnTunTest.php index ee028ddc0c..b9dd068a9c 100644 --- a/tests/Feature/SnmpTraps/FgTrapVpnTunTest.php +++ b/tests/Feature/SnmpTraps/FgTrapVpnTunTest.php @@ -28,6 +28,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Ipv4Address; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class FgTrapVpnTunTest extends SnmpTrapTestCase @@ -50,7 +51,7 @@ FORTINET-FORTIGATE-MIB::fgVpnTrapRemoteGateway.0 $ipv4->ipv4_address FORTINET-FORTIGATE-MIB::fgVpnTrapPhase1Name.0 test_tunnel_down", "VPN tunnel test_tunnel_down to $ipv4->ipv4_address is down", 'Could not handle fgTrapVpnTunDown', - [3], + [Severity::Notice], $device, ); } @@ -69,7 +70,7 @@ FORTINET-FORTIGATE-MIB::fgVpnTrapRemoteGateway.0 $ipv4->ipv4_address FORTINET-FORTIGATE-MIB::fgVpnTrapPhase1Name.0 test_tunnel_up", "VPN tunnel test_tunnel_up to $ipv4->ipv4_address is up", 'Could not handle fgTrapVpnTunUp', - [1], + [Severity::Ok], $device, ); } diff --git a/tests/Feature/SnmpTraps/FmTrapLogRateThresholdTest.php b/tests/Feature/SnmpTraps/FmTrapLogRateThresholdTest.php index 472a25f909..200f711493 100644 --- a/tests/Feature/SnmpTraps/FmTrapLogRateThresholdTest.php +++ b/tests/Feature/SnmpTraps/FmTrapLogRateThresholdTest.php @@ -25,6 +25,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class FmTrapLogRateThresholdTest extends SnmpTrapTestCase { public function testAvOversize(): void @@ -41,7 +43,7 @@ FORTINET-FORTIMANAGER-FORTIANALYZER-MIB::fmLogRateThreshold.0 260 TRAP, 'Recommended log rate exceeded. Current Rate: 315 Recommended Rate: 260', 'Could not handle fmTrapLogRateThreshold trap', - [3], + [Severity::Notice], ); } } diff --git a/tests/Feature/SnmpTraps/HpFaultTest.php b/tests/Feature/SnmpTraps/HpFaultTest.php index b0e24b679d..d22abdd26c 100644 --- a/tests/Feature/SnmpTraps/HpFaultTest.php +++ b/tests/Feature/SnmpTraps/HpFaultTest.php @@ -22,6 +22,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class HpFaultTest extends SnmpTrapTestCase { public function testBadCable(): void @@ -41,7 +43,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 HP-ICF-OID::hpicfCommonTraps TRAP, "Fault - Bad Cable http:\/\/{{ ip }}\/cgi\/fDetail?index=1510", 'Could not handle HP-ICF-FAULT-FINDER-MIB::hpicfFaultFinderTrap trap', - [4, 'badCable'], + [Severity::Warning, 'badCable'], ); } @@ -60,7 +62,7 @@ SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 public SNMPv2-MIB::snmpTrapEnterprise.0 HP-ICF-OID::hpicfCommonTraps", "Fault - Unhandled http:\/\/{{ ip }}\/cgi\/fDetail?index=1510", 'Could not handle HP-ICF-FAULT-FINDER-MIB::hpicfFaultFinderTrap trap', - [2, 'badDriver'], + [Severity::Info, 'badDriver'], ); } @@ -79,7 +81,7 @@ SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 public SNMPv2-MIB::snmpTrapEnterprise.0 HP-ICF-OID::hpicfCommonTraps", "Fault - Broadcaststorm http:\/\/{{ ip }}\/cgi\/fDetail?index=1510", 'Could not handle HP-ICF-FAULT-FINDER-MIB::hpicfFaultFinderTrap trap', - [5, 'bcastStorm'], + [Severity::Error, 'bcastStorm'], ); } } diff --git a/tests/Feature/SnmpTraps/JnxBgpM2Test.php b/tests/Feature/SnmpTraps/JnxBgpM2Test.php index b3371372ca..65d2ac0f6e 100644 --- a/tests/Feature/SnmpTraps/JnxBgpM2Test.php +++ b/tests/Feature/SnmpTraps/JnxBgpM2Test.php @@ -30,6 +30,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\BgpPeer; use App\Models\Device; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class JnxBgpM2Test extends SnmpTrapTestCase @@ -88,7 +89,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX2 TRAP, 'BGP Peer 2001:d88:1::2 is now in the idle state', 'Could not handle JnxBgpM2BackwardsTransition trap', - [5], + [Severity::Error], $device, ); } @@ -117,7 +118,7 @@ BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerState.0.2.32.1.13.136.0.1.0.0.0.0.0.0.0.0.0.1.2 SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX240', 'BGP Peer 2001:d88:1::2 is now in the established state', 'Could not handle JnxBgpM2Established trap', - [1], + [Severity::Ok], $device, ); } diff --git a/tests/Feature/SnmpTraps/JnxDomAlarmTest.php b/tests/Feature/SnmpTraps/JnxDomAlarmTest.php index f3a1986331..6999d9b17d 100644 --- a/tests/Feature/SnmpTraps/JnxDomAlarmTest.php +++ b/tests/Feature/SnmpTraps/JnxDomAlarmTest.php @@ -30,6 +30,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Port; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class JnxDomAlarmTest extends SnmpTrapTestCase @@ -52,7 +53,7 @@ JUNIPER-DOM-MIB::jnxDomCurrentAlarmDate.$port->ifIndex 2019-4-17,0:4:51.0,-5:0 SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX480", "DOM alarm set for interface $port->ifDescr. Current alarm(s): input loss of signal", 'Could not handle JnxDomAlarmSet', - [5], + [Severity::Error], $device, ); } @@ -72,7 +73,7 @@ JUNIPER-DOM-MIB::jnxDomCurrentAlarmDate.$port->ifIndex 2019-4-17,0:4:51.0,-5:0 SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX480", "DOM alarm cleared for interface $port->ifDescr. Cleared alarm(s): input loss of signal, input loss of lock, input rx path not ready, input laser power low, module not ready", 'Could not handle JnxDomAlarmCleared', - [1], + [Severity::Ok], $device, ); } diff --git a/tests/Feature/SnmpTraps/JnxDomLaneAlarmTest.php b/tests/Feature/SnmpTraps/JnxDomLaneAlarmTest.php index 58024812fb..15587f32f0 100644 --- a/tests/Feature/SnmpTraps/JnxDomLaneAlarmTest.php +++ b/tests/Feature/SnmpTraps/JnxDomLaneAlarmTest.php @@ -30,6 +30,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Port; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class JnxDomLaneAlarmTest extends SnmpTrapTestCase @@ -60,7 +61,7 @@ JUNIPER-DOM-MIB::jnxDomCurrentLaneAlarmDate.$port->ifIndex 2019-4-10,0:9:35.0,-5 SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX960", "DOM lane alarm on interface $port->ifDescr lane 0. Current alarm(s): input signal low", 'Could not handle JnxDomLaneAlarmSet', - [5], + [Severity::Error], $device, ); } @@ -88,7 +89,7 @@ JUNIPER-DOM-MIB::jnxDomCurrentLaneAlarmDate.$port->ifIndex 2019-4-10,0:9:35.0,-5 SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX960", "DOM lane alarm cleared on interface $port->ifDescr lane 0. Current alarm(s): output signal high", 'Could not handle JnxDomLaneAlarmCleared', - [1], + [Severity::Ok], $device, ); } diff --git a/tests/Feature/SnmpTraps/JnxLdpLspTest.php b/tests/Feature/SnmpTraps/JnxLdpLspTest.php index 29ba90c6e1..2e28670958 100644 --- a/tests/Feature/SnmpTraps/JnxLdpLspTest.php +++ b/tests/Feature/SnmpTraps/JnxLdpLspTest.php @@ -30,6 +30,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Ipv4Address; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class JnxLdpLspTest extends SnmpTrapTestCase @@ -53,7 +54,7 @@ JUNIPER-LDP-MIB::jnxLdpInstanceName.0 \"test instance down\" SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX480", "LDP session test instance down from $device->ip to $ipv4->ipv4_address has gone down due to topologyChanged", 'Could not handle JnxLdpLspDown trap', - [4], + [Severity::Warning], $device, ); } @@ -73,7 +74,7 @@ JUNIPER-LDP-MIB::jnxLdpInstanceName.0 \"test instance up\" SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX480", "LDP session test instance up from $device->ip to $ipv4->ipv4_address is now up.", 'Could not handle JnxLdpLspUp trap', - [1], + [Severity::Ok], $device, ); } diff --git a/tests/Feature/SnmpTraps/JnxLdpSesTest.php b/tests/Feature/SnmpTraps/JnxLdpSesTest.php index bbe5488a48..67aa182743 100644 --- a/tests/Feature/SnmpTraps/JnxLdpSesTest.php +++ b/tests/Feature/SnmpTraps/JnxLdpSesTest.php @@ -30,6 +30,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Port; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class JnxLdpSesTest extends SnmpTrapTestCase @@ -56,7 +57,7 @@ JUNIPER-LDP-MIB::jnxLdpSesDownIf.0 $port->ifIndex SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX480", "LDP session on interface $port->ifDescr is nonexistent due to allAdjacenciesDown", 'Could not handle JnxLdpSesDown trap', - [4], + [Severity::Warning], $device, ); } @@ -81,7 +82,7 @@ JUNIPER-LDP-MIB::jnxLdpSesUpIf.0 $port->ifIndex SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX960", "LDP session on interface $port->ifDescr is operational", 'Could not handle JnxLdpSesUp trap', - [1], + [Severity::Ok], $device, ); } diff --git a/tests/Feature/SnmpTraps/JnxPowerSupplyTest.php b/tests/Feature/SnmpTraps/JnxPowerSupplyTest.php index 1b0a01adcb..8905ff1909 100644 --- a/tests/Feature/SnmpTraps/JnxPowerSupplyTest.php +++ b/tests/Feature/SnmpTraps/JnxPowerSupplyTest.php @@ -27,6 +27,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class JnxPowerSupplyTest extends SnmpTrapTestCase { public function testJnxPowerSupplyFailureTrap(): void @@ -46,7 +48,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX96 TRAP, 'Power Supply PEM 3 is down', 'Could not handle JnxPowerSupplyFailure', - [5], + [Severity::Error], ); } @@ -67,7 +69,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX96 TRAP, 'Power Supply PEM 4 is OK', 'Could not handle JnxPowerSupplyOK', - [1], + [Severity::Ok], ); } } diff --git a/tests/Feature/SnmpTraps/JnxVpnIfTest.php b/tests/Feature/SnmpTraps/JnxVpnIfTest.php index 75e9cd344b..463a4850ad 100644 --- a/tests/Feature/SnmpTraps/JnxVpnIfTest.php +++ b/tests/Feature/SnmpTraps/JnxVpnIfTest.php @@ -31,6 +31,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Port; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class JnxVpnIfTest extends SnmpTrapTestCase @@ -54,7 +55,7 @@ JUNIPER-VPN-MIB::jnxVpnIfIndex.l2Circuit.\"ge-0/0/2.0\".$port->ifIndex $port->if SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX960", "l2Circuit on interface $port->ifDescr has gone down", 'Could not handle JnxVpnIfDown trap', - [4], + [Severity::Warning], $device, ); } @@ -75,7 +76,7 @@ JUNIPER-VPN-MIB::jnxVpnIfIndex.l2Circuit.\"ge-0/0/2.0\".$port->ifIndex $port->if SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX960", "l2Circuit on interface $port->ifDescr is now connected", 'Could not handle JnxVpnIfUp trap', - [1], + [Severity::Ok], $device, ); } diff --git a/tests/Feature/SnmpTraps/JnxVpnPwTest.php b/tests/Feature/SnmpTraps/JnxVpnPwTest.php index 08bd886884..5e71123c72 100644 --- a/tests/Feature/SnmpTraps/JnxVpnPwTest.php +++ b/tests/Feature/SnmpTraps/JnxVpnPwTest.php @@ -31,6 +31,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Port; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class JnxVpnPwTest extends SnmpTrapTestCase @@ -54,7 +55,7 @@ JUNIPER-VPN-MIB::jnxVpnPwIndex.l2Circuit.\"ge-0/0/2.0\".$port->ifIndex $port->if SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX480", "l2Circuit on a pseudowire belonging to $port->ifDescr has gone down", 'Could not handle JnxVpnPwDown trap', - [4], + [Severity::Warning], $device, ); } @@ -75,7 +76,7 @@ JUNIPER-VPN-MIB::jnxVpnPwIndex.l2Circuit.\"ge-0/02.0\".$port->ifIndex $port->ifI SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameMX960", "l2Circuit on a pseudowire belonging to $port->ifDescr is now connected", 'Could not handle JnxVpnPwUp trap', - [1], + [Severity::Ok], $device, ); } diff --git a/tests/Feature/SnmpTraps/MgmtTrapNmsAlarmTest.php b/tests/Feature/SnmpTraps/MgmtTrapNmsAlarmTest.php index bb9ede4131..416bf5453c 100644 --- a/tests/Feature/SnmpTraps/MgmtTrapNmsAlarmTest.php +++ b/tests/Feature/SnmpTraps/MgmtTrapNmsAlarmTest.php @@ -30,6 +30,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class MgmtTrapNmsAlarmTest extends SnmpTrapTestCase { public function testAlarmClear(): void @@ -56,7 +58,7 @@ EKINOPS-MGNT2-NMS-MIB::mgnt2AlmLogNodeControllerIpAddress 0.0.0.0 EKINOPS-MGNT2-NMS-MIB::mgnt2AlmLogChassisId {{ ip }}", "Alarm on slot {$alarm['slotNum']}, {$alarm['srcPm']} Issue: {$alarm['specific']} Possible Cause: Unknown", 'Could not handle mgnt2TrapNMSAlarm trap CLEARED', - [1], + [Severity::Ok], ); } @@ -85,7 +87,7 @@ EKINOPS-MGNT2-NMS-MIB::mgnt2AlmLogNodeControllerIpAddress 0.0.0.0 EKINOPS-MGNT2-NMS-MIB::mgnt2AlmLogChassisId {{ ip }}", "Alarm on slot {$alarm['slotNum']}, {$alarm['srcPm']} Issue: {$alarm['specific']} Additional info: {$alarm['addText']} Possible Cause: Unknown", 'Could not handle mgnt2TrapNMSAlarm trap with additional text', - [1], + [Severity::Ok], ); } @@ -114,7 +116,7 @@ EKINOPS-MGNT2-NMS-MIB::mgnt2AlmLogNodeControllerIpAddress 0.0.0.0 EKINOPS-MGNT2-NMS-MIB::mgnt2AlmLogChassisId {{ ip }}", "Alarm on slot {$alarm['slotNum']}, {$alarm['srcPm']} Port: {$alarm['portType']} {$alarm['portNum']} Issue: {$alarm['specific']} Possible Cause: {$alarm['probCause']}", 'Could not handle mgnt2TrapNMSAlarm trap with additional text', - [5], + [Severity::Error], ); } diff --git a/tests/Feature/SnmpTraps/NetgearFailedUserLoginTest.php b/tests/Feature/SnmpTraps/NetgearFailedUserLoginTest.php index f3899555f2..2cfced835c 100644 --- a/tests/Feature/SnmpTraps/NetgearFailedUserLoginTest.php +++ b/tests/Feature/SnmpTraps/NetgearFailedUserLoginTest.php @@ -22,6 +22,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class NetgearFailedUserLoginTest extends SnmpTrapTestCase { public function testManagedSeries(): void @@ -34,7 +36,7 @@ SNMPv2-MIB::snmpTrapOID.0 NETGEAR-SWITCHING-MIB::failedUserLoginTrap TRAP, 'SNMP Trap: Failed User Login: {{ hostname }}', 'Could not handle NETGEAR-SWITCHING-MIB::failedUserLoginTrap trap', - [4, 'auth'], + [Severity::Warning, 'auth'], ); } @@ -48,7 +50,7 @@ SNMPv2-MIB::snmpTrapOID.0 NETGEAR-SMART-SWITCHING-MIB::failedUserLoginTrap TRAP, 'SNMP Trap: Failed User Login: {{ hostname }}', 'Could not handle NETGEAR-SMART-SWITCHING-MIB::failedUserLoginTrap trap', - [4, 'auth'], + [Severity::Warning, 'auth'], ); } } diff --git a/tests/Feature/SnmpTraps/OspfIfStateChangeTest.php b/tests/Feature/SnmpTraps/OspfIfStateChangeTest.php index 04dae0ad55..7f963f1ba2 100644 --- a/tests/Feature/SnmpTraps/OspfIfStateChangeTest.php +++ b/tests/Feature/SnmpTraps/OspfIfStateChangeTest.php @@ -33,6 +33,7 @@ use App\Models\Device; use App\Models\OspfPort; use App\Models\Port; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class OspfIfStateChangeTest extends SnmpTrapTestCase @@ -61,7 +62,7 @@ OSPF-MIB::ospfIfState.$ospfIf->ospfIfIpAddress.0 down SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX240", "OSPF interface $port->ifName is down", 'Could not handle ospfIfStateChange down', - [5], + [Severity::Error], $device, ); @@ -91,7 +92,7 @@ SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX2 ", "OSPF interface $port->ifName is designatedRouter", 'Could not handle ospfIfStateChange designatedRouter', - [1], + [Severity::Ok], $device, ); @@ -120,7 +121,7 @@ OSPF-MIB::ospfIfState.$ospfIf->ospfIfIpAddress.0 backupDesignatedRouter SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX240", "OSPF interface $port->ifName is backupDesignatedRouter", 'Could not handle ospfIfStateChange backupDesignatedRouter', - [1], + [Severity::Ok], $device, ); @@ -149,7 +150,7 @@ OSPF-MIB::ospfIfState.$ospfIf->ospfIfIpAddress.0 otherDesignatedRouter SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX240", "OSPF interface $port->ifName is otherDesignatedRouter", 'Could not handle ospfIfStateChange otherDesignatedRouter', - [1], + [Severity::Ok], $device, ); @@ -178,7 +179,7 @@ OSPF-MIB::ospfIfState.$ospfIf->ospfIfIpAddress.0 pointToPoint SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX240", "OSPF interface $port->ifName is pointToPoint", 'Could not handle ospfIfStateChange pointToPoint', - [1], + [Severity::Ok], $device, ); @@ -207,7 +208,7 @@ OSPF-MIB::ospfIfState.$ospfIf->ospfIfIpAddress.0 waiting SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX240", "OSPF interface $port->ifName is waiting", 'Could not handle ospfIfStateChange waiting', - [4], + [Severity::Warning], $device, ); @@ -236,7 +237,7 @@ OSPF-MIB::ospfIfState.$ospfIf->ospfIfIpAddress.0 loopback SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX240", "OSPF interface $port->ifName is loopback", 'Could not handle ospfIfStateChange loopback', - [4], + [Severity::Warning], $device, ); diff --git a/tests/Feature/SnmpTraps/OspfNbrStateChangeTest.php b/tests/Feature/SnmpTraps/OspfNbrStateChangeTest.php index 171ce077a2..9ac69e3bfd 100644 --- a/tests/Feature/SnmpTraps/OspfNbrStateChangeTest.php +++ b/tests/Feature/SnmpTraps/OspfNbrStateChangeTest.php @@ -32,6 +32,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\OspfNbr; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class OspfNbrStateChangeTest extends SnmpTrapTestCase @@ -59,7 +60,7 @@ OSPF-MIB::ospfNbrState.$ospfNbr->ospf_nbr_id down SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX240 ", "OSPF neighbor $ospfNbr->ospfNbrRtrId changed state to down", 'Could not handle ospfNbrStateChange down', - [5], + [Severity::Error], $device, ); @@ -87,7 +88,7 @@ OSPF-MIB::ospfNbrState.$ospfNbr->ospf_nbr_id full SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX240 ", "OSPF neighbor $ospfNbr->ospfNbrRtrId changed state to full", 'Could not handle ospfNbrStateChange full', - [1], + [Severity::Ok], $device, ); @@ -115,7 +116,7 @@ OSPF-MIB::ospfNbrState.$ospfNbr->ospf_nbr_id exstart SNMPv2-MIB::snmpTrapEnterprise.0 JUNIPER-CHASSIS-DEFINES-MIB::jnxProductNameSRX240 ", "OSPF neighbor $ospfNbr->ospfNbrRtrId changed state to exstart", 'Could not handle ospfNbrStateChange exstart', - [4], + [Severity::Warning], $device, ); diff --git a/tests/Feature/SnmpTraps/PortsTrapTest.php b/tests/Feature/SnmpTraps/PortsTrapTest.php index ca9ce17d67..4e341c0553 100644 --- a/tests/Feature/SnmpTraps/PortsTrapTest.php +++ b/tests/Feature/SnmpTraps/PortsTrapTest.php @@ -28,6 +28,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Port; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class PortsTrapTest extends SnmpTrapTestCase @@ -59,9 +60,9 @@ OLD-CISCO-INTERFACES-MIB::locIfReason.$port->ifIndex \"down\"\n", ], 'Could not handle linkDown', [ - [5, 'interface', $port->port_id], - [3, 'interface', $port->port_id], - [5, 'interface', $port->port_id], + [Severity::Error, 'interface', $port->port_id], + [Severity::Notice, 'interface', $port->port_id], + [Severity::Error, 'interface', $port->port_id], ], $device, ); @@ -95,9 +96,9 @@ OLD-CISCO-INTERFACES-MIB::locIfReason.$port->ifIndex \"up\"\n", ], 'Could not handle linkUp', [ - [1, 'interface', $port->port_id], - [3, 'interface', $port->port_id], - [1, 'interface', $port->port_id], + [Severity::Ok, 'interface', $port->port_id], + [Severity::Notice, 'interface', $port->port_id], + [Severity::Ok, 'interface', $port->port_id], ], $device, ); diff --git a/tests/Feature/SnmpTraps/RuckusSzClusterStateTest.php b/tests/Feature/SnmpTraps/RuckusSzClusterStateTest.php index 8c68fc6a15..9b5fdebf44 100644 --- a/tests/Feature/SnmpTraps/RuckusSzClusterStateTest.php +++ b/tests/Feature/SnmpTraps/RuckusSzClusterStateTest.php @@ -27,6 +27,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class RuckusSzClusterStateTest extends SnmpTrapTestCase { public function testClusterInMaintenance(): void @@ -43,7 +45,7 @@ RUCKUS-SZ-EVENT-MIB::ruckusSZClusterName.0 "{{ hostname }}" TRAP, 'Smartzone cluster {{ hostname }} state changed to maintenance', 'Could not handle ruckusSZClusterInMaintenanceStateTrap', - [3], + [Severity::Notice], ); } diff --git a/tests/Feature/SnmpTraps/RuckusSzEventTest.php b/tests/Feature/SnmpTraps/RuckusSzEventTest.php index 81ec24fdb7..b17589e270 100644 --- a/tests/Feature/SnmpTraps/RuckusSzEventTest.php +++ b/tests/Feature/SnmpTraps/RuckusSzEventTest.php @@ -27,6 +27,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class RuckusSzEventTest extends SnmpTrapTestCase { public function testSzApConf(): void @@ -48,7 +50,7 @@ RUCKUS-SZ-EVENT-MIB::ruckusSZAPConfigID.0 "2f860f70-6b88-11e9-a3c5-000000937916" TRAP, 'AP at location {{ location }} configuration updated with config-id 2f860f70-6b88-11e9-a3c5-000000937916', 'Could not handle ruckusSZAPConfUpdatedTrap', - [2], + [Severity::Info], ); } @@ -71,7 +73,7 @@ RUCKUS-SZ-EVENT-MIB::ruckusSZEventReason.0 "AP connected after rebooting" TRAP, 'AP at location {{ location }} has connected to the SmartZone with reason AP connected after rebooting', 'Could not handle ruckusSZAPConnectedTrap', - [2], + [Severity::Info], ); } @@ -94,7 +96,7 @@ RUCKUS-SZ-EVENT-MIB::ruckusSZEventDescription.0 "Test AP event has occurred" TRAP, 'AP event: Test AP event has occurred', 'Could not handle ruckusSZAPMiscEventTrap', - [4], + [Severity::Warning], ); } @@ -117,7 +119,7 @@ RUCKUS-SZ-EVENT-MIB::ruckusSZEventReason.0 "AP rebooted by controller user" TRAP, 'AP at site {{ location }} rebooted with reason AP rebooted by controller user', 'Could not handle ruckusSZAPRebootTrap', - [5], + [Severity::Error], ); } } diff --git a/tests/Feature/SnmpTraps/TrippliteTrapTest.php b/tests/Feature/SnmpTraps/TrippliteTrapTest.php index 4858cc256d..184256c88f 100644 --- a/tests/Feature/SnmpTraps/TrippliteTrapTest.php +++ b/tests/Feature/SnmpTraps/TrippliteTrapTest.php @@ -25,6 +25,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class TrippliteTrapTest extends SnmpTrapTestCase { public function testTlpNotificationsAlarmEntryAdded(): void @@ -49,7 +51,7 @@ TRIPPLITE-PRODUCTS::tlpAgentUuid.0 c94e376a-8080-44fb-96ad-0fe6583d1c4a TRAP, 'Trap Alarm active: On Battery', 'Could not handle tlpNotificationsAlarmEntryAdded', - [4], + [Severity::Warning], ); } @@ -75,7 +77,7 @@ TRIPPLITE-PRODUCTS::tlpAgentUuid.0 c94e376a-8080-44fb-96ad-0fe6583d1c4a TRAP, 'Trap Alarm inactive: On Utility Power', 'Could not handle tlpNotificationsAlarmEntryRemoved', - [2], + [Severity::Info], ); } } diff --git a/tests/Feature/SnmpTraps/UpsTrapOnBatteryTest.php b/tests/Feature/SnmpTraps/UpsTrapOnBatteryTest.php index e63dbd5fe2..288501c694 100644 --- a/tests/Feature/SnmpTraps/UpsTrapOnBatteryTest.php +++ b/tests/Feature/SnmpTraps/UpsTrapOnBatteryTest.php @@ -27,6 +27,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Sensor; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class UpsTrapOnBatteryTest extends SnmpTrapTestCase @@ -57,7 +58,7 @@ UPS-MIB::upsSecondsOnBattery 120 seconds UPS-MIB::upsConfigLowBattTime 1 minutes", 'UPS running on battery for 120 seconds. Estimated 100 minutes remaining', 'Could not handle UPS-MIB::upsTrapOnBattery trap', - [5], + [Severity::Error], $device, ); diff --git a/tests/Feature/SnmpTraps/UpsTrapsOnBatteryTest.php b/tests/Feature/SnmpTraps/UpsTrapsOnBatteryTest.php index 7cc0ce3c3c..d3561414ae 100644 --- a/tests/Feature/SnmpTraps/UpsTrapsOnBatteryTest.php +++ b/tests/Feature/SnmpTraps/UpsTrapsOnBatteryTest.php @@ -27,6 +27,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; use App\Models\Sensor; use Illuminate\Foundation\Testing\DatabaseTransactions; +use LibreNMS\Enum\Severity; use LibreNMS\Tests\Traits\RequiresDatabase; class UpsTrapsOnBatteryTest extends SnmpTrapTestCase @@ -57,7 +58,7 @@ UPS-MIB::upsSecondsOnBattery.0 120 seconds UPS-MIB::upsConfigLowBattTime.0 1 minutes", 'UPS running on battery for 120 seconds. Estimated 100 minutes remaining', 'Could not handle UPS-MIB::upsTraps.0.1 trap', - [5], + [Severity::Error], $device, ); diff --git a/tests/Feature/SnmpTraps/VeeamTrapTest.php b/tests/Feature/SnmpTraps/VeeamTrapTest.php index 59036d4288..301c0766f5 100644 --- a/tests/Feature/SnmpTraps/VeeamTrapTest.php +++ b/tests/Feature/SnmpTraps/VeeamTrapTest.php @@ -2,6 +2,8 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; +use LibreNMS\Enum\Severity; + class VeeamTrapTest extends SnmpTrapTestCase { public function testVeeamBackupJobCompleted(): void @@ -19,7 +21,7 @@ VEEAM-MIB::backupJobResult Success TRAP, 'SNMP Trap: Backup Job Success - SureBackup Job 1 - comment', 'Could not handle VEEAM-MIB::traps job completed', - [1, 'backup'] + [Severity::Ok, 'backup'] ); } @@ -38,7 +40,7 @@ VEEAM-MIB::backupJobResult Warning TRAP, 'SNMP Trap: Backup Job Warning - SureBackup Job 1 - comment', 'Could not handle VEEAM-MIB::traps job completed warning', - [4, 'backup'], + [Severity::Warning, 'backup'], ); } @@ -57,7 +59,7 @@ VEEAM-MIB::backupJobResult Failed TRAP, 'SNMP Trap: Backup Job Failed - SureBackup Job 1 - comment', 'Could not handle VEEAM-MIB::traps job completed failed', - [5, 'backup'], + [Severity::Error, 'backup'], ); } @@ -76,7 +78,7 @@ VEEAM-MIB::vmBackupResult Success TRAP, 'SNMP Trap: VM backup Success - vmname1 Job: Linux taeglich low - comment', 'Could not handle VEEAM-MIB::traps backup completed', - [1, 'backup'], + [Severity::Ok, 'backup'], ); } @@ -95,7 +97,7 @@ VEEAM-MIB::vmBackupResult Warning TRAP, 'SNMP Trap: VM backup Warning - vmname1 Job: Linux taeglich low - comment', 'Could not handle VEEAM-MIB::traps backup completed warning', - [4, 'backup'], + [Severity::Warning, 'backup'], ); } @@ -114,7 +116,7 @@ VEEAM-MIB::vmBackupResult Failed TRAP, 'SNMP Trap: VM backup Failed - vmname1 Job: Linux taeglich low - comment', 'Could not handle VEEAM-MIB::traps backup completed failed', - [5, 'backup'], + [Severity::Error, 'backup'], ); } } diff --git a/tests/Feature/SnmpTraps/VmwHBTest.php b/tests/Feature/SnmpTraps/VmwHBTest.php index 9dc13c67f4..96de81c34f 100644 --- a/tests/Feature/SnmpTraps/VmwHBTest.php +++ b/tests/Feature/SnmpTraps/VmwHBTest.php @@ -28,6 +28,7 @@ namespace LibreNMS\Tests\Feature\SnmpTraps; use App\Models\Device; +use LibreNMS\Enum\Severity; class VmwHBTest extends SnmpTrapTestCase { @@ -45,7 +46,7 @@ SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 \"public\" SNMPv2-MIB::snmpTrapEnterprise.0 VMWARE-PRODUCTS-MIB::vmwESX", "Heartbeat from guest $guest->hostname lost", 'Could not handle VmwVmHBLostTrap', - [4], + [Severity::Warning], ); } @@ -63,7 +64,7 @@ SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 \"public\" SNMPv2-MIB::snmpTrapEnterprise.0 VMWARE-PRODUCTS-MIB::vmwESX", "Heartbeat from guest $guest->hostname detected", 'Could not handle VmwVmHBDetectedTrap', - [1], + [Severity::Ok], ); } }