mirror of
https://github.com/librenms/librenms.git
synced 2024-09-21 10:28:13 +00:00
refactor: move default alert rules into the collection (#6621)
* refactor: move default alert rules into the collection Also adds the wireless rules to the default set. * Added additional defaults to extra * Fix up the extra value Also, missed `rule` column when creating default rules
This commit is contained in:
parent
c835708689
commit
2dd44fdfdf
@ -11,82 +11,37 @@ $no_refresh = true;
|
||||
</div>
|
||||
<?php
|
||||
if (isset($_POST['create-default'])) {
|
||||
$default_rules[] = array(
|
||||
'device_id' => '-1',
|
||||
'rule' => '%macros.device_down = "1"',
|
||||
'severity' => 'critical',
|
||||
'extra' => '{"mute":false,"count":"-1","delay":"300"}',
|
||||
'disabled' => 0,
|
||||
'name' => 'Devices up/down',
|
||||
);
|
||||
$default_rules[] = array(
|
||||
'device_id' => '-1',
|
||||
'rule' => '%devices.uptime < "300" && %macros.device = "1"',
|
||||
'severity' => 'critical',
|
||||
'extra' => '{"mute":false,"count":"1","delay":"300"}',
|
||||
'disabled' => 0,
|
||||
'name' => 'Device rebooted',
|
||||
);
|
||||
$default_rules[] = array(
|
||||
'device_id' => '-1',
|
||||
'rule' => '%bgpPeers.bgpPeerState != "established" && %macros.device_up = "1"',
|
||||
'severity' => 'critical',
|
||||
'extra' => '{"mute":false,"count":"1","delay":"300"}',
|
||||
'disabled' => 0,
|
||||
'name' => 'BGP Session down',
|
||||
);
|
||||
$default_rules[] = array(
|
||||
'device_id' => '-1',
|
||||
'rule' => '%bgpPeers.bgpPeerFsmEstablishedTime < "300" && %bgpPeers.bgpPeerState = "established" && %macros.device_up = "1"',
|
||||
'severity' => 'critical',
|
||||
'extra' => '{"mute":false,"count":"1","delay":"300"}',
|
||||
'disabled' => 0,
|
||||
'name' => 'BGP Session established',
|
||||
);
|
||||
$default_rules[] = array(
|
||||
'device_id' => '-1',
|
||||
'rule' => '%macros.port_down = "1"',
|
||||
'severity' => 'critical',
|
||||
'extra' => '{"mute":false,"count":"1","delay":"300"}',
|
||||
'disabled' => 0,
|
||||
'name' => 'Port status up/down',
|
||||
);
|
||||
$default_rules[] = array(
|
||||
'device_id' => '-1',
|
||||
'rule' => '%macros.port_usage_perc >= "80" && %macros.port_up = "1" && %macros.port = "1"',
|
||||
'severity' => 'critical',
|
||||
'extra' => '{"mute":false,"count":"-1","delay":"300"}',
|
||||
'disabled' => 0,
|
||||
'name' => 'Port utilisation over threshold',
|
||||
);
|
||||
$default_rules[] = array(
|
||||
'device_id' => '-1',
|
||||
'rule' => '%sensors.sensor_current > %sensors.sensor_limit && %sensors.sensor_alert = "1" && %macros.device_up = "1"',
|
||||
'severity' => 'critical',
|
||||
'extra' => '{"mute":false,"count":"-1","delay":"300"}',
|
||||
'disabled' => 0,
|
||||
'name' => 'Sensor over limit',
|
||||
);
|
||||
$default_rules[] = array(
|
||||
'device_id' => '-1',
|
||||
'rule' => '%sensors.sensor_current < %sensors.sensor_limit_low && %sensors.sensor_alert = "1" && %macros.device_up = "1"',
|
||||
'severity' => 'critical',
|
||||
'extra' => '{"mute":false,"count":"-1","delay":"300"}',
|
||||
'disabled' => 0,
|
||||
'name' => 'Sensor under limit',
|
||||
);
|
||||
$default_rules[] = array(
|
||||
'device_id' => '-1',
|
||||
'rule' => '%services.service_status != "0" && %macros.device_up = "1"',
|
||||
'severity' => 'critical',
|
||||
'extra' => '{"mute":false,"count":"-1","delay":"300"}',
|
||||
'disabled' => 0,
|
||||
'name' => 'Service up/down',
|
||||
$default_rules = array_filter(get_rules_from_json(), function ($rule) {
|
||||
return isset($rule['default']) && $rule['default'];
|
||||
});
|
||||
|
||||
$default_extra = array(
|
||||
'mute' => false,
|
||||
'count' => -1,
|
||||
'delay' => 300,
|
||||
'invert' => false,
|
||||
'interval' => 300,
|
||||
);
|
||||
|
||||
require_once '../includes/alerts.inc.php';
|
||||
|
||||
foreach ($default_rules as $add_rule) {
|
||||
$add_rule['query'] = GenSQL($add_rule['rule']);
|
||||
dbInsert($add_rule, 'alert_rules');
|
||||
$extra = $default_extra;
|
||||
if (isset($add_rule['extra'])) {
|
||||
$extra = array_replace($extra, json_decode($add_rule['extra'], true));
|
||||
}
|
||||
|
||||
$insert = array(
|
||||
'device_id' => -1,
|
||||
'rule' => $add_rule['rule'],
|
||||
'query' => GenSQL($add_rule['rule']),
|
||||
'severity' => 'critical',
|
||||
'extra' => json_encode($extra),
|
||||
'disabled' => 0,
|
||||
'name' => $add_rule['name']
|
||||
);
|
||||
|
||||
dbInsert($insert, 'alert_rules');
|
||||
}
|
||||
}//end if
|
||||
|
||||
|
@ -1,4 +1,63 @@
|
||||
[
|
||||
{
|
||||
"rule": "%macros.device_down = \"1\"",
|
||||
"name": "Devices up/down",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%devices.uptime < \"300\" && %macros.device = \"1\"",
|
||||
"name": "Device rebooted",
|
||||
"extra": "{\"count\": 1}",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%bgpPeers.bgpPeerState != \"established\" && %macros.device_up = \"1\"",
|
||||
"name": "BGP Session down",
|
||||
"extra": "{\"count\": 1}",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%bgpPeers.bgpPeerFsmEstablishedTime < \"300\" && %bgpPeers.bgpPeerState = \"established\" && %macros.device_up = \"1\"",
|
||||
"name": "BGP Session established",
|
||||
"extra": "{\"count\": 1}",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%macros.port_down = \"1\"",
|
||||
"name": "Port status up/down",
|
||||
"extra": "{\"count\": 1}",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%macros.port_usage_perc >= \"80\" && %macros.port_up = \"1\" && %macros.port = \"1\"",
|
||||
"name": "Port utilisation over threshold",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%sensors.sensor_current > %sensors.sensor_limit && %sensors.sensor_alert = \"1\" && %macros.device_up = \"1\"",
|
||||
"name": "Sensor over limit",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%sensors.sensor_current < %sensors.sensor_limit_low && %sensors.sensor_alert = \"1\" && %macros.device_up = \"1\"",
|
||||
"name": "Sensor under limit",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%services.service_status != \"0\" && %macros.device_up = \"1\"",
|
||||
"name": "Service up/down",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%wireless_sensors.sensor_current >= %wireless_sensors.sensor_limit && %wireless_sensors.sensor_alert = \"1\" && %macros.device_up = \"1\"",
|
||||
"name": "Wireless Sensor over limit",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%wireless_sensors.sensor_current <= %wireless_sensors.sensor_limit_low && %wireless_sensors.sensor_alert = \"1\" && %macros.device_up = \"1\"",
|
||||
"name": "Wireless Sensor under limit",
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"rule": "%macros.bill_quota_over_quota >= \"75\"",
|
||||
"name": "Quota bills over 75% used"
|
||||
@ -39,14 +98,6 @@
|
||||
"rule": "%eventlog.type = \"discovery\" && %eventlog.message ~ \"@autodiscovered@\" && %eventlog.datetime >= %macros.past_60m",
|
||||
"name": "Device discovered within the last 60 minutes"
|
||||
},
|
||||
{
|
||||
"rule": "%wireless_sensors.sensor_current >= %wireless_sensors.sensor_limit && %wireless_sensors.sensor_alert = \"1\" && %macros.device_up = \"1\"",
|
||||
"name": "Wireless Sensor over limit"
|
||||
},
|
||||
{
|
||||
"rule": "%wireless_sensors.sensor_current <= %wireless_sensors.sensor_limit_low && %wireless_sensors.sensor_alert = \"1\" && %macros.device_up = \"1\"",
|
||||
"name": "Wireless Sensor under limit"
|
||||
},
|
||||
{
|
||||
"rule": "%wireless_sensors.sensor_class = 'clients' && %wireless_sensors.sensor_current >= %wireless_sensors.sensor_limit && %wireless_sensors.sensor_alert = \"1\" && %macros.device_up = \"1\"",
|
||||
"name": "Too many wireless clients"
|
||||
|
Loading…
Reference in New Issue
Block a user