diff --git a/pandora_console/extras/mr/51.sql b/pandora_console/extras/mr/51.sql
index da52a569d1..3398bed0c3 100644
--- a/pandora_console/extras/mr/51.sql
+++ b/pandora_console/extras/mr/51.sql
@@ -1,5 +1,14 @@
START TRANSACTION;
+ALTER TABLE `tagente_modulo` ADD COLUMN `percentage_critical` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE `tagente_modulo` ADD COLUMN `percentage_warning` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE `tnetwork_component` ADD COLUMN `percentage_critical` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE `tnetwork_component` ADD COLUMN `percentage_warning` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE `tlocal_component` ADD COLUMN `percentage_critical` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE `tlocal_component` ADD COLUMN `percentage_warning` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE `tpolicy_modules` ADD COLUMN `percentage_warning` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE `tpolicy_modules` ADD COLUMN `percentage_critical` tinyint(1) UNSIGNED DEFAULT 0;
+
ALTER TABLE tagente_modulo MODIFY debug_content TEXT;
CREATE TABLE IF NOT EXISTS `talert_calendar` (
diff --git a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql
index 99ccb20643..579cf37b51 100644
--- a/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql
+++ b/pandora_console/extras/pandoradb_migrate_5.1_to_6.0.mysql.sql
@@ -172,6 +172,8 @@ ALTER TABLE tagente_modulo ADD COLUMN `dynamic_min` bigint(20) default '0';
ALTER TABLE tagente_modulo ADD COLUMN `prediction_sample_window` int(10) default 0;
ALTER TABLE tagente_modulo ADD COLUMN `prediction_samples` int(4) default 0;
ALTER TABLE tagente_modulo ADD COLUMN `prediction_threshold` int(4) default 0;
+ALTER TABLE tagente_modulo ADD COLUMN `percentage_critical` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE tagente_modulo ADD COLUMN `percentage_warning` tinyint(1) UNSIGNED DEFAULT 0;
-- ---------------------------------------------------------------------
-- Table `tagente_estado`
@@ -189,3 +191,21 @@ ALTER TABLE tgraph_source ADD COLUMN `id_server` int(11) NOT NULL default 0;
-- ---------------------------------------------------------------------
ALTER TABLE tevent_filter ADD COLUMN `id_agent_module` int(25) DEFAULT 0;
ALTER TABLE tevent_filter ADD COLUMN `id_agent` int(25) DEFAULT 0;
+
+-- ---------------------------------------------------------------------
+-- Table `tevent_filter`
+-- ---------------------------------------------------------------------
+ALTER TABLE `tnetwork_component` ADD COLUMN `percentage_critical` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE `tnetwork_component` ADD COLUMN `percentage_warning` tinyint(1) UNSIGNED DEFAULT 0;
+
+-- ---------------------------------------------------------------------
+-- Table `tevent_filter`
+-- ---------------------------------------------------------------------
+ALTER TABLE `tlocal_component` ADD COLUMN `percentage_critical` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE `tlocal_component` ADD COLUMN `percentage_warning` tinyint(1) UNSIGNED DEFAULT 0;
+
+-- ---------------------------------------------------------------------
+-- Table `tevent_filter`
+-- ---------------------------------------------------------------------
+ALTER TABLE `tpolicy_modules` ADD COLUMN `percentage_critical` tinyint(1) UNSIGNED DEFAULT 0;
+ALTER TABLE `tpolicy_modules` ADD COLUMN `percentage_warning` tinyint(1) UNSIGNED DEFAULT 0;
diff --git a/pandora_console/godmode/agentes/agent_template.php b/pandora_console/godmode/agentes/agent_template.php
index 20edd4e555..31e6de29b5 100644
--- a/pandora_console/godmode/agentes/agent_template.php
+++ b/pandora_console/godmode/agentes/agent_template.php
@@ -96,6 +96,8 @@ if (isset($_POST['template_id'])) {
'str_critical' => $row2['str_critical'],
'critical_inverse' => $row2['critical_inverse'],
'warning_inverse' => $row2['warning_inverse'],
+ 'percentage_warning' => $row2['percentage_warning'],
+ 'percentage_critical' => $row2['percentage_critical'],
'critical_instructions' => $row2['critical_instructions'],
'warning_instructions' => $row2['warning_instructions'],
'unknown_instructions' => $row2['unknown_instructions'],
diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php
index f73e4d5b5c..c37795df83 100644
--- a/pandora_console/godmode/agentes/configurar_agente.php
+++ b/pandora_console/godmode/agentes/configurar_agente.php
@@ -1544,6 +1544,8 @@ if ($update_module || $create_module) {
$unknown_instructions = (string) get_parameter('unknown_instructions');
$critical_inverse = (int) get_parameter('critical_inverse');
$warning_inverse = (int) get_parameter('warning_inverse');
+ $percentage_critical = (int) get_parameter('percentage_critical');
+ $percentage_warning = (int) get_parameter('percentage_warning');
$id_category = (int) get_parameter('id_category');
@@ -1697,6 +1699,8 @@ if ($update_module) {
'unknown_instructions' => $unknown_instructions,
'critical_inverse' => $critical_inverse,
'warning_inverse' => $warning_inverse,
+ 'percentage_critical' => $percentage_critical,
+ 'percentage_warning' => $percentage_warning,
'cron_interval' => $cron_interval,
'id_category' => $id_category,
'disabled_types_event' => addslashes($disabled_types_event),
@@ -1903,6 +1907,8 @@ if ($create_module) {
'unknown_instructions' => $unknown_instructions,
'critical_inverse' => $critical_inverse,
'warning_inverse' => $warning_inverse,
+ 'percentage_critical' => $percentage_critical,
+ 'percentage_warning' => $percentage_warning,
'cron_interval' => $cron_interval,
'id_category' => $id_category,
'disabled_types_event' => addslashes($disabled_types_event),
diff --git a/pandora_console/godmode/agentes/module_manager.php b/pandora_console/godmode/agentes/module_manager.php
index 3708d98e80..f37d7a77bd 100644
--- a/pandora_console/godmode/agentes/module_manager.php
+++ b/pandora_console/godmode/agentes/module_manager.php
@@ -704,6 +704,8 @@ if ((bool) $checked === true) {
'quiet',
'critical_inverse',
'warning_inverse',
+ 'percentage_critical',
+ 'percentage_warning',
'id_policy_module',
]
);
diff --git a/pandora_console/godmode/agentes/module_manager_editor.php b/pandora_console/godmode/agentes/module_manager_editor.php
index 1310fa80bb..c4e62816cb 100644
--- a/pandora_console/godmode/agentes/module_manager_editor.php
+++ b/pandora_console/godmode/agentes/module_manager_editor.php
@@ -99,6 +99,9 @@ if (is_ajax()) {
$component['str_critical'] = io_safe_output($component['str_critical']);
$component['warning_inverse'] = (bool) $component['warning_inverse'];
$component['critical_inverse'] = (bool) $component['critical_inverse'];
+ $component['percentage_warning'] = (bool) $component['percentage_warning'];
+ $component['percentage_critical'] = (bool) $component['percentage_critical'];
+
echo io_json_mb_encode($component);
return;
@@ -328,6 +331,9 @@ if ($id_agent_module) {
$critical_inverse = $module['critical_inverse'];
$warning_inverse = $module['warning_inverse'];
+ $percentage_critical = $module['percentage_critical'];
+ $percentage_warning = $module['percentage_warning'];
+
$id_category = $module['id_category'];
@@ -467,6 +473,8 @@ if ($id_agent_module) {
$critical_inverse = '';
$warning_inverse = '';
+ $percentage_critical = '';
+ $percentage_warning = '';
$each_ff = 0;
$ff_event_normal = '';
diff --git a/pandora_console/godmode/agentes/module_manager_editor_common.php b/pandora_console/godmode/agentes/module_manager_editor_common.php
index d64d2662fb..58d38e48fb 100644
--- a/pandora_console/godmode/agentes/module_manager_editor_common.php
+++ b/pandora_console/godmode/agentes/module_manager_editor_common.php
@@ -456,8 +456,16 @@ if (modules_is_string_type($id_module_type) || $edit) {
).'';
}
- $table_simple->data[2][1] .= '
'.__('Inverse interval').'';
- $table_simple->data[2][1] .= html_print_checkbox('warning_inverse', 1, $warning_inverse, true, $disabledBecauseInPolicy);
+$table_simple->data[2][1] .= '
'.__('Inverse interval').'';
+$table_simple->data[2][1] .= html_print_checkbox('warning_inverse', 1, $warning_inverse, true, $disabledBecauseInPolicy);
+$table_simple->data[2][1] .= '
';
+
+if (modules_is_string_type($id_module_type) === false) {
+ $table_simple->data[2][1] .= ''.__('Percentage').'';
+ $table_simple->data[2][1] .= html_print_checkbox('percentage_warning', 1, $percentage_warning, true, $disabledBecauseInPolicy);
+ $table_simple->data[2][1] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true);
+ $table_simple->data[2][1] .= '
';
+}
if (!modules_is_string_type($id_module_type) || $edit) {
$table_simple->data[2][2] = '';
@@ -509,8 +517,17 @@ if (modules_is_string_type($id_module_type) || $edit) {
).'';
}
-$table_simple->data[3][1] .= '
'.__('Inverse interval').'';
+$table_simple->data[3][1] .= ''.__('Inverse interval').'';
$table_simple->data[3][1] .= html_print_checkbox('critical_inverse', 1, $critical_inverse, true, $disabledBecauseInPolicy);
+$table_simple->data[3][1] .= '
';
+
+
+if (modules_is_string_type($id_module_type) === false) {
+ $table_simple->data[3][1] .= ''.__('Percentage').'';
+ $table_simple->data[3][1] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true);
+ $table_simple->data[3][1] .= html_print_checkbox('percentage_critical', 1, $percentage_critical, true, $disabledBecauseInPolicy);
+ $table_simple->data[3][1] .= '';
+}
$table_simple->data[4][0] = __('Historical data');
if ($disabledBecauseInPolicy) {
@@ -1551,6 +1568,8 @@ $(document).ready (function () {
$('#minmax_critical').show();
$('#minmax_warning').show();
$('#svg_dinamic').show();
+ $('#percentage_warning').show();
+ $('#percentage_critical').show();
}
else {
// String types
@@ -1559,6 +1578,8 @@ $(document).ready (function () {
$('#minmax_critical').hide();
$('#minmax_warning').hide();
$('#svg_dinamic').hide();
+ $('#percentage_warning').hide();
+ $('#percentage_critical').hide();
}
if (type_name_selected.match(/async/) == null) {
@@ -1628,11 +1649,64 @@ $(document).ready (function () {
$('#text-max_critical').val(0);
}
});
+
+ if ($('#checkbox-warning_inverse').prop('checked') === true) {
+ $('#percentage_warning').hide();
+ }
+
+ if ($('#checkbox-critical_inverse').prop('checked') === true) {
+ $('#percentage_critical').hide();
+ }
+
+ if ($('#checkbox-percentage_warning').prop('checked') === true) {
+ $('#warning_inverse').hide();
+ }
+
+ if ($('#checkbox-percentage_critical').prop('checked') === true) {
+ $('#critical_inverse').hide();
+ }
+
$('#checkbox-warning_inverse').change (function() {
paint_graph_values();
- });
+ if ($('#checkbox-warning_inverse').prop('checked') === true){
+ $('#checkbox-percentage_warning').prop('checked', false);
+ $('#percentage_warning').hide();
+ } else {
+ $('#percentage_warning').show();
+ }
+ });
+
$('#checkbox-critical_inverse').change (function() {
paint_graph_values();
+
+ if ($('#checkbox-critical_inverse').prop('checked') === true){
+ $('#checkbox-percentage_critical').prop('checked', false);
+ $('#percentage_critical').hide();
+ } else {
+ $('#percentage_critical').show();
+ }
+ });
+
+ $('#checkbox-percentage_warning').change (function() {
+ paint_graph_values();
+ if ($('#checkbox-percentage_warning').prop('checked') === true){
+ $('#checkbox-warning_inverse').prop('checked', false);
+ $('#warning_inverse').hide();
+ } else {
+ $('#warning_inverse').show();
+ }
+ });
+
+ $('#checkbox-percentage_critical').change (function() {
+ paint_graph_values();
+ if ($('#checkbox-percentage_critical').prop('checked') === true){
+ $('#checkbox-critical_inverse').prop('checked', false);
+ $('#critical_inverse').hide();
+ }
+ else {
+ $('#critical_inverse').show();
+ }
+
});
});
@@ -1915,6 +1989,43 @@ function paint_graph_values(){
//messages error
var message_error_warning = '';
var message_error_critical = '';
+ var message_error_percentage = '';
+
+
+ //Percentage selector
+ var percentage_w = $('#checkbox-percentage_warning').prop('checked');
+ var percentage_c = $('#checkbox-percentage_critical').prop('checked');
+
+ if(percentage_w == true || percentage_c == true) {
+ d3.select("#svg_dinamic rect").remove();
+ //create svg
+ var svg = d3.select("#svg_dinamic");
+ svg.selectAll("g").remove();
+ if (percentage_w === true) {
+ if(max_w < 0 || min_w < 0) {
+ paint_graph_status(0,0,0,0,0,0,1,0,legend_normal,legend_warning,legend_critical,message_error_percentage,message_error_percentage);
+ } else {
+ $("#text-max_warning").removeClass("input_error");
+ $("#text-min_warning").removeClass("input_error");
+ }
+
+ }
+
+ if(percentage_c === true) {
+ if(max_c < 0 || min_c < 0) {
+ paint_graph_status(0,0,0,0,0,0,0,1,legend_normal,legend_warning,legend_critical,message_error_percentage,message_error_percentage);
+ } else {
+ $("#text-min-critical").removeClass("input_error");
+ $("#text-max_critical").removeClass("input_error");
+
+ }
+ }
+
+ return;
+
+ } else {
+ $('#svg_dinamic').show();
+ }
//if haven't error
if(max_w == 0 || max_w > min_w){
diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php
index e64abcd413..9d0544b649 100755
--- a/pandora_console/godmode/massive/massive_edit_modules.php
+++ b/pandora_console/godmode/massive/massive_edit_modules.php
@@ -613,6 +613,28 @@ $table->data['edit1'][1] = '';
);
$table->data['edit1'][1] .= '';
$table->data['edit1'][1] .= '';
+ $table->data['edit1'][1] .= '';
+ $table->data['edit1'][1] .= '';
+ $table->data['edit1'][1] .= ''.__('Percentage').'';
+ $table->data['edit1'][1] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true);
+
+ $table->data['edit1'][1] .= ' | ';
+ $table->data['edit1'][1] .= '';
+ $table->data['edit1'][1] .= html_print_select(
+ [
+ '' => __('No change'),
+ '1' => __('Yes'),
+ '0' => __('No'),
+ ],
+ 'percentage_warning',
+ '',
+ '',
+ '',
+ '',
+ true
+ );
+ $table->data['edit1'][1] .= ' | ';
+ $table->data['edit1'][1] .= '
';
$table->data['edit1'][1] .= '
';
$table->data['edit1'][2] = __('Critical status');
@@ -682,6 +704,28 @@ $table->data['edit1'][1] = '';
);
$table->data['edit1'][3] .= '';
$table->data['edit1'][3] .= '';
+
+ $table->data['edit1'][3] .= '';
+ $table->data['edit1'][3] .= '';
+ $table->data['edit1'][3] .= ''.__('Percentage').'';
+ $table->data['edit1'][3] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true);
+ $table->data['edit1'][3] .= ' | ';
+ $table->data['edit1'][3] .= '';
+ $table->data['edit1'][3] .= html_print_select(
+ [
+ '' => __('No change'),
+ '1' => __('Yes'),
+ '0' => __('No'),
+ ],
+ 'percentage_critical',
+ '',
+ '',
+ '',
+ '',
+ true
+ );
+ $table->data['edit1'][3] .= ' | ';
+ $table->data['edit1'][3] .= '
';
$table->data['edit1'][3] .= '
';
$table->data['edit1_1'][0] = ''.__('Description').'';
@@ -1571,6 +1615,12 @@ $(document).ready (function () {
else if (this.id == "checkbox-warning_inverse") {
return; //Do none
}
+ else if (this.id == "checkbox-percentage_critical") {
+ return; //Do none
+ }
+ else if (this.id == "checkbox-percentage_warning") {
+ return; //Do none
+ }
else if (this.id == "checkbox-critical_inverse") {
return; //Do none
}
@@ -1829,6 +1879,31 @@ $(document).ready (function () {
}
}
});
+
+ $('#warning_inverse').change(function() {
+ if($(this).val() == 1) {
+ $("#percentage_warning").val('0').change()
+ }
+ });
+
+ $('#critical_inverse').change(function() {
+ if($(this).val() == 1) {
+ $("#percentage_critical").val('0').change();
+ }
+ });
+
+ $('#percentage_warning').change(function() {
+ if($(this).val() == 1) {
+ $("#warning_inverse").val('0').change()
+ }
+ });
+
+ $('#percentage_critical').change(function() {
+ if($(this).val() == 1) {
+ $("#critical_inverse").val('0').change()
+ }
+ });
+
});
@@ -1950,6 +2025,8 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
'history_data',
'critical_inverse',
'warning_inverse',
+ 'percentage_warning',
+ 'percentage_critical',
'critical_instructions',
'warning_instructions',
'unknown_instructions',
diff --git a/pandora_console/godmode/modules/manage_network_components.php b/pandora_console/godmode/modules/manage_network_components.php
index 4b3fdab1be..4ab509dbc0 100644
--- a/pandora_console/godmode/modules/manage_network_components.php
+++ b/pandora_console/godmode/modules/manage_network_components.php
@@ -130,6 +130,9 @@ $warning_instructions = (string) get_parameter('warning_instructions');
$unknown_instructions = (string) get_parameter('unknown_instructions');
$critical_inverse = (int) get_parameter('critical_inverse');
$warning_inverse = (int) get_parameter('warning_inverse');
+$percentage_critical = (int) get_parameter('percentage_critical');
+$percentage_warning = (int) get_parameter('percentage_warning');
+
$id_category = (int) get_parameter('id_category');
$id_tag_selected = (array) get_parameter('id_tag_selected');
$pure = get_parameter('pure', 0);
@@ -383,6 +386,8 @@ if ($is_management_allowed === true && $create_component) {
'unknown_instructions' => $unknown_instructions,
'critical_inverse' => $critical_inverse,
'warning_inverse' => $warning_inverse,
+ 'percentage_warning' => $percentage_warning,
+ 'percentage_critical' => $percentage_critical,
'id_category' => $id_category,
'tags' => $tags,
'disabled_types_event' => $disabled_types_event,
@@ -482,6 +487,8 @@ if ($is_management_allowed === true && $update_component) {
'unknown_instructions' => $unknown_instructions,
'critical_inverse' => $critical_inverse,
'warning_inverse' => $warning_inverse,
+ 'percentage_warning' => $percentage_warning,
+ 'percentage_critical' => $percentage_critical,
'id_category' => $id_category,
'tags' => $tags,
'disabled_types_event' => $disabled_types_event,
diff --git a/pandora_console/godmode/modules/manage_network_components_form.php b/pandora_console/godmode/modules/manage_network_components_form.php
index 6776316d54..559ca0a376 100644
--- a/pandora_console/godmode/modules/manage_network_components_form.php
+++ b/pandora_console/godmode/modules/manage_network_components_form.php
@@ -93,6 +93,8 @@ if ($create_network_from_module) {
$unknown_instructions = $data_module['unknown_instructions'];
$critical_inverse = $data_module['critical_inverse'];
$warning_inverse = $data_module['warning_inverse'];
+ $percentage_critical = $data_module['percentage_critical'];
+ $percentage_warning = $data_module['percentage_warning'];
$id_category = $data_module['id_category'];
$ff_event_normal = $data_module['min_ff_event_normal'];
$ff_event_warning = $data_module['min_ff_event_warning'];
@@ -150,7 +152,9 @@ if (isset($id)) {
$warning_instructions = $component['warning_instructions'];
$unknown_instructions = $component['unknown_instructions'];
$critical_inverse = $component['critical_inverse'];
+ $percentage_critical = $component['percentage_critical'];
$warning_inverse = $component['warning_inverse'];
+ $percentage_warning = $component['percentage_warning'];
$id_category = $component['id_category'];
$tags = $component['tags'];
$ff_event_normal = $component['min_ff_event_normal'];
@@ -233,6 +237,8 @@ if (isset($id)) {
$unknown_instructions = '';
$critical_inverse = 0;
$warning_inverse = 0;
+ $percentage_critical = 0;
+ $percentage_warning = 0;
$id_category = 0;
$tags = '';
$ff_event_normal = 0;
@@ -823,6 +829,60 @@ $(document).ready (function () {
});
$("#snmp_version" ).trigger("change");
+
+ if ($('#checkbox-warning_inverse').prop('checked') === true) {
+ $('#percentage_warning').hide();
+ }
+
+ if ($('#checkbox-critical_inverse').prop('checked') === true) {
+ $('#percentage_critical').hide();
+ }
+
+ if ($('#checkbox-percentage_warning').prop('checked') === true) {
+ $('#warning_inverse').hide();
+ }
+
+ if ($('#checkbox-percentage_critical').prop('checked') === true) {
+ $('#critical_inverse').hide();
+ }
+
+ $('#checkbox-warning_inverse').change (function() {
+ if ($('#checkbox-warning_inverse').prop('checked') === true){
+ $('#checkbox-percentage_warning').prop('checked', false);
+ $('#percentage_warning').hide();
+ } else {
+ $('#percentage_warning').show();
+ }
+ });
+
+ $('#checkbox-critical_inverse').change (function() {
+ if ($('#checkbox-critical_inverse').prop('checked') === true){
+ $('#checkbox-percentage_critical').prop('checked', false);
+ $('#percentage_critical').hide();
+ } else {
+ $('#percentage_critical').show();
+ }
+ });
+
+ $('#checkbox-percentage_warning').change (function() {
+ if ($('#checkbox-percentage_warning').prop('checked') === true){
+ $('#checkbox-warning_inverse').prop('checked', false);
+ $('#warning_inverse').hide();
+ } else {
+ $('#warning_inverse').show();
+ }
+ });
+
+ $('#checkbox-percentage_critical').change (function() {
+ if ($('#checkbox-percentage_critical').prop('checked') === true){
+ $('#checkbox-critical_inverse').prop('checked', false);
+ $('#critical_inverse').hide();
+ }
+ else {
+ $('#critical_inverse').show();
+ }
+ });
+
});
data[4][1] .= html_print_input_text(
1024,
true
).'';
-$table->data[4][1] .= '
'.__('Inverse interval').'';
+$table->data[4][1] .= ''.__('Inverse interval').'';
$table->data[4][1] .= html_print_checkbox('warning_inverse', 1, $warning_inverse, true);
+$table->data[4][1] .= '
';
+
+$table->data[4][1] .= ''.__('Percentage').'';
+$table->data[4][1] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true);
+$table->data[4][1] .= html_print_checkbox('percentage_warning', 1, $percentage_warning, true);
+$table->data[4][1] .= '
';
$table->data[4][2] = '';
$table->colspan[4][2] = 2;
@@ -220,8 +228,15 @@ $table->data[5][1] .= html_print_input_text(
1024,
true
).'';
-$table->data[5][1] .= '
'.__('Inverse interval').'';
+$table->data[5][1] .= ''.__('Inverse interval').'';
$table->data[5][1] .= html_print_checkbox('critical_inverse', 1, $critical_inverse, true);
+$table->data[5][1] .= '
';
+
+$table->data[5][1] .= ''.__('Percentage').'';
+$table->data[5][1] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true);
+$table->data[5][1] .= html_print_checkbox('percentage_critical', 1, $percentage_critical, true);
+$table->data[5][1] .= '
';
+
$table->data[6][0] = __('FF threshold');
$table->colspan[6][1] = 3;
@@ -518,6 +533,9 @@ $next_row++;
$('#string_warning').hide();
$('#minmax_critical').show();
$('#minmax_warning').show();
+ $('#percentage_warning').show();
+ $('#percentage_critical').show();
+
}
else {
// String types
@@ -525,6 +543,8 @@ $next_row++;
$('#string_warning').show();
$('#minmax_critical').hide();
$('#minmax_warning').hide();
+ $('#percentage_warning').hide();
+ $('#percentage_critical').hide();
}
});
@@ -566,11 +586,64 @@ $next_row++;
$('#text-max_critical').val(0);
}
});
+
+ if ($('#checkbox-warning_inverse').prop('checked') === true) {
+ $('#percentage_warning').hide();
+ }
+
+ if ($('#checkbox-critical_inverse').prop('checked') === true) {
+ $('#percentage_critical').hide();
+ }
+
+ if ($('#checkbox-percentage_warning').prop('checked') === true) {
+ $('#warning_inverse').hide();
+ }
+
+ if ($('#checkbox-percentage_critical').prop('checked') === true) {
+ $('#critical_inverse').hide();
+ }
+
$('#checkbox-warning_inverse').change (function() {
paint_graph_values();
- });
+ if ($('#checkbox-warning_inverse').prop('checked') === true){
+ $('#checkbox-percentage_warning').prop('checked', false);
+ $('#percentage_warning').hide();
+ } else {
+ $('#percentage_warning').show();
+ }
+ });
+
$('#checkbox-critical_inverse').change (function() {
paint_graph_values();
+
+ if ($('#checkbox-critical_inverse').prop('checked') === true){
+ $('#checkbox-percentage_critical').prop('checked', false);
+ $('#percentage_critical').hide();
+ } else {
+ $('#percentage_critical').show();
+ }
+ });
+
+ $('#checkbox-percentage_warning').change (function() {
+ paint_graph_values();
+ if ($('#checkbox-percentage_warning').prop('checked') === true){
+ $('#checkbox-warning_inverse').prop('checked', false);
+ $('#warning_inverse').hide();
+ } else {
+ $('#warning_inverse').show();
+ }
+ });
+
+ $('#checkbox-percentage_critical').change (function() {
+ paint_graph_values();
+ if ($('#checkbox-percentage_critical').prop('checked') === true){
+ $('#checkbox-critical_inverse').prop('checked', false);
+ $('#critical_inverse').hide();
+ }
+ else {
+ $('#critical_inverse').show();
+ }
+
});
});
@@ -634,6 +707,43 @@ $next_row++;
//messages error
var message_error_warning = '';
var message_error_critical = '';
+ var message_error_percentage = '';
+
+
+ //Percentage selector
+ var percentage_w = $('#checkbox-percentage_warning').prop('checked');
+ var percentage_c = $('#checkbox-percentage_critical').prop('checked');
+
+ if(percentage_w == true || percentage_c == true) {
+ d3.select("#svg_dinamic rect").remove();
+ //create svg
+ var svg = d3.select("#svg_dinamic");
+ svg.selectAll("g").remove();
+ if (percentage_w === true) {
+ if(max_w < 0 || min_w < 0) {
+ paint_graph_status(0,0,0,0,0,0,1,0,legend_normal,legend_warning,legend_critical,message_error_percentage,message_error_percentage);
+ } else {
+ $("#text-max_warning").removeClass("input_error");
+ $("#text-min_warning").removeClass("input_error");
+ }
+
+ }
+
+ if(percentage_c === true) {
+ if(max_c < 0 || min_c < 0) {
+ paint_graph_status(0,0,0,0,0,0,0,1,legend_normal,legend_warning,legend_critical,message_error_percentage,message_error_percentage);
+ } else {
+ $("#text-min-critical").removeClass("input_error");
+ $("#text-max_critical").removeClass("input_error");
+
+ }
+ }
+
+ return;
+
+} else {
+ $('#svg_dinamic').show();
+}
//if haven't error
if(max_w == 0 || max_w > min_w){
diff --git a/pandora_console/godmode/modules/manage_network_components_form_wizard.php b/pandora_console/godmode/modules/manage_network_components_form_wizard.php
index 4ee77bafb5..990390fe47 100644
--- a/pandora_console/godmode/modules/manage_network_components_form_wizard.php
+++ b/pandora_console/godmode/modules/manage_network_components_form_wizard.php
@@ -389,8 +389,14 @@ $data[1] .= '';
$data[1] .= ''.__('String').' ';
$data[1] .= html_print_input_text('str_warning', $str_warning, '', 5, 1024, true).'';
// Warning inverse values.
-$data[1] .= '
'.__('Inverse interval').' ';
+$data[1] .= ''.__('Inverse interval').' ';
$data[1] .= html_print_checkbox('warning_inverse', 1, $warning_inverse, true);
+$data[1] .= '
';
+
+$data[1] .= ''.__('Percentage').' ';
+$data[1] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true);
+$data[1] .= html_print_checkbox('percentage_warning', 1, $percentage_warning, true);
+$data[1] .= '
';
$data[2] = '';
$table->colspan['warning-svg-row'][2] = 2;
@@ -425,8 +431,15 @@ $data[1] .= '';
$data[1] .= ''.__('String').' ';
$data[1] .= html_print_input_text('str_critical', $str_critical, '', 5, 1024, true).'';
// Critical inverse values.
-$data[1] .= '
'.__('Inverse interval').' ';
+$data[1] .= ''.__('Inverse interval').' ';
$data[1] .= html_print_checkbox('critical_inverse', 1, $critical_inverse, true);
+$data[1] .= '
';
+
+$data[1] .= ''.__('Percentage').' ';
+$data[1] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true);
+$data[1] .= html_print_checkbox('percentage_critical', 1, $percentage_critical, true);
+$data[1] .= '';
+
push_table_row($data, 'critical-row');
diff --git a/pandora_console/include/class/AgentWizard.class.php b/pandora_console/include/class/AgentWizard.class.php
index 13e4264e23..79c9af84c5 100644
--- a/pandora_console/include/class/AgentWizard.class.php
+++ b/pandora_console/include/class/AgentWizard.class.php
@@ -1441,6 +1441,10 @@ class AgentWizard extends HTML
$result[$value]['criticalInv'] = $data[$k];
} else if (empty(preg_match('/module-warning-inv/', $k)) === false) {
$result[$value]['warningInv'] = $data[$k];
+ } else if (empty(preg_match('/module-warning-perc/', $k)) === false) {
+ $result[$value]['warningPerc'] = $data[$k.'_sent'];
+ } else if (empty(preg_match('/module-critical-perc/', $k)) === false) {
+ $result[$value]['criticalPerc'] = $data[$k.'_sent'];
} else if (empty(preg_match('/module-type/', $k)) === false) {
$result[$value]['moduleType'] = $data[$k];
} else if (empty(preg_match('/module-unit/', $k)) === false) {
@@ -1856,6 +1860,8 @@ class AgentWizard extends HTML
$values['max_warning'] = $candidate['warningMax'];
$values['min_critical'] = $candidate['criticalMin'];
$values['max_critical'] = $candidate['criticalMax'];
+ $values['percentage_warning'] = $candidate['warningPerc'];
+ $values['percentage_critical'] = $candidate['criticalPerc'];
}
$values['warning_inverse'] = $candidate['warningInv'];
@@ -2292,6 +2298,8 @@ class AgentWizard extends HTML
$tmp->max_warning($candidate['warningMax']);
$tmp->min_critical($candidate['criticalMin']);
$tmp->max_critical($candidate['criticalMax']);
+ $tmp->percentage_warning($candidate['warningPerc']);
+ $tmp->percentage_critical($candidate['criticalPerc']);
}
$tmp->warning_inverse($candidate['warningInv']);
@@ -2457,6 +2465,8 @@ class AgentWizard extends HTML
'min_critical' => $moduleData['module_thresholds']['min_critical'],
'max_critical' => $moduleData['module_thresholds']['max_critical'],
'inv_critical' => $moduleData['module_thresholds']['inv_critical'],
+ 'perc_warning' => $moduleData['module_thresholds']['perc_warning'],
+ 'perc_critical' => $moduleData['module_thresholds']['perc_critical'],
'module_enabled' => $moduleData['default_enabled'],
'name_oid' => $moduleData['value'],
'value' => $moduleData['value'],
@@ -2636,6 +2646,8 @@ class AgentWizard extends HTML
'min_critical' => $moduleData['module_thresholds']['min_critical'],
'max_critical' => $moduleData['module_thresholds']['max_critical'],
'inv_critical' => $moduleData['module_thresholds']['inv_critical'],
+ 'perc_warning' => $moduleData['module_thresholds']['perc_warning'],
+ 'perc_critical' => $moduleData['module_thresholds']['perc_critical'],
'module_enabled' => $moduleData['module_enabled'],
'current_value' => $currentValue,
'name_oid' => $moduleData['value'],
@@ -3280,6 +3292,8 @@ class AgentWizard extends HTML
nc.min_critical,
nc.max_critical,
nc.critical_inverse AS `inv_critical`,
+ nc.percentage_warning AS `perc_warning`,
+ nc.percentage_critical AS `perc_critical`,
nc.module_enabled,
%s,
nc.scan_type,
@@ -3867,9 +3881,11 @@ class AgentWizard extends HTML
$table->width = '100%';
$table->class = 'info_table';
// Subheaders for Warning and Critical columns.
- $subheaders = 'Min.';
- $subheaders .= 'Max.';
- $subheaders .= 'Inv.';
+ $subheaders = 'Min.';
+ $subheaders .= 'Max.';
+ $subheaders .= 'Inv.';
+ $subheaders .= '%.';
+
// Warning header.
$warning_header = html_print_div(
[
@@ -4081,7 +4097,7 @@ class AgentWizard extends HTML
);
$data_warning .= html_print_div(
[
- 'class' => 'wizard-column-levels',
+ 'class' => 'wizard-column-levels-check',
'style' => 'margin-top: 0.3em;',
'content' => html_print_checkbox(
'module-warning-inv-'.$uniqueId,
@@ -4089,7 +4105,24 @@ class AgentWizard extends HTML
$module['inv_warning'],
true,
false,
- '',
+ 'change_control(this, \''.$uniqueId.'\')',
+ false,
+ 'form="form-create-modules"'
+ ),
+ ],
+ true
+ );
+ $data_warning .= html_print_div(
+ [
+ 'class' => 'wizard-column-levels-check',
+ 'style' => 'margin-top: 0.3em;',
+ 'content' => html_print_checkbox(
+ 'module-warning-perc-'.$uniqueId,
+ $module['perc_warning'],
+ $module['perc_warning'],
+ true,
+ false,
+ 'change_control(this, \''.$uniqueId.'\')',
false,
'form="form-create-modules"'
),
@@ -4148,15 +4181,33 @@ class AgentWizard extends HTML
$data[4] .= html_print_div(
[
- 'class' => 'wizard-column-levels',
+ 'class' => 'wizard-column-levels-check',
'style' => 'margin-top: 0.3em;',
'content' => html_print_checkbox(
- 'module-critical_inv_'.$uniqueId,
+ 'module-critical-inv-'.$uniqueId,
$module['inv_critical'],
$module['inv_critical'],
true,
false,
- '',
+ 'change_control(this, \''.$uniqueId.'\')',
+ false,
+ 'form="form-create-modules"'
+ ),
+ ],
+ true
+ );
+
+ $data[4] .= html_print_div(
+ [
+ 'class' => 'wizard-column-levels-check',
+ 'style' => 'margin-top: 0.3em;',
+ 'content' => html_print_checkbox(
+ 'module-critical-perc-'.$uniqueId,
+ $module['perc_critical'],
+ $module['perc_critical'],
+ true,
+ false,
+ 'change_control(this,\''.$uniqueId.'\')',
false,
'form="form-create-modules"'
),
@@ -4528,12 +4579,14 @@ class AgentWizard extends HTML
'default_enabled' => true,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => $min_warning,
- 'max_warning' => $max_warning,
- 'inv_warning' => $inv_warning,
- 'min_critical' => $min_critical,
- 'max_critical' => $max_critical,
- 'inv_critical' => $inv_critical,
+ 'min_warning' => $min_warning,
+ 'max_warning' => $max_warning,
+ 'inv_warning' => $inv_warning,
+ 'min_critical' => $min_critical,
+ 'max_critical' => $max_critical,
+ 'inv_critical' => $inv_critical,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -4583,12 +4636,14 @@ class AgentWizard extends HTML
'default_enabled' => true,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -4635,12 +4690,14 @@ class AgentWizard extends HTML
'default_enabled' => true,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => $minc,
- 'max_critical' => $maxc,
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => $minc,
+ 'max_critical' => $maxc,
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
}
@@ -4723,12 +4780,14 @@ class AgentWizard extends HTML
'module_enabled' => false,
'module_unit' => '%',
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '85',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '85',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -4760,12 +4819,14 @@ class AgentWizard extends HTML
'module_enabled' => false,
'module_unit' => '%',
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -4797,12 +4858,14 @@ class AgentWizard extends HTML
'module_enabled' => false,
'module_unit' => '%',
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
}
@@ -4826,12 +4889,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
// IfInDiscards.
@@ -4851,12 +4916,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
// IfOutDiscards.
@@ -4876,12 +4943,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
// IfInErrors.
@@ -4901,12 +4970,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
// IfOutErrors.
@@ -4926,12 +4997,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -4994,12 +5067,14 @@ class AgentWizard extends HTML
'default_enabled' => true,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -5020,12 +5095,14 @@ class AgentWizard extends HTML
'default_enabled' => true,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -5046,12 +5123,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
// IfOutUcastPkts.
@@ -5071,12 +5150,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
// IfInNUcastPkts.
@@ -5096,12 +5177,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
// IfOutNUcastPkts.
@@ -5121,12 +5204,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -5189,12 +5274,14 @@ class AgentWizard extends HTML
'default_enabled' => true,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -5215,12 +5302,14 @@ class AgentWizard extends HTML
'default_enabled' => true,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -5241,12 +5330,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -5267,12 +5358,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
// IfHCInNUcastPkts.
@@ -5292,12 +5385,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
// IfOutNUcastPkts.
@@ -5317,12 +5412,14 @@ class AgentWizard extends HTML
'default_enabled' => false,
'module_enabled' => false,
'module_thresholds' => [
- 'min_warning' => '0',
- 'max_warning' => '0',
- 'inv_warning' => false,
- 'min_critical' => '0',
- 'max_critical' => '0',
- 'inv_critical' => false,
+ 'min_warning' => '0',
+ 'max_warning' => '0',
+ 'inv_warning' => false,
+ 'min_critical' => '0',
+ 'max_critical' => '0',
+ 'inv_critical' => false,
+ 'perc_warning' => false,
+ 'perc_critical' => false,
],
];
@@ -5825,6 +5922,29 @@ class AgentWizard extends HTML
});
}
+
+ function change_control(checkbox, uniqueId) {
+ var checkbox_name = $(checkbox).attr('name');
+
+ if($(checkbox).prop('checked', true)) {
+ if(checkbox_name.match(/warning-inv/gm) !== null) {
+ $('#checkbox-module-warning-perc-'+uniqueId).prop('checked', false);
+ }
+
+ if(checkbox_name.match(/critical-inv/gm) !== null) {
+ $('#checkbox-module-critical-perc-'+uniqueId).prop('checked', false);
+ }
+
+ if(checkbox_name.match(/warning-perc/gm) !== null) {
+ $('#checkbox-module-warning-inv-'+uniqueId).prop('checked', false);
+ }
+
+ if(checkbox_name.match(/critical-perc/gm) !== null) {
+ $('#checkbox-module-critical-inv-'+uniqueId).prop('checked', false);
+ }
+ }
+
+ }
'',
'critical_inverse' => 0,
'warning_inverse' => 0,
+ 'percentage_warning' => 0,
+ 'percentage_critical' => 0,
'id_category' => 0,
'tags' => '',
'disabled_types_event' => '{"going_unknown":1}',
@@ -1336,6 +1338,8 @@ function snmp_browser_create_modules_snmp(
'unknown_instructions' => '',
'critical_inverse' => 0,
'warning_inverse' => 0,
+ 'percentage_warning' => 0,
+ 'percentage_critical' => 0,
'id_category' => 0,
'disabled_types_event' => '{"going_unknown":1}',
'min_ff_event_normal' => 0,
@@ -1394,6 +1398,8 @@ function snmp_browser_create_modules_snmp(
'unknown_instructions' => '',
'critical_inverse' => 0,
'warning_inverse' => 0,
+ 'percentage_warning' => 0,
+ 'percentage_critical' => 0,
'id_category' => 0,
'disabled_types_event' => '{"going_unknown":1}',
'min_ff_event_normal' => 0,
diff --git a/pandora_console/include/javascript/pandora_modules.js b/pandora_console/include/javascript/pandora_modules.js
index d1b4df6ea5..4a2361d050 100644
--- a/pandora_console/include/javascript/pandora_modules.js
+++ b/pandora_console/include/javascript/pandora_modules.js
@@ -105,6 +105,8 @@ function configure_modules_form() {
$("#text-unit").attr("value", "");
$("#checkbox-critical_inverse").attr("value", 0);
$("#checkbox-warning_inverse").attr("value", 0);
+ $("#checkbox-percentage_warning").attr("value", 0);
+ $("#checkbox-percentage_critical").attr("value", 0);
$("#checkbox-ff_type").attr("value", 0);
$("#textarea_critical_instructions").attr("value", "");
$("#textarea_warning_instructions").attr("value", "");
@@ -205,6 +207,16 @@ function configure_modules_form() {
data["critical_inverse"]
);
$("#checkbox-warning_inverse").prop("uncheck", data["warning_inverse"]);
+
+ $("#checkbox-percentage_warning").prop(
+ "uncheck",
+ data["percentage_warning"]
+ );
+ $("#checkbox-percentage_critical").prop(
+ "uncheck",
+ data["percentage_critical"]
+ );
+
$("#component_loading").hide();
$("#id_module_type").change();
if ($("#id_category").is("select")) {
@@ -464,6 +476,15 @@ function configure_modules_form() {
data["critical_inverse"]
);
$("#checkbox-warning_inverse").prop("checked", data["warning_inverse"]);
+ $("#checkbox-percentage_warning").prop(
+ "uncheck",
+ data["percentage_warning"]
+ );
+ $("#checkbox-percentage_critical").prop(
+ "uncheck",
+ data["percentage_critical"]
+ );
+
$("#component_loading").hide();
$("#id_module_type").change();
if ($("#id_category").is("select")) {
diff --git a/pandora_console/include/styles/wizard.css b/pandora_console/include/styles/wizard.css
index e47bc9d2ca..4f55f19e3e 100644
--- a/pandora_console/include/styles/wizard.css
+++ b/pandora_console/include/styles/wizard.css
@@ -148,6 +148,12 @@ ul.wizard li > textarea {
text-align: center;
}
+.wizard-column-levels-check {
+ float: left;
+ width: 17%;
+ text-align: center;
+}
+
.action_button_list {
height: 60px;
}
diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql
index 0b320185df..f8b675c9d6 100644
--- a/pandora_console/pandoradb.sql
+++ b/pandora_console/pandoradb.sql
@@ -267,6 +267,8 @@ CREATE TABLE IF NOT EXISTS `tagente_modulo` (
`parent_module_id` int(10) unsigned NOT NULL default 0,
`cps` int NOT NULL default 0,
`debug_content` TEXT,
+ `percentage_critical` tinyint(1) unsigned default '0',
+ `percentage_warning` tinyint(1) unsigned default '0',
PRIMARY KEY (`id_agente_modulo`),
KEY `main_idx` (`id_agente_modulo`,`id_agente`),
KEY `tam_agente` (`id_agente`),
@@ -997,6 +999,8 @@ CREATE TABLE IF NOT EXISTS `tnetwork_component` (
`scan_filters` text NOT NULL,
`query_filters` text NOT NULL,
`enabled` tinyint(1) UNSIGNED DEFAULT 1,
+ `percentage_critical` tinyint(1) unsigned default '0',
+ `percentage_warning` tinyint(1) unsigned default '0',
PRIMARY KEY (`id_nc`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -2435,6 +2439,8 @@ CREATE TABLE IF NOT EXISTS `tlocal_component` (
`prediction_sample_window` int(10) default 0,
`prediction_samples` int(4) default 0,
`prediction_threshold` int(4) default 0,
+ `percentage_critical` tinyint(1) UNSIGNED DEFAULT 0,
+ `percentage_warning` tinyint(1) UNSIGNED DEFAULT 0,
PRIMARY KEY (`id`),
FOREIGN KEY (`id_network_component_group`) REFERENCES tnetwork_component_group(`id_sg`)
ON DELETE CASCADE ON UPDATE CASCADE
@@ -2515,6 +2521,8 @@ CREATE TABLE IF NOT EXISTS `tpolicy_modules` (
`prediction_samples` int(4) default 0,
`prediction_threshold` int(4) default 0,
`cps` int NOT NULL DEFAULT 0,
+ `percentage_warning` tinyint(1) UNSIGNED DEFAULT 0,
+ `percentage_critical` tinyint(1) UNSIGNED DEFAULT 0,
PRIMARY KEY (`id`),
KEY `main_idx` (`id_policy`),
UNIQUE (`id_policy`, `name`)
diff --git a/pandora_console/pandoradb_data.sql b/pandora_console/pandoradb_data.sql
index da203476bd..ffcd55e03c 100644
--- a/pandora_console/pandoradb_data.sql
+++ b/pandora_console/pandoradb_data.sql
@@ -1209,48 +1209,48 @@ INSERT INTO `tpolicies` VALUES (4,'Basic AIX Local Monitoring','B
INSERT INTO `tpolicies` VALUES (5,'Basic HP-UX Local Monitoring','Basic local checks to monitoring HP/UX systems.',2,0,0);
INSERT INTO `tpolicies` VALUES (6,'Basic Remote Checks','Basic Remote Checks (ping, latency, ports).',9,0,0);
-INSERT INTO `tpolicy_modules` VALUES (1,1,'module_begin
module_name Bytes per second (Received)
module_type generic_data_inc
module_exec powershell -c "Get-NetAdapterStatistics |Measure-Object -Sum ReceivedBytes |Select -ExpandProperty Sum"
module_end
',4,'','Bytes per second (Received)','',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (2,1,'module_begin
module_name Bytes per second (Sent)
module_type generic_data_inc
module_exec powershell -c "Get-NetAdapterStatistics |Measure-Object -Sum SentBytes |Select -ExpandProperty Sum"
module_end
',4,'','Bytes per second (Sent)','',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (3,1,'module_begin
module_name CPU %
module_type generic_data
module_cpuusage all
module_unit %
module_min_warning 79.00
module_end
',1,'CPU usage (%)','CPU %','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,79.00,90.00,'',91.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (4,1,'module_begin
module_name Total processes
module_type generic_data
module_exec tasklist | wc -l | gawk "{print $1}"
module_end
',1,'','Total processes','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (5,1,'module_begin
module_name Uptime
module_type generic_data
module_exec powershell -c "((get-date) - (gcim Win32_OperatingSystem).LastBootUpTime | Select -ExpandProperty Ticks) / 100000"
module_end
',1,'','Uptime','_timeticks_',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (6,1,'module_begin
module_name WMI Service
module_type generic_proc
module_service winmgmt
module_end
',2,'WMI Service enabled','WMI Service','',0,0,1,'',0,'','','','',3,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (7,2,'module_begin
module_name Bytes per second (Received)
module_type generic_data_inc
module_exec awk '!/lo:/ {s+=$2}END{print s}' /proc/net/dev
module_min_warning 0
module_max_warning 0
module_min_critical 0
module_max_critical 0
module_end
',4,'','Bytes per second (Received)','bytes/sec',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (8,2,'module_begin
module_name Bytes per second (Sent)
module_type generic_data_inc
module_exec awk '!/lo:/ {s+=$10}END{print s}' /proc/net/dev
module_min_warning 0
module_max_warning 0
module_min_critical 0
module_max_critical 0
module_end
',4,'','Bytes per second (Sent)','bytes/sec',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (9,2,'module_begin
module_name CPU %
module_type generic_data
module_exec vmstat 1 1 | tail -1 | awk '{ print $13 + $14 }'
module_unit %
module_end
',1,'Current use of CPU (System + User).','CPU %','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (10,2,'module_begin
module_name I/O Lock
module_type generic_data
module_exec vmstat 1 1 | tail -1 | awk '{print $16}'
module_description I/O Wait Disk
module_end
',1,'','I/O Lock','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (11,2,'module_begin
module_name Load Average
module_type generic_data
module_exec cat /proc/loadavg |awk '{print $2}'
module_end
',1,'Average process in CPU (Last 5 minutes).','Load Average','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (12,2,'module_begin
module_name Port 22 Open (SSH)
module_type generic_proc
module_exec echo > /dev/tcp/127.0.0.1/22 >/dev/null 2>&1 && echo 1 || echo 0
module_end
',2,'Checks if port 22 (SSH) is listening.','Port 22 Open (SSH)','',0,0,1,'',0,'','','','',3,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (13,2,'module_begin
module_name Total processes
module_type generic_data
module_exec ps ax | tail -n +2 | wc -l
module_description Total processes
module_end',1,'','Total processes','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (14,2,'module_begin
module_name Uptime
module_type generic_data
module_exec awk '{print $1*100}' /proc/uptime
module_end
',1,'Host Up time (Timeticks)','Uptime','_timeticks_',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (15,3,'module_begin
module_name CPU %
module_type generic_data
module_exec vmstat 1 1 | tail -1| awk '{print (100-$NF)}'
module_unit %
module_end
',1,'CPU usage %','CPU %','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (16,3,'module_begin
module_name Disk / usage (%)
module_type generic_data
module_exec df -k / | tail -1 | tr -d "%" | awk '{print $5}'
module_end
',1,'Disk use percentage for root partition (/)','Disk / usage (%)','',0,0,1,'',0,'','','','',1,1,1,0,0,'','','',0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *','','{\"going_unknown\":0}','W10=',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (17,3,'module_begin
module_name Disk /var usage (%)
module_type generic_data
module_exec df -k /var | tail -1 | tr -d "%" | awk '{print $5}'
module_end
',1,'Disk use percentage for var partition (/var)','Disk /var usage (%)','',0,0,1,'',0,'','','','',1,1,1,0,0,'','','',0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *','','{\"going_unknown\":0}','W10=',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (18,3,'module_begin
module_name Load Average
module_type generic_data
module_exec uptime | awk '{print $(NF-2)}' | tr -d ','
module_end
',1,'Load average','Load Average','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (19,3,'module_begin
module_name Memory Free %
module_type generic_data
module_freepercentmemory
module_end
',1,'Percentage Mem Free','Memory Free %','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,8.00,15.00,'',0.00,7.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (20,3,'module_begin
module_name Port 22 Open (SSH)
module_type generic_proc
module_exec timeout 1 bash -c "echo > /dev/tcp/127.0.0.1/22" >/dev/null 2>&1 && echo 1 || echo 0
module_end
',2,'Checks if port 22 (SSH) is listening.','Port 22 Open (SSH)','',0,0,1,'',0,'','','','',3,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (21,3,'module_begin
module_name Swap Used %
module_type generic_data
module_exec swap -l |tail -1 | awk '{print 100 - ($NF / $(NF-1) * 100)}'
module_unit %
module_end
',1,'Swap memory available in %','Swap Used %','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (22,3,'module_begin
module_name Total processes
module_type generic_data
module_exec ps -A | wc -l | awk '{print $1}'
module_end',1,'Total processes','Total processes','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (23,3,'module_beg
module_name Uptime
module_type generic_data
module_exec perl -e "print 100*(time - $(kstat -p unix:0:system_misc:boot_time |awk '{print $2}'))"
module_end
',1,'Host Up time (Timeticks)','Uptime','_timeticks_',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (24,4,'module_begin
module_name CPU %
module_type generic_data
module_exec sar 1 | tail -1 | awk '{print 100 - $5}'
module_description CPU usage in %
module_unit %
module_end',1,'','CPU %','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (25,4,'module_begin
module_name CPU User
module_type generic_data
module_exec sar 1 | tail -1 | awk '{print $2}'
module_description CPU usage in %
module_unit %
module_end',1,'','CPU User','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (26,4,'module_begin
module_name Load Average
module_type generic_data
module_exec uptime | awk '{print $(NF-2)*1}'
module_description Average process in CPU (Last minute)
module_end',1,'','Load Average','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (27,4,'module_begin
module_name Memory Free %
module_type generic_data
module_exec svmon -G|grep memory | awk '{print (1- $3/$2 )*100}'
module_description Percentage Mem Free
module_end
',1,'','Memory Free %','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (28,4,'module_begin
module_name Pagination use
module_type generic_data
module_exec lsps -s | tail -1 | awk '{print $2+0}'
module_end',1,'','Pagination use','',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (29,4,'module_begin
module_name Service sshd status
module_type generic_proc
module_exec lssrc -a | grep ssh | grep active
module_end',2,'','Service sshd status','',0,0,1,'',0,'','','','',3,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (30,4,'module_begin
module_name Uptime
module_type generic_data_string
module_exec uptime |sed "s/us\.*$//g" | sed "s/,\.*$//g"
module_description Host Up time
module_end
',1,'','Uptime','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (31,5,'module_begin
module_name CPU %
module_type generic_data
module_cpuusage all
module_unit %
module_end
',1,'','CPU %','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (32,5,'module_begin
module_name CPU User
module_type generic_data
module_exec vmstat 1 2 | tail -1 | awk '{ print $(16) }'
module_description % of User CPU
module_unit %
module_end
',1,'','CPU User','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (33,5,'module_begin
module_name Load Average
module_type generic_data
module_exec uptime | awk '{print $(NF-2)}' | tr -d ','
module_description System load average
module_end
',1,'','Load Average','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (34,5,'module_begin
module_name Memory Free %
module_type generic_data
module_exec echo "" > /tmp/hpvm_toptest; top -d 1 -f /tmp/hpvm_toptest 2>/dev/null 1>/dev/null; cat /tmp/hpvm_toptest | grep -i Memory | head -1 | awk '{print $8/($2+$5) * 100}'
module_end
',1,'','Memory Free %','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (35,5,'module_begin
module_name Service sshd status
module_type generic_proc
module_exec ps -ef | grep -v grep | grep "/opt/ssh/sbin/sshd" | wc -l
module_description SSH running
module_end
',2,'','Service sshd status','',0,0,1,'',0,'','','','',3,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (36,5,'module_begin
module_name Total processes
module_type generic_data
module_exec echo $(((`ps -e | wc -l`)-1)) | tr -d “\n”
module_description Total processes
module_end
',1,'','Total processes','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (37,5,'module_begin
module_name Uptime
module_type generic_data_string
module_exec uptime |sed s/us\.*$//g | sed s/,\.*$//g
module_description Host Up time
module_end
',3,'','Uptime','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (38,5,'module_begin
module_name Zombie processes
module_type generic_data
module_exec ps -elf | awk '$2~/'Z'/{print $2}' | wc -l | tr -d "\n"
module_description Zombie processes
module_end
',1,'','Zombie processes','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (39,6,'',6,'','Host Alive','',0,0,300,'',0,'','','','',2,1,2,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (40,6,'',7,'','Host Latency','',0,0,300,'',0,'','','','',2,1,2,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,80.00,149.00,'',150.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (41,6,'',2,'Checks if port 161 is open and reachable for Pandora FMS server.','SNMP Available','',0,0,300,'',0,'','','','',1,1,4,0,0,'','','_field1_;Target IP;;_address_--_field2_;Port;;161',3,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *','{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Target IP\",\"help\":\"\",\"value\":\"_address_\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Port\",\"help\":\"\",\"value\":\"161\"}}','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-INSERT INTO `tpolicy_modules` VALUES (42,6,'',9,'Checks if port 22 is open and reachable for Pandora FMS server.','SSH Reachable','',0,0,300,'',22,'','','','',2,1,2,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (1,1,'module_begin
module_name Bytes per second (Received)
module_type generic_data_inc
module_exec powershell -c "Get-NetAdapterStatistics |Measure-Object -Sum ReceivedBytes |Select -ExpandProperty Sum"
module_end
',4,'','Bytes per second (Received)','',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (2,1,'module_begin
module_name Bytes per second (Sent)
module_type generic_data_inc
module_exec powershell -c "Get-NetAdapterStatistics |Measure-Object -Sum SentBytes |Select -ExpandProperty Sum"
module_end
',4,'','Bytes per second (Sent)','',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (3,1,'module_begin
module_name CPU %
module_type generic_data
module_cpuusage all
module_unit %
module_min_warning 79.00
module_end
',1,'CPU usage (%)','CPU %','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,79.00,90.00,'',91.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (4,1,'module_begin
module_name Total processes
module_type generic_data
module_exec tasklist | wc -l | gawk "{print $1}"
module_end
',1,'','Total processes','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (5,1,'module_begin
module_name Uptime
module_type generic_data
module_exec powershell -c "((get-date) - (gcim Win32_OperatingSystem).LastBootUpTime | Select -ExpandProperty Ticks) / 100000"
module_end
',1,'','Uptime','_timeticks_',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (6,1,'module_begin
module_name WMI Service
module_type generic_proc
module_service winmgmt
module_end
',2,'WMI Service enabled','WMI Service','',0,0,1,'',0,'','','','',3,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (7,2,'module_begin
module_name Bytes per second (Received)
module_type generic_data_inc
module_exec awk '!/lo:/ {s+=$2}END{print s}' /proc/net/dev
module_min_warning 0
module_max_warning 0
module_min_critical 0
module_max_critical 0
module_end
',4,'','Bytes per second (Received)','bytes/sec',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (8,2,'module_begin
module_name Bytes per second (Sent)
module_type generic_data_inc
module_exec awk '!/lo:/ {s+=$10}END{print s}' /proc/net/dev
module_min_warning 0
module_max_warning 0
module_min_critical 0
module_max_critical 0
module_end
',4,'','Bytes per second (Sent)','bytes/sec',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (9,2,'module_begin
module_name CPU %
module_type generic_data
module_exec vmstat 1 1 | tail -1 | awk '{ print $13 + $14 }'
module_unit %
module_end
',1,'Current use of CPU (System + User).','CPU %','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (10,2,'module_begin
module_name I/O Lock
module_type generic_data
module_exec vmstat 1 1 | tail -1 | awk '{print $16}'
module_description I/O Wait Disk
module_end
',1,'','I/O Lock','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (11,2,'module_begin
module_name Load Average
module_type generic_data
module_exec cat /proc/loadavg |awk '{print $2}'
module_end
',1,'Average process in CPU (Last 5 minutes).','Load Average','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (12,2,'module_begin
module_name Port 22 Open (SSH)
module_type generic_proc
module_exec echo > /dev/tcp/127.0.0.1/22 >/dev/null 2>&1 && echo 1 || echo 0
module_end
',2,'Checks if port 22 (SSH) is listening.','Port 22 Open (SSH)','',0,0,1,'',0,'','','','',3,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (13,2,'module_begin
module_name Total processes
module_type generic_data
module_exec ps ax | tail -n +2 | wc -l
module_description Total processes
module_end',1,'','Total processes','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (14,2,'module_begin
module_name Uptime
module_type generic_data
module_exec awk '{print $1*100}' /proc/uptime
module_end
',1,'Host Up time (Timeticks)','Uptime','_timeticks_',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (15,3,'module_begin
module_name CPU %
module_type generic_data
module_exec vmstat 1 1 | tail -1| awk '{print (100-$NF)}'
module_unit %
module_end
',1,'CPU usage %','CPU %','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (16,3,'module_begin
module_name Disk / usage (%)
module_type generic_data
module_exec df -k / | tail -1 | tr -d "%" | awk '{print $5}'
module_end
',1,'Disk use percentage for root partition (/)','Disk / usage (%)','',0,0,1,'',0,'','','','',1,1,1,0,0,'','','',0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *','','{\"going_unknown\":0}','W10=',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (17,3,'module_begin
module_name Disk /var usage (%)
module_type generic_data
module_exec df -k /var | tail -1 | tr -d "%" | awk '{print $5}'
module_end
',1,'Disk use percentage for var partition (/var)','Disk /var usage (%)','',0,0,1,'',0,'','','','',1,1,1,0,0,'','','',0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *','','{\"going_unknown\":0}','W10=',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (18,3,'module_begin
module_name Load Average
module_type generic_data
module_exec uptime | awk '{print $(NF-2)}' | tr -d ','
module_end
',1,'Load average','Load Average','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (19,3,'module_begin
module_name Memory Free %
module_type generic_data
module_freepercentmemory
module_end
',1,'Percentage Mem Free','Memory Free %','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,8.00,15.00,'',0.00,7.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (20,3,'module_begin
module_name Port 22 Open (SSH)
module_type generic_proc
module_exec timeout 1 bash -c "echo > /dev/tcp/127.0.0.1/22" >/dev/null 2>&1 && echo 1 || echo 0
module_end
',2,'Checks if port 22 (SSH) is listening.','Port 22 Open (SSH)','',0,0,1,'',0,'','','','',3,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (21,3,'module_begin
module_name Swap Used %
module_type generic_data
module_exec swap -l |tail -1 | awk '{print 100 - ($NF / $(NF-1) * 100)}'
module_unit %
module_end
',1,'Swap memory available in %','Swap Used %','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (22,3,'module_begin
module_name Total processes
module_type generic_data
module_exec ps -A | wc -l | awk '{print $1}'
module_end',1,'Total processes','Total processes','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (23,3,'module_beg
module_name Uptime
module_type generic_data
module_exec perl -e "print 100*(time - $(kstat -p unix:0:system_misc:boot_time |awk '{print $2}'))"
module_end
',1,'Host Up time (Timeticks)','Uptime','_timeticks_',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (24,4,'module_begin
module_name CPU %
module_type generic_data
module_exec sar 1 | tail -1 | awk '{print 100 - $5}'
module_description CPU usage in %
module_unit %
module_end',1,'','CPU %','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (25,4,'module_begin
module_name CPU User
module_type generic_data
module_exec sar 1 | tail -1 | awk '{print $2}'
module_description CPU usage in %
module_unit %
module_end',1,'','CPU User','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (26,4,'module_begin
module_name Load Average
module_type generic_data
module_exec uptime | awk '{print $(NF-2)*1}'
module_description Average process in CPU (Last minute)
module_end',1,'','Load Average','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (27,4,'module_begin
module_name Memory Free %
module_type generic_data
module_exec svmon -G|grep memory | awk '{print (1- $3/$2 )*100}'
module_description Percentage Mem Free
module_end
',1,'','Memory Free %','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (28,4,'module_begin
module_name Pagination use
module_type generic_data
module_exec lsps -s | tail -1 | awk '{print $2+0}'
module_end',1,'','Pagination use','',0,0,1,'',0,'','','','',1,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (29,4,'module_begin
module_name Service sshd status
module_type generic_proc
module_exec lssrc -a | grep ssh | grep active
module_end',2,'','Service sshd status','',0,0,1,'',0,'','','','',3,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (30,4,'module_begin
module_name Uptime
module_type generic_data_string
module_exec uptime |sed "s/us\.*$//g" | sed "s/,\.*$//g"
module_description Host Up time
module_end
',1,'','Uptime','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (31,5,'module_begin
module_name CPU %
module_type generic_data
module_cpuusage all
module_unit %
module_end
',1,'','CPU %','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (32,5,'module_begin
module_name CPU User
module_type generic_data
module_exec vmstat 1 2 | tail -1 | awk '{ print $(16) }'
module_description % of User CPU
module_unit %
module_end
',1,'','CPU User','%',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (33,5,'module_begin
module_name Load Average
module_type generic_data
module_exec uptime | awk '{print $(NF-2)}' | tr -d ','
module_description System load average
module_end
',1,'','Load Average','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (34,5,'module_begin
module_name Memory Free %
module_type generic_data
module_exec echo "" > /tmp/hpvm_toptest; top -d 1 -f /tmp/hpvm_toptest 2>/dev/null 1>/dev/null; cat /tmp/hpvm_toptest | grep -i Memory | head -1 | awk '{print $8/($2+$5) * 100}'
module_end
',1,'','Memory Free %','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (35,5,'module_begin
module_name Service sshd status
module_type generic_proc
module_exec ps -ef | grep -v grep | grep "/opt/ssh/sbin/sshd" | wc -l
module_description SSH running
module_end
',2,'','Service sshd status','',0,0,1,'',0,'','','','',3,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (36,5,'module_begin
module_name Total processes
module_type generic_data
module_exec echo $(((`ps -e | wc -l`)-1)) | tr -d “\n”
module_description Total processes
module_end
',1,'','Total processes','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (37,5,'module_begin
module_name Uptime
module_type generic_data_string
module_exec uptime |sed s/us\.*$//g | sed s/,\.*$//g
module_description Host Up time
module_end
',3,'','Uptime','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (38,5,'module_begin
module_name Zombie processes
module_type generic_data
module_exec ps -elf | awk '$2~/'Z'/{print $2}' | wc -l | tr -d "\n"
module_description Zombie processes
module_end
',1,'','Zombie processes','',0,0,1,'',0,'','','','',4,1,1,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (39,6,'',6,'','Host Alive','',0,0,300,'',0,'','','','',2,1,2,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (40,6,'',7,'','Host Latency','',0,0,300,'',0,'','','','',2,1,2,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,80.00,149.00,'',150.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (41,6,'',2,'Checks if port 161 is open and reachable for Pandora FMS server.','SNMP Available','',0,0,300,'',0,'','','','',1,1,4,0,0,'','','_field1_;Target IP;;_address_--_field2_;Port;;161',3,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *','{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Target IP\",\"help\":\"\",\"value\":\"_address_\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Port\",\"help\":\"\",\"value\":\"161\"}}','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+INSERT INTO `tpolicy_modules` VALUES (42,6,'',9,'Checks if port 22 is open and reachable for Pandora FMS server.','SSH Reachable','',0,0,300,'',22,'','','','',2,1,2,0,0,NULL,NULL,NULL,0,0.000000000000000,0,0,0,'',1,0.00,0.00,'',0.00,0.00,'',0,NULL,NULL,NULL,0,0,0,'','','',0,0,0,0,0,'* * * * *',NULL,'{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
INSERT INTO `tpolicy_plugins` VALUES (1,1,'cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df_percent_used.vbs"',0);
INSERT INTO `tpolicy_plugins` VALUES (2,1,'cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\mem_percent_used.vbs"',0);
diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm
index 3347eca41a..219114f7c2 100644
--- a/pandora_server/lib/PandoraFMS/Core.pm
+++ b/pandora_server/lib/PandoraFMS/Core.pm
@@ -1945,7 +1945,7 @@ sub pandora_process_module ($$$$$$$$$;$) {
}
# Get new status
- my $new_status = get_module_status ($processed_data, $module, $module_type);
+ my $new_status = get_module_status ($processed_data, $module, $module_type, $last_data_value);
my $last_status_change = $agent_status->{'last_status_change'};
# Set the last status change macro. Even if its value changes later, whe want the original value.
@@ -4793,8 +4793,8 @@ sub log4x_get_severity_num($) {
##########################################################################
# Returns the status of the module: 0 (NORMAL), 1 (CRITICAL), 2 (WARNING).
##########################################################################
-sub get_module_status ($$$) {
- my ($data, $module, $module_type) = @_;
+sub get_module_status ($$$$) {
+ my ($data, $module, $module_type, $last_data_value) = @_;
my ($critical_min, $critical_max, $warning_min, $warning_max) =
($module->{'min_critical'}, $module->{'max_critical'}, $module->{'min_warning'}, $module->{'max_warning'});
my ($critical_str, $warning_str) = ($module->{'str_critical'}, $module->{'str_warning'});
@@ -4811,6 +4811,42 @@ sub get_module_status ($$$) {
$critical_str = (defined ($critical_str) && valid_regex ($critical_str) == 1) ? safe_output($critical_str) : '';
$warning_str = (defined ($warning_str) && valid_regex ($warning_str) == 1) ? safe_output($warning_str) : '';
+ # Adjust percentage max/min values.
+ if ($module->{'percentage_critical'} == 1) {
+ if ($critical_max != 0 && $critical_min != 0) {
+ $critical_max = $last_data_value * (1 + $critical_max / 100.0);
+ $critical_min = $last_data_value * (1 - $critical_min / 100.0);
+ $module->{'critical_inverse'} = 1;
+ }
+ elsif ($critical_min != 0) {
+ $critical_max = $last_data_value * (1 - $critical_min / 100.0);
+ $critical_min = 0;
+ $module->{'critical_inverse'} = 0;
+ }
+ elsif ($critical_max != 0) {
+ $critical_min = $last_data_value * (1 + $critical_max / 100.0);
+ $critical_max = 0;
+ $module->{'critical_inverse'} = 0;
+ }
+ }
+ if ($module->{'percentage_warning'} == 1) {
+ if ($warning_max != 0 && $warning_min != 0) {
+ $warning_max = $last_data_value * (1 + $warning_max / 100.0);
+ $warning_min = $last_data_value * (1 - $warning_min / 100.0);
+ $module->{'warning_inverse'} = 1;
+ }
+ elsif ($warning_min != 0) {
+ $warning_max = $last_data_value * (1 - $warning_min / 100.0);
+ $warning_min = 0;
+ $module->{'warning_inverse'} = 0;
+ }
+ elsif ($warning_max != 0) {
+ $warning_min = $last_data_value * (1 + $warning_max / 100.0);
+ $warning_max = 0;
+ $module->{'warning_inverse'} = 0;
+ }
+ }
+
if (($module_type =~ m/_proc$/ || $module_type =~ /web_analysis/) && ($critical_min eq $critical_max)) {
($critical_min, $critical_max) = (0, 1);
}