Don't start alerting checks until after a minute
This commit is contained in:
parent
5fd98d6ad0
commit
359c571d24
167
app.js
167
app.js
|
@ -370,102 +370,103 @@ function slack_message(message) {
|
||||||
|
|
||||||
alert_status = [];
|
alert_status = [];
|
||||||
alert_status['leases_per_minute'] = 0;
|
alert_status['leases_per_minute'] = 0;
|
||||||
|
setTimeout(function(){
|
||||||
alert_check_timer = setInterval(function(){
|
alert_check_timer = setInterval(function(){
|
||||||
console.log("[Timer] Alert Timer check");
|
console.log("[Timer] Alert Timer check");
|
||||||
if(glass_config.leases_per_minute_threshold > 0) {
|
if(glass_config.leases_per_minute_threshold > 0) {
|
||||||
console.log("[Timer] lpm: %s lpm_th: %s", leases_per_minute, glass_config.leases_per_minute_threshold);
|
console.log("[Timer] lpm: %s lpm_th: %s", leases_per_minute, glass_config.leases_per_minute_threshold);
|
||||||
if (leases_per_minute <= glass_config.leases_per_minute_threshold && alert_status['leases_per_minute'] == 0) {
|
if (leases_per_minute <= glass_config.leases_per_minute_threshold && alert_status['leases_per_minute'] == 0) {
|
||||||
alert_status['leases_per_minute'] = 1;
|
alert_status['leases_per_minute'] = 1;
|
||||||
slack_message(":warning: WARNING: DHCP leases per minute have dropped below threshold (" + parseInt(glass_config.leases_per_minute_threshold).toLocaleString('en') + ") Current (" + parseInt(leases_per_minute).toLocaleString('en') + ")");
|
slack_message(":warning: WARNING: DHCP leases per minute have dropped below threshold (" + parseInt(glass_config.leases_per_minute_threshold).toLocaleString('en') + ") Current (" + parseInt(leases_per_minute).toLocaleString('en') + ")");
|
||||||
|
}
|
||||||
|
else if (leases_per_minute >= glass_config.leases_per_minute_threshold && alert_status['leases_per_minute'] == 1) {
|
||||||
|
alert_status['leases_per_minute'] = 0;
|
||||||
|
slack_message(":white_check_mark: CLEAR: DHCP leases per minute have returned to above threshold (" + parseInt(glass_config.leases_per_minute_threshold).toLocaleString('en') + ") Current (" + parseInt(leases_per_minute).toLocaleString('en') + ")");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (leases_per_minute >= glass_config.leases_per_minute_threshold && alert_status['leases_per_minute'] == 1) {
|
}, (60 * 1000));
|
||||||
alert_status['leases_per_minute'] = 0;
|
|
||||||
slack_message(":white_check_mark: CLEAR: DHCP leases per minute have returned to above threshold (" + parseInt(glass_config.leases_per_minute_threshold).toLocaleString('en') + ") Current (" + parseInt(leases_per_minute).toLocaleString('en') + ")");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, (60 * 1000));
|
|
||||||
|
|
||||||
alert_status_networks_warning = [];
|
alert_status_networks_warning = [];
|
||||||
alert_status_networks_critical = [];
|
alert_status_networks_critical = [];
|
||||||
|
|
||||||
alert_subnet_check_timer = setInterval(function(){
|
alert_subnet_check_timer = setInterval(function(){
|
||||||
console.log("[Timer] Alert Timer check - subnets");
|
console.log("[Timer] Alert Timer check - subnets");
|
||||||
|
|
||||||
if(glass_config.shared_network_warning_threshold > 0 || glass_config.shared_network_critical_threshold > 0) {
|
if(glass_config.shared_network_warning_threshold > 0 || glass_config.shared_network_critical_threshold > 0) {
|
||||||
const execSync = require('child_process').execSync;
|
const execSync = require('child_process').execSync;
|
||||||
output = execSync('./bin/dhcpd-pools -c ' + glass_config.config_file + ' -l ' + glass_config.leases_file + ' -f j -A -s e');
|
output = execSync('./bin/dhcpd-pools -c ' + glass_config.config_file + ' -l ' + glass_config.leases_file + ' -f j -A -s e');
|
||||||
var dhcp_data = JSON.parse(output);
|
var dhcp_data = JSON.parse(output);
|
||||||
|
|
||||||
/*
|
|
||||||
* Iterate through Shared Networks
|
|
||||||
*/
|
|
||||||
for ( var i = 0; i < dhcp_data['shared-networks'].length; i++) {
|
|
||||||
utilization = round(parseFloat(dhcp_data['shared-networks'][i].used / dhcp_data['shared-networks'][i].defined) * 100, 2);
|
|
||||||
|
|
||||||
if(isNaN(utilization))
|
|
||||||
utilization = 0;
|
|
||||||
|
|
||||||
|
|
||||||
/* Initialize these array buckets */
|
|
||||||
if(typeof alert_status_networks_warning[dhcp_data['shared-networks'][i].location] === "undefined")
|
|
||||||
alert_status_networks_warning[dhcp_data['shared-networks'][i].location] = 0;
|
|
||||||
|
|
||||||
if(typeof alert_status_networks_critical[dhcp_data['shared-networks'][i].location] === "undefined")
|
|
||||||
alert_status_networks_critical[dhcp_data['shared-networks'][i].location] = 0;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
console.log("Location: %s", dhcp_data['shared-networks'][i].location);
|
* Iterate through Shared Networks
|
||||||
console.log("Used: %s", dhcp_data['shared-networks'][i].used.toLocaleString('en'));
|
*/
|
||||||
console.log("Defined: %s", dhcp_data['shared-networks'][i].defined.toLocaleString('en'));
|
for ( var i = 0; i < dhcp_data['shared-networks'].length; i++) {
|
||||||
console.log("Free: %s", dhcp_data['shared-networks'][i].free.toLocaleString('en'));
|
utilization = round(parseFloat(dhcp_data['shared-networks'][i].used / dhcp_data['shared-networks'][i].defined) * 100, 2);
|
||||||
console.log("Utilization: %s", utilization);
|
|
||||||
console.log(" \n");
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Check Warnings */
|
if(isNaN(utilization))
|
||||||
if(glass_config.shared_network_warning_threshold > 0) {
|
utilization = 0;
|
||||||
if (
|
|
||||||
utilization >= glass_config.shared_network_warning_threshold &&
|
|
||||||
utilization <= glass_config.shared_network_critical_threshold &&
|
/* Initialize these array buckets */
|
||||||
alert_status_networks_warning[dhcp_data['shared-networks'][i].location] == 0
|
if(typeof alert_status_networks_warning[dhcp_data['shared-networks'][i].location] === "undefined")
|
||||||
)
|
|
||||||
{
|
|
||||||
alert_status_networks_warning[dhcp_data['shared-networks'][i].location] = 1;
|
|
||||||
slack_message(":warning: WARNING: DHCP shared network utilization (" + dhcp_data['shared-networks'][i].location + ") Current: (" + utilization + "%) Threshold: (" + glass_config.shared_network_warning_threshold + "%)");
|
|
||||||
}
|
|
||||||
else if (
|
|
||||||
utilization <= glass_config.shared_network_warning_threshold &&
|
|
||||||
alert_status_networks_warning[dhcp_data['shared-networks'][i].location] == 1
|
|
||||||
)
|
|
||||||
{
|
|
||||||
alert_status_networks_warning[dhcp_data['shared-networks'][i].location] = 0;
|
alert_status_networks_warning[dhcp_data['shared-networks'][i].location] = 0;
|
||||||
slack_message(":white_check_mark: CLEAR: Warning DHCP shared network utilization (" + dhcp_data['shared-networks'][i].location + ") Current: (" + utilization + "%) Threshold: (" + glass_config.shared_network_warning_threshold + "%)");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check Critical */
|
if(typeof alert_status_networks_critical[dhcp_data['shared-networks'][i].location] === "undefined")
|
||||||
if(glass_config.shared_network_critical_threshold > 0) {
|
|
||||||
if (
|
|
||||||
utilization >= glass_config.shared_network_critical_threshold &&
|
|
||||||
alert_status_networks_critical[dhcp_data['shared-networks'][i].location] == 0
|
|
||||||
)
|
|
||||||
{
|
|
||||||
alert_status_networks_critical[dhcp_data['shared-networks'][i].location] = 1;
|
|
||||||
slack_message(":fire: CRITICAL: DHCP shared network utilization (" + dhcp_data['shared-networks'][i].location + ") Current: (" + utilization + "%) Threshold: (" + glass_config.shared_network_critical_threshold + "%)");
|
|
||||||
}
|
|
||||||
else if (
|
|
||||||
utilization <= glass_config.shared_network_critical_threshold &&
|
|
||||||
alert_status_networks_critical[dhcp_data['shared-networks'][i].location] == 1
|
|
||||||
)
|
|
||||||
{
|
|
||||||
alert_status_networks_critical[dhcp_data['shared-networks'][i].location] = 0;
|
alert_status_networks_critical[dhcp_data['shared-networks'][i].location] = 0;
|
||||||
slack_message(":white_check_mark: CLEAR: Critical DHCP shared network utilization (" + dhcp_data['shared-networks'][i].location + ") Current: (" + utilization + "%) Threshold: (" + glass_config.shared_network_critical_threshold + "%)");
|
|
||||||
|
/*
|
||||||
|
console.log("Location: %s", dhcp_data['shared-networks'][i].location);
|
||||||
|
console.log("Used: %s", dhcp_data['shared-networks'][i].used.toLocaleString('en'));
|
||||||
|
console.log("Defined: %s", dhcp_data['shared-networks'][i].defined.toLocaleString('en'));
|
||||||
|
console.log("Free: %s", dhcp_data['shared-networks'][i].free.toLocaleString('en'));
|
||||||
|
console.log("Utilization: %s", utilization);
|
||||||
|
console.log(" \n");
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Check Warnings */
|
||||||
|
if(glass_config.shared_network_warning_threshold > 0) {
|
||||||
|
if (
|
||||||
|
utilization >= glass_config.shared_network_warning_threshold &&
|
||||||
|
utilization <= glass_config.shared_network_critical_threshold &&
|
||||||
|
alert_status_networks_warning[dhcp_data['shared-networks'][i].location] == 0
|
||||||
|
)
|
||||||
|
{
|
||||||
|
alert_status_networks_warning[dhcp_data['shared-networks'][i].location] = 1;
|
||||||
|
slack_message(":warning: WARNING: DHCP shared network utilization (" + dhcp_data['shared-networks'][i].location + ") Current: (" + utilization + "%) Threshold: (" + glass_config.shared_network_warning_threshold + "%)");
|
||||||
|
}
|
||||||
|
else if (
|
||||||
|
utilization <= glass_config.shared_network_warning_threshold &&
|
||||||
|
alert_status_networks_warning[dhcp_data['shared-networks'][i].location] == 1
|
||||||
|
)
|
||||||
|
{
|
||||||
|
alert_status_networks_warning[dhcp_data['shared-networks'][i].location] = 0;
|
||||||
|
slack_message(":white_check_mark: CLEAR: Warning DHCP shared network utilization (" + dhcp_data['shared-networks'][i].location + ") Current: (" + utilization + "%) Threshold: (" + glass_config.shared_network_warning_threshold + "%)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check Critical */
|
||||||
|
if(glass_config.shared_network_critical_threshold > 0) {
|
||||||
|
if (
|
||||||
|
utilization >= glass_config.shared_network_critical_threshold &&
|
||||||
|
alert_status_networks_critical[dhcp_data['shared-networks'][i].location] == 0
|
||||||
|
)
|
||||||
|
{
|
||||||
|
alert_status_networks_critical[dhcp_data['shared-networks'][i].location] = 1;
|
||||||
|
slack_message(":fire: CRITICAL: DHCP shared network utilization (" + dhcp_data['shared-networks'][i].location + ") Current: (" + utilization + "%) Threshold: (" + glass_config.shared_network_critical_threshold + "%)");
|
||||||
|
}
|
||||||
|
else if (
|
||||||
|
utilization <= glass_config.shared_network_critical_threshold &&
|
||||||
|
alert_status_networks_critical[dhcp_data['shared-networks'][i].location] == 1
|
||||||
|
)
|
||||||
|
{
|
||||||
|
alert_status_networks_critical[dhcp_data['shared-networks'][i].location] = 0;
|
||||||
|
slack_message(":white_check_mark: CLEAR: Critical DHCP shared network utilization (" + dhcp_data['shared-networks'][i].location + ") Current: (" + utilization + "%) Threshold: (" + glass_config.shared_network_critical_threshold + "%)");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}, (5 * 1000));
|
||||||
}, (5 * 1000));
|
}, 60 * 1000);
|
||||||
|
|
||||||
function round(num, places) {
|
function round(num, places) {
|
||||||
var multiplier = Math.pow(10, places);
|
var multiplier = Math.pow(10, places);
|
||||||
|
|
Loading…
Reference in New Issue