diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 3343300263..c702a48c9a 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.758.1-211202 +Version: 7.0NG.758.1-211207 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 75c10e62a9..a63da23a2d 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.758.1-211202" +pandora_version="7.0NG.758.1-211207" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 5191dfd441..93d9273cbd 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1015,7 +1015,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.758.1'; -use constant AGENT_BUILD => '211202'; +use constant AGENT_BUILD => '211207'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 7a368a719d..8ad4e37a1b 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 7.0NG.758.1 -%define release 211202 +%define release 211207 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 9ac41f09cf..e01fef3ae4 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 7.0NG.758.1 -%define release 211202 +%define release 211207 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 848ba856f3..9845156651 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.758.1" -PI_BUILD="211202" +PI_BUILD="211207" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 573dd22140..e601f56be2 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{211202} +{211207} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index fd2590629e..51c9616f07 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.758.1 Build 211202") +#define PANDORA_VERSION ("7.0NG.758.1 Build 211207") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 2922e23115..2a472c876f 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.758.1(Build 211202))" + VALUE "ProductVersion", "(7.0NG.758.1(Build 211207))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 289fe3e3f6..f80f9658dd 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.758.1-211202 +Version: 7.0NG.758.1-211207 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index fb9cce6203..554868af7e 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.758.1-211202" +pandora_version="7.0NG.758.1-211207" package_pear=0 package_pandora=1 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) { ).'</span>'; } - $table_simple->data[2][1] .= '<br /><em>'.__('Inverse interval').'</em>'; - $table_simple->data[2][1] .= html_print_checkbox('warning_inverse', 1, $warning_inverse, true, $disabledBecauseInPolicy); +$table_simple->data[2][1] .= '<div id="warning_inverse"><em>'.__('Inverse interval').'</em>'; +$table_simple->data[2][1] .= html_print_checkbox('warning_inverse', 1, $warning_inverse, true, $disabledBecauseInPolicy); +$table_simple->data[2][1] .= '</div>'; + +if (modules_is_string_type($id_module_type) === false) { + $table_simple->data[2][1] .= '<div id="percentage_warning"><em>'.__('Percentage').'</em>'; + $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] .= '</div>'; +} if (!modules_is_string_type($id_module_type) || $edit) { $table_simple->data[2][2] = '<svg id="svg_dinamic" width="500" height="300"> </svg>'; @@ -509,8 +517,17 @@ if (modules_is_string_type($id_module_type) || $edit) { ).'</span>'; } -$table_simple->data[3][1] .= '<br /><em>'.__('Inverse interval').'</em>'; +$table_simple->data[3][1] .= '<div id="critical_inverse"><em>'.__('Inverse interval').'</em>'; $table_simple->data[3][1] .= html_print_checkbox('critical_inverse', 1, $critical_inverse, true, $disabledBecauseInPolicy); +$table_simple->data[3][1] .= '</div>'; + + +if (modules_is_string_type($id_module_type) === false) { + $table_simple->data[3][1] .= '<div id="percentage_critical" /><em>'.__('Percentage').'</em>'; + $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] .= '</div>'; +} $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 = '<?php echo __('Please introduce a maximum warning higher than the minimun warning'); ?>'; var message_error_critical = '<?php echo __('Please introduce a maximum critical higher than the minimun critical'); ?>'; + var message_error_percentage = '<?php echo __('Please introduce a positive percentage value'); ?>'; + + + //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 width="100%">'; ); $table->data['edit1'][1] .= '</td>'; $table->data['edit1'][1] .= '</tr>'; + $table->data['edit1'][1] .= '<tr>'; + $table->data['edit1'][1] .= '<td>'; + $table->data['edit1'][1] .= '<em>'.__('Percentage').'</em>'; + $table->data['edit1'][1] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true); + + $table->data['edit1'][1] .= '</td>'; + $table->data['edit1'][1] .= '<td align="right">'; + $table->data['edit1'][1] .= html_print_select( + [ + '' => __('No change'), + '1' => __('Yes'), + '0' => __('No'), + ], + 'percentage_warning', + '', + '', + '', + '', + true + ); + $table->data['edit1'][1] .= '</td>'; + $table->data['edit1'][1] .= '</tr>'; $table->data['edit1'][1] .= '</table>'; $table->data['edit1'][2] = __('Critical status'); @@ -682,6 +704,28 @@ $table->data['edit1'][1] = '<table width="100%">'; ); $table->data['edit1'][3] .= '</td>'; $table->data['edit1'][3] .= '</tr>'; + + $table->data['edit1'][3] .= '<tr>'; + $table->data['edit1'][3] .= '<td>'; + $table->data['edit1'][3] .= '<em>'.__('Percentage').'</em>'; + $table->data['edit1'][3] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true); + $table->data['edit1'][3] .= '</td>'; + $table->data['edit1'][3] .= '<td align="right">'; + $table->data['edit1'][3] .= html_print_select( + [ + '' => __('No change'), + '1' => __('Yes'), + '0' => __('No'), + ], + 'percentage_critical', + '', + '', + '', + '', + true + ); + $table->data['edit1'][3] .= '</td>'; + $table->data['edit1'][3] .= '</tr>'; $table->data['edit1'][3] .= '</table>'; $table->data['edit1_1'][0] = '<b>'.__('Description').'</b>'; @@ -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(); + } + }); + }); <?php diff --git a/pandora_console/godmode/modules/manage_network_components_form_common.php b/pandora_console/godmode/modules/manage_network_components_form_common.php index d6d6a3ed46..c924eefb2f 100644 --- a/pandora_console/godmode/modules/manage_network_components_form_common.php +++ b/pandora_console/godmode/modules/manage_network_components_form_common.php @@ -13,6 +13,8 @@ // GNU General Public License for more details. global $config; require_once $config['homedir'].'/include/graphs/functions_d3.php'; +include_javascript_d3(); + if (! check_acl($config['id_user'], 0, 'PM') && ! check_acl($config['id_user'], 0, 'AW')) { db_pandora_audit( @@ -185,8 +187,14 @@ $table->data[4][1] .= html_print_input_text( 1024, true ).'</span>'; -$table->data[4][1] .= '<br /><em>'.__('Inverse interval').'</em>'; +$table->data[4][1] .= '<div id="warning_inverse"><em>'.__('Inverse interval').'</em>'; $table->data[4][1] .= html_print_checkbox('warning_inverse', 1, $warning_inverse, true); +$table->data[4][1] .= '</div>'; + +$table->data[4][1] .= '<div id="percentage_warning"><em>'.__('Percentage').'</em>'; +$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] .= '</div>'; $table->data[4][2] = '<svg id="svg_dinamic" width="500" height="300"> </svg>'; $table->colspan[4][2] = 2; @@ -220,8 +228,15 @@ $table->data[5][1] .= html_print_input_text( 1024, true ).'</span>'; -$table->data[5][1] .= '<br /><em>'.__('Inverse interval').'</em>'; +$table->data[5][1] .= '<div id="critical_inverse"><em>'.__('Inverse interval').'</em>'; $table->data[5][1] .= html_print_checkbox('critical_inverse', 1, $critical_inverse, true); +$table->data[5][1] .= '</div>'; + +$table->data[5][1] .= '<div id="percentage_critical"><em>'.__('Percentage').'</em>'; +$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] .= '</div>'; + $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 = '<?php echo __('Please introduce a maximum warning higher than the minimun warning'); ?>'; var message_error_critical = '<?php echo __('Please introduce a maximum critical higher than the minimun critical'); ?>'; + var message_error_percentage = '<?php echo __('Please introduce a positive percentage value'); ?>'; + + + //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] .= '</span>'; $data[1] .= '<span class="string_values" id="warning_string_values"><em>'.__('String').' </em> '; $data[1] .= html_print_input_text('str_warning', $str_warning, '', 5, 1024, true).'</span>'; // Warning inverse values. -$data[1] .= '<br /><em>'.__('Inverse interval').'</em> '; +$data[1] .= '<div id="warning_inverse"><em>'.__('Inverse interval').'</em> '; $data[1] .= html_print_checkbox('warning_inverse', 1, $warning_inverse, true); +$data[1] .= '</div>'; + +$data[1] .= '<div id="percentage_warning"><em>'.__('Percentage').'</em> '; +$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] .= '</div>'; $data[2] = '<svg id="svg_dinamic" width="500" height="300"> </svg>'; $table->colspan['warning-svg-row'][2] = 2; @@ -425,8 +431,15 @@ $data[1] .= '</span>'; $data[1] .= '<span class="string_values" id="critical_string_values"><em>'.__('String').' </em> '; $data[1] .= html_print_input_text('str_critical', $str_critical, '', 5, 1024, true).'</span>'; // Critical inverse values. -$data[1] .= '<br /><em>'.__('Inverse interval').'</em> '; +$data[1] .= '<div id="critical_inverse"><em>'.__('Inverse interval').'</em> '; $data[1] .= html_print_checkbox('critical_inverse', 1, $critical_inverse, true); +$data[1] .= '</div>'; + +$data[1] .= '<Ddiv id="percentage_critical"><em>'.__('Percentage').'</em> '; +$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] .= '</div>'; + 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 = '<span class=\'font_w300 mrgn_lft_0.8em\'>Min.</span>'; - $subheaders .= '<span class=\'font_w300 mrgn_lft_1.6em\'>Max.</span>'; - $subheaders .= '<span class=\'font_w300 mrgn_lft_2em\'>Inv.</span>'; + $subheaders = '<span class=\'wizard-colum-levels font_w300 mrgn_lft_0.8em\'>Min.</span>'; + $subheaders .= '<span class=\'wizard-colum-levels font_w300 mrgn_lft_1.6em\'>Max.</span>'; + $subheaders .= '<span class=\'wizard-colum-levels font_w300 mrgn_lft_2em\'>Inv.</span>'; + $subheaders .= '<span class=\'wizard-colum-levels font_w300 mrgn_lft_2em\'>%.</span>'; + // 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); + } + } + + } </script> <?php $str = ob_get_clean(); diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 94506faddd..8d481c2f15 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC211202'; +$build_version = 'PC211207'; $pandora_version = 'v7.0NG.758.1'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/include/functions_network_components.php b/pandora_console/include/functions_network_components.php index d85f6d4251..25542ec4bf 100644 --- a/pandora_console/include/functions_network_components.php +++ b/pandora_console/include/functions_network_components.php @@ -532,6 +532,8 @@ function network_components_create_module_from_network_component($id_network_com 'min_ff_event', 'critical_inverse', 'warning_inverse', + 'percentage_warning', + 'percentage_critical', 'module_critical_instructions', 'module_warning_instructions', 'module_unknown_instructions', diff --git a/pandora_console/include/functions_snmp_browser.php b/pandora_console/include/functions_snmp_browser.php index 10bd84ae14..bc0d48137f 100644 --- a/pandora_console/include/functions_snmp_browser.php +++ b/pandora_console/include/functions_snmp_browser.php @@ -1279,6 +1279,8 @@ function snmp_browser_create_modules_snmp( 'unknown_instructions' => '', '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/install.php b/pandora_console/install.php index 89b8ca722b..aa9d082d38 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -129,7 +129,7 @@ <div style='height: 10px'> <?php $version = '7.0NG.758.1'; - $build = '211202'; + $build = '211207'; $banner = "v$version Build $build"; error_reporting(0); diff --git a/pandora_console/pandora_console.redhat.spec b/pandora_console/pandora_console.redhat.spec index 780e1e8503..1ed412f9ba 100644 --- a/pandora_console/pandora_console.redhat.spec +++ b/pandora_console/pandora_console.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_console %define version 7.0NG.758.1 -%define release 211202 +%define release 211207 # User and Group under which Apache is running %define httpd_name httpd diff --git a/pandora_console/pandora_console.rhel7.spec b/pandora_console/pandora_console.rhel7.spec index 0d2c34b370..0d95bdfb03 100644 --- a/pandora_console/pandora_console.rhel7.spec +++ b/pandora_console/pandora_console.rhel7.spec @@ -3,7 +3,7 @@ # %define name pandorafms_console %define version 7.0NG.758.1 -%define release 211202 +%define release 211207 # User and Group under which Apache is running %define httpd_name httpd diff --git a/pandora_console/pandora_console.spec b/pandora_console/pandora_console.spec index 07d457ca2f..2c25e3427a 100644 --- a/pandora_console/pandora_console.spec +++ b/pandora_console/pandora_console.spec @@ -3,7 +3,7 @@ # %define name pandorafms_console %define version 7.0NG.758.1 -%define release 211202 +%define release 211207 %define httpd_name httpd # User and Group under which Apache is running %define httpd_name apache2 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/DEBIAN/control b/pandora_server/DEBIAN/control index a3e8419c79..f769afeb9f 100644 --- a/pandora_server/DEBIAN/control +++ b/pandora_server/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-server -Version: 7.0NG.758.1-211202 +Version: 7.0NG.758.1-211207 Architecture: all Priority: optional Section: admin diff --git a/pandora_server/DEBIAN/make_deb_package.sh b/pandora_server/DEBIAN/make_deb_package.sh index 02b93cb2aa..1932759e97 100644 --- a/pandora_server/DEBIAN/make_deb_package.sh +++ b/pandora_server/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.758.1-211202" +pandora_version="7.0NG.758.1-211207" package_cpan=0 package_pandora=1 diff --git a/pandora_server/lib/PandoraFMS/Config.pm b/pandora_server/lib/PandoraFMS/Config.pm index 75c76d79f7..4fdad1b782 100644 --- a/pandora_server/lib/PandoraFMS/Config.pm +++ b/pandora_server/lib/PandoraFMS/Config.pm @@ -46,7 +46,7 @@ our @EXPORT = qw( # version: Defines actual version of Pandora Server for this module only my $pandora_version = "7.0NG.758.1"; -my $pandora_build = "211202"; +my $pandora_build = "211207"; our $VERSION = $pandora_version." ".$pandora_build; # Setup hash diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index 3347eca41a..1f21390b0f 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. @@ -4525,20 +4525,21 @@ sub on_demand_macro($$$$$$;$) { return(defined($field_value)) ? $field_value : ''; } elsif ($macro =~ /_moduledata_(\S+)_/) { my $field_number = $1; - + my $id_mod = get_db_value ($dbh, 'SELECT id_agente_modulo FROM tagente_modulo WHERE id_agente = ? AND nombre = ?', $module->{'id_agente'}, $field_number); - my $type_mod = get_db_value ($dbh, 'SELECT id_tipo_modulo FROM tagente_modulo WHERE id_agente_modulo = ?', $id_mod); - my $unit_mod = get_db_value ($dbh, 'SELECT unit FROM tagente_modulo WHERE id_agente_modulo = ?', $id_mod); + my $module_data = get_db_single_row ($dbh, 'SELECT id_tipo_modulo, unit FROM tagente_modulo WHERE id_agente_modulo = ?', $id_mod); + my $type_mod = $module_data->{'id_tipo_modulo'}; + my $unit_mod = $module_data->{'unit'}; my $field_value = ""; if (defined($type_mod) - && ($type_mod eq 3 || $type_mod eq 23|| $type_mod eq 17 || $type_mod eq 10 || $type_mod eq 33 ) + && ($type_mod eq 3 || $type_mod eq 10 || $type_mod eq 17 || $type_mod eq 23 || $type_mod eq 33 || $type_mod eq 36) ) { - $field_value = get_db_value($dbh, 'SELECT datos FROM tagente_datos_string where id_agente_modulo = ? order by utimestamp desc limit 1', $id_mod); + $field_value = get_db_value($dbh, 'SELECT datos FROM tagente_estado WHERE id_agente_modulo = ?', $id_mod); } else{ - $field_value = get_db_value($dbh, 'SELECT datos FROM tagente_datos where id_agente_modulo = ? order by utimestamp desc limit 1', $id_mod); - + $field_value = get_db_value($dbh, 'SELECT datos FROM tagente_estado WHERE id_agente_modulo = ?', $id_mod); + my $data_precision = $pa_config->{'graph_precision'}; $field_value = sprintf("%.$data_precision" . "f", $field_value); $field_value =~ s/0+$//; @@ -4793,8 +4794,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 +4812,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); } diff --git a/pandora_server/lib/PandoraFMS/PluginTools.pm b/pandora_server/lib/PandoraFMS/PluginTools.pm index ae81cf1512..6dd2cca0d2 100644 --- a/pandora_server/lib/PandoraFMS/PluginTools.pm +++ b/pandora_server/lib/PandoraFMS/PluginTools.pm @@ -34,7 +34,7 @@ our @ISA = qw(Exporter); # version: Defines actual version of Pandora Server for this module only my $pandora_version = "7.0NG.758.1"; -my $pandora_build = "211202"; +my $pandora_build = "211207"; our $VERSION = $pandora_version." ".$pandora_build; our %EXPORT_TAGS = ( 'all' => [ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index add1a657e4..0f24a658d6 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_server %define version 7.0NG.758.1 -%define release 211202 +%define release 211207 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index bec3a1a955..e5edbb43d0 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -3,7 +3,7 @@ # %define name pandorafms_server %define version 7.0NG.758.1 -%define release 211202 +%define release 211207 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 2c0b2d6447..7fc10138d6 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.758.1" -PI_BUILD="211202" +PI_BUILD="211207" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 23987ea7f8..324410f0c0 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.758.1 Build 211202"; +my $version = "7.0NG.758.1 Build 211207"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 5141f28aea..e957384fa4 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.758.1 Build 211202"; +my $version = "7.0NG.758.1 Build 211207"; # save program name for logging my $progname = basename($0);