diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 4a10fb7ac8..15a3c8aa3a 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.773.3-230907 +Version: 7.0NG.773.3-230918 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 9304a38d93..19d297d948 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.773.3-230907" +pandora_version="7.0NG.773.3-230918" 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 f8fdb985c4..5037570912 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.773.3'; -use constant AGENT_BUILD => '230907'; +use constant AGENT_BUILD => '230918'; # 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 cf506511f5..6677779661 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.773.3 -%define release 230907 +%define release 230918 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.redhat_bin.spec b/pandora_agents/unix/pandora_agent.redhat_bin.spec index 7c7373124e..a75d35cfb9 100644 --- a/pandora_agents/unix/pandora_agent.redhat_bin.spec +++ b/pandora_agents/unix/pandora_agent.redhat_bin.spec @@ -5,7 +5,7 @@ %define name pandorafms_agent_linux_bin %define source_name pandorafms_agent_linux %define version 7.0NG.773.3 -%define release 230907 +%define release 230918 Summary: Pandora FMS Linux agent, binary version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 40ecbc015c..e707ff8128 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.773.3 -%define release 230907 +%define release 230918 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 60dd5f2a43..b271ec08e6 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.773.3" -PI_BUILD="230907" +PI_BUILD="230918" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 5ec92eec40..ab92079beb 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230907} +{230918} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index c9ada13790..ef38786179 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.773.3 Build 230907") +#define PANDORA_VERSION ("7.0NG.773.3 Build 230918") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 5c694f8a90..4aef0d0f2a 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Pandora FMS" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.773.3(Build 230907))" + VALUE "ProductVersion", "(7.0NG.773.3(Build 230918))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 658070ae58..929a9d30a6 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.773.3-230907 +Version: 7.0NG.773.3-230918 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 ff558a0de4..9326b45e98 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.773.3-230907" +pandora_version="7.0NG.773.3-230918" package_pear=0 package_pandora=1 diff --git a/pandora_console/extras/mr/66.sql b/pandora_console/extras/mr/66.sql index e0652e13a3..cc37eafd1a 100644 --- a/pandora_console/extras/mr/66.sql +++ b/pandora_console/extras/mr/66.sql @@ -1,5 +1,6 @@ START TRANSACTION; +ALTER TABLE tevent_filter ADD private_filter_user text NULL; ALTER TABLE `ttrap` ADD COLUMN `utimestamp` INT UNSIGNED NOT NULL DEFAULT 0; UPDATE ttrap SET utimestamp=UNIX_TIMESTAMP(timestamp); @@ -44,6 +45,8 @@ ADD COLUMN `time_init` VARCHAR(45) NULL AFTER `date_init`, ADD COLUMN `date_end` VARCHAR(45) NULL AFTER `time_init`, ADD COLUMN `time_end` VARCHAR(45) NULL AFTER `date_end`; +UPDATE `tdiscovery_apps` SET `version` = '1.1' WHERE `short_name` = 'pandorafms.vmware'; + ALTER TABLE `treport_content` ADD COLUMN `cat_security_hardening` INT NOT NULL DEFAULT 0; ALTER TABLE `treport_content` ADD COLUMN `ignore_skipped` INT NOT NULL DEFAULT 0; ALTER TABLE `treport_content` ADD COLUMN `status_of_check` TINYTEXT; diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php index 701ce4894b..de42b8b6c3 100644 --- a/pandora_console/godmode/agentes/configurar_agente.php +++ b/pandora_console/godmode/agentes/configurar_agente.php @@ -437,7 +437,7 @@ if ($id_agente) { [ 'href' => 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente='.$id_agente, 'content' => html_print_image( - 'images/alert@svg.svg', + 'images/add-alert.svg', true, [ 'title' => __('Alerts'), diff --git a/pandora_console/godmode/alerts/alert_list.list.php b/pandora_console/godmode/alerts/alert_list.list.php index 5dc0c78019..fa848c845d 100644 --- a/pandora_console/godmode/alerts/alert_list.list.php +++ b/pandora_console/godmode/alerts/alert_list.list.php @@ -811,7 +811,7 @@ foreach ($simple_alerts as $alert) { $data[3] .= ''; $data[3] .= ''.html_print_label_input_block( __('Agent'), - ui_print_truncate_text($alias, 'agent_small', false, true, true, '[…]') + ui_print_truncate_text($alias, 'agent_medium', false, true, true, '[…]') ).''; $data[3] .= ''.html_print_label_input_block( __('Module'), diff --git a/pandora_console/godmode/events/event_edit_filter.php b/pandora_console/godmode/events/event_edit_filter.php index e230055f1e..113c156df3 100644 --- a/pandora_console/godmode/events/event_edit_filter.php +++ b/pandora_console/godmode/events/event_edit_filter.php @@ -61,6 +61,9 @@ if ($id) { $filter = events_get_event_filter($id); $id_group_filter = $filter['id_group_filter']; $id_group = $filter['id_group']; + // Get owner user private filter. + $private_filter = ($filter['private_filter_user'] === null || $filter['private_filter_user'] === '') ? 0 : 1; + $private_filter_user = $filter['private_filter_user']; $id_name = $filter['id_name']; $event_type = $filter['event_type']; $severity = explode(',', $filter['severity']); @@ -113,6 +116,7 @@ if ($id) { $server_id = ($filter['server_id'] ?? ''); } else { $id_group = ''; + $private_filter = 0; $id_group_filter = ''; $id_name = ''; $event_type = ''; @@ -167,8 +171,8 @@ if ($update || $create) { $id_user_ack = get_parameter('id_user_ack', ''); $owner_user = get_parameter('owner_user', ''); $group_rep = get_parameter('group_rep', ''); - $date_from = get_parameter('date_from', ''); - $date_to = get_parameter('date_to', ''); + $date_from = get_parameter('date_from', '0000-00-00'); + $date_to = get_parameter('date_to', '0000-00-00'); $source = get_parameter('source'); $id_extra = get_parameter('id_extra'); $user_comment = get_parameter('user_comment'); @@ -192,6 +196,16 @@ if ($update || $create) { $server_id = implode(',', $servers_array); } + // Get private filter from user. + $private_filter = get_parameter_switch('private_filter_event', 0); + if ((int) $private_filter === 1 && $create) { + $private_filter_user = $_SESSION['id_usuario']; + } else if ((int) $private_filter === 1 && $update) { + $private_filter_user = ($private_filter_user === $_SESSION['id_usuario']) ? $private_filter_user : $_SESSION['id_usuario']; + } else if ((int) $private_filter === 0) { + $private_filter_user = null; + } + $values = [ 'id_name' => $id_name, 'id_group_filter' => $id_group_filter, @@ -222,6 +236,7 @@ if ($update || $create) { 'custom_data' => $custom_data, 'custom_data_filter_type' => $custom_data_filter_type, 'server_id' => $server_id, + 'private_filter_user' => $private_filter_user, ]; $severity = explode(',', $severity); @@ -293,6 +308,17 @@ $table->data[0][0] = html_print_label_input_block( false, '', 'w100p' + ).html_print_label_input_block( + __('Private'), + html_print_checkbox_switch( + 'private_filter_event', + $private_filter, + $private_filter, + true, + false, + 'checked_slide_events(this);', + true + ) ) ); diff --git a/pandora_console/godmode/events/event_filter.php b/pandora_console/godmode/events/event_filter.php index 533bfe1190..c4f1860e6f 100644 --- a/pandora_console/godmode/events/event_filter.php +++ b/pandora_console/godmode/events/event_filter.php @@ -133,6 +133,18 @@ $filters = db_get_all_rows_sql($sql); if ($filters === false) { $filters = []; +} else { + foreach ($filters as $key => $filter) { + $permission = users_is_admin($config['id_user']); + // Validate permission and private filter user. + if ($permission || $filter['private_filter_user'] === $config['id_user']) { + if ($filter['private_filter_user'] !== null) { + $filters[$key]['id_name'] = $filter['id_name'].' (P)'; + } + } else if ($filter['private_filter_user'] !== null) { + unset($filters[$key]); + } + } } $table = new stdClass(); diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php index 455a4fd7fe..06279cd580 100755 --- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php +++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php @@ -1327,36 +1327,58 @@ $class = 'databox filters'; } ?> + + + + + html_print_select( + $servers, + 'combo_server_all', + $server_name, + '', + __('All nodes'), + 'all' + ); + ?> + + + + + - $server) { - $server_ids[$server['id']] = $server['server_name']; - } + $server) { + $server_ids[$server['id']] = $server['server_name']; + } - html_print_select( - $server_ids, - 'server_multiple[]', - $server_multiple, - '', - '', - 0, - false, - true - ); - ?> + html_print_select( + $server_ids, + 'server_multiple[]', + $server_multiple, + '', + '', + 0, + false, + true + ); + ?> + } + ?> @@ -6711,6 +6733,7 @@ function chooseType() { $("#row_alert_actions").hide(); $("#row_servers").hide(); $("#row_servers_all_opt").hide(); + $("#row_servers_all").hide(); $("#row_multiple_servers").hide(); $("#row_sort").hide(); $("#row_date").hide(); @@ -7278,7 +7301,7 @@ function chooseType() { case 'group_report': $("#row_group").show(); - $("#row_servers_all_opt").show(); + $("#row_servers_all").show(); $("#row_description").show(); $("#row_historical_db_check").hide(); break; diff --git a/pandora_console/godmode/reporting/reporting_builder.php b/pandora_console/godmode/reporting/reporting_builder.php index a2bd8fd6a4..a294a7b939 100755 --- a/pandora_console/godmode/reporting/reporting_builder.php +++ b/pandora_console/godmode/reporting/reporting_builder.php @@ -1986,7 +1986,7 @@ switch ($action) { break; case 'group_report': - $values['server_name'] = get_parameter('combo_server'); + $values['server_name'] = get_parameter('combo_server_all'); $good_format = true; break; @@ -2907,7 +2907,7 @@ switch ($action) { break; case 'group_report': - $values['server_name'] = get_parameter('combo_server'); + $values['server_name'] = get_parameter('combo_server_all'); $good_format = true; break; diff --git a/pandora_console/godmode/setup/setup_visuals.php b/pandora_console/godmode/setup/setup_visuals.php index 68f2e1dfe2..6379f86d3a 100755 --- a/pandora_console/godmode/setup/setup_visuals.php +++ b/pandora_console/godmode/setup/setup_visuals.php @@ -1025,6 +1025,27 @@ $table_font->data[$row][] = html_print_label_input_block( ); $row++; +$table_font->data[$row][] = html_print_label_input_block( + __('Truncate agent text at end'), + html_print_checkbox_switch( + 'truncate_agent_at_end', + 1, + $config['truncate_agent_at_end'], + true + ) +); + +$table_font->data[$row][] = html_print_label_input_block( + __('Truncate module text at end'), + html_print_checkbox_switch( + 'truncate_module_at_end', + 1, + $config['truncate_module_at_end'], + true + ) +); +$row++; + $table_font->data[$row][] = html_print_label_input_block( __('Agent size text'), html_print_div( diff --git a/pandora_console/godmode/users/user_management.php b/pandora_console/godmode/users/user_management.php index 39995d52c2..0675c39be5 100644 --- a/pandora_console/godmode/users/user_management.php +++ b/pandora_console/godmode/users/user_management.php @@ -607,16 +607,20 @@ if (is_metaconsole() === true) { } } +$performance_variables_control = (array) json_decode(io_safe_output($config['performance_variables_control'])); + $userManagementTable->rowclass['captions_blocksize_eventfilter'] = 'field_half_width'; $userManagementTable->rowclass['fields_blocksize_eventfilter'] = 'field_half_width'; $userManagementTable->data['captions_blocksize_eventfilter'][0] = __('Block size for pagination'); -$userManagementTable->data['fields_blocksize_eventfilter'][0] = html_print_input_text( - 'block_size', - $user_info['block_size'], - '', - 5, - 5, - true +$userManagementTable->data['fields_blocksize_eventfilter'][0] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['block_size']->max, + 'name' => 'block_size', + 'value' => $user_info['block_size'], + 'return' => true, + ] ); if (is_metaconsole() === true && empty($user_info['metaconsole_default_event_filter']) !== true) { diff --git a/pandora_console/images/add-alert.svg b/pandora_console/images/add-alert.svg new file mode 100755 index 0000000000..3dec357543 --- /dev/null +++ b/pandora_console/images/add-alert.svg @@ -0,0 +1,7 @@ + + + Add alert@svg + + + + \ No newline at end of file diff --git a/pandora_console/include/ajax/alert_list.ajax.php b/pandora_console/include/ajax/alert_list.ajax.php index 2fbda5d75c..d742f952e8 100644 --- a/pandora_console/include/ajax/alert_list.ajax.php +++ b/pandora_console/include/ajax/alert_list.ajax.php @@ -35,7 +35,6 @@ $disable_alert = (bool) get_parameter('disable_alert'); $enable_alert = (bool) get_parameter('enable_alert'); $get_actions_module = (bool) get_parameter('get_actions_module'); $show_update_action_menu = (bool) get_parameter('show_update_action_menu'); -$get_agent_alerts_agent_view = (bool) get_parameter('get_agent_alerts_agent_view'); $resize_event_week = (bool) get_parameter('resize_event_week'); $get_agent_alerts_datatable = (bool) get_parameter('get_agent_alerts_datatable', 0); $alert_validate = (bool) get_parameter('alert_validate', false); @@ -91,270 +90,6 @@ if ($get_agent_alerts_simple) { } -if ($get_agent_alerts_agent_view) { - include_once $config['homedir'].'/include/functions_agents.php'; - include_once $config['homedir'].'/operation/agentes/alerts_status.functions.php'; - include_once $config['homedir'].'/include/functions_users.php'; - - $agent_a = check_acl($config['id_user'], 0, 'AR'); - $agent_w = check_acl($config['id_user'], 0, 'AW'); - $access = ($agent_a == true) ? 'AR' : (($agent_w == true) ? 'AW' : 'AR'); - - $free_search_alert = get_parameter('free_search_alert', ''); - $all_groups = json_decode(io_safe_output(get_parameter('all_groups'))); - $idAgent = (int) get_parameter('id_agent'); - $filter = get_parameter('filter', 'all_enabled'); - $url = 'index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$idAgent; - - $sortField = get_parameter('sort_field'); - $sort = get_parameter('sort', 'none'); - $selected = true; - $selectModuleUp = false; - $selectModuleDown = false; - $selectTemplateUp = false; - $selectTemplateDown = false; - $selectLastFiredUp = false; - $selectLastFiredDown = false; - switch ($sortField) { - case 'module': - switch ($sort) { - case 'up': - $selectModuleUp = $selected; - $order = [ - 'field' => 'agent_module_name', - 'order' => 'ASC', - ]; - break; - - case 'down': - $selectModuleDown = $selected; - $order = [ - 'field' => 'agent_module_name', - 'order' => 'DESC', - ]; - break; - } - break; - - case 'template': - switch ($sort) { - case 'up': - $selectTemplateUp = $selected; - $order = [ - 'field' => 'template_name', - 'order' => 'ASC', - ]; - break; - - case 'down': - $selectTemplateDown = $selected; - $order = [ - 'field' => 'template_name', - 'order' => 'DESC', - ]; - break; - } - break; - - case 'last_fired': - switch ($sort) { - case 'up': - $selectLastFiredUp = $selected; - $order = [ - 'field' => 'last_fired', - 'order' => 'ASC', - ]; - break; - - case 'down': - $selectLastFiredDown = $selected; - $order = [ - 'field' => 'last_fired', - 'order' => 'DESC', - ]; - break; - } - break; - - default: - $selectDisabledUp = ''; - $selectDisabledDown = ''; - $selectModuleUp = $selected; - $selectModuleDown = false; - $selectTemplateUp = false; - $selectTemplateDown = false; - $selectLastFiredUp = false; - $selectLastFiredDown = false; - $order = [ - 'field' => 'agent_module_name', - 'order' => 'ASC', - ]; - break; - } - - if ($free_search_alert != '') { - $whereAlertSimple = 'AND ('.'id_alert_template IN ( - SELECT id - FROM talert_templates - WHERE name LIKE "%'.$free_search_alert.'%") OR '.'id_alert_template IN ( - SELECT id - FROM talert_templates - WHERE id_alert_action IN ( - SELECT id - FROM talert_actions - WHERE name LIKE "%'.$free_search_alert.'%")) OR '.'talert_template_modules.id IN ( - SELECT id_alert_template_module - FROM talert_template_module_actions - WHERE id_alert_action IN ( - SELECT id - FROM talert_actions - WHERE name LIKE "%'.$free_search_alert.'%")) OR '.'id_agent_module IN ( - SELECT id_agente_modulo - FROM tagente_modulo - WHERE nombre LIKE "%'.$free_search_alert.'%") OR '.'id_agent_module IN ( - SELECT id_agente_modulo - FROM tagente_modulo - WHERE alias LIKE "%'.$free_search_alert.'%")'.')'; - } else { - $whereAlertSimple = ''; - } - - // Add checks for user ACL. - $groups = users_get_groups($config['id_user'], $access); - $id_groups = array_keys($groups); - - if (empty($id_groups)) { - $whereAlertSimple .= ' AND (1 = 0) '; - } else { - $whereAlertSimple .= sprintf( - ' AND id_agent_module IN ( - SELECT tam.id_agente_modulo - FROM tagente_modulo tam - WHERE tam.id_agente IN ( - SELECT - ta.id_agente - FROM - tagente ta - WHERE - ta.id_grupo IN (%s) - ) - OR tam.id_agente IN ( - SELECT - DISTINCT(tasg.id_agent) - FROM - tagent_secondary_group tasg - WHERE - tasg.id_group IN (%s) - ) - ) ', - implode(',', $id_groups), - implode(',', $id_groups) - ); - } - - $alerts = []; - - $filter_alert = []; - if ($filter_standby == 'standby_on') { - $filter_alert['disabled'] = $filter; - $filter_alert['standby'] = '1'; - } else if ($filter_standby == 'standby_off') { - $filter_alert['disabled'] = $filter; - $filter_alert['standby'] = '0'; - } else { - $filter_alert['disabled'] = $filter; - } - - $options_simple = ['order' => $order]; - - $alerts['alerts_simple'] = agents_get_alerts_simple($idAgent, $filter_alert, $options_simple, $whereAlertSimple, false, false, false, false, $strict_user, $tag_filter); - $countAlertsSimple = agents_get_alerts_simple($idAgent, $filter_alert, false, $whereAlertSimple, false, false, false, true, $strict_user, $tag_filter); - - // Urls to sort the table. - $url_up_module = $url.'&sort_field=module&sort=up'; - $url_down_module = $url.'&sort_field=module&sort=down'; - $url_up_template = $url.'&sort_field=template&sort=up'; - $url_down_template = $url.'&sort_field=template&sort=down'; - $url_up_lastfired = $url.'&sort_field=last_fired&sort=up'; - $url_down_lastfired = $url.'&sort_field=last_fired&sort=down'; - - $table = new stdClass(); - $table->width = '100%'; - $table->class = 'info_table'; - $table->cellpadding = '0'; - $table->cellspacing = '0'; - $table->size = []; - $table->head = []; - $table->align = []; - - if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK) { - $table->size[7] = '5%'; - if (check_acl_one_of_groups($config['id_user'], $all_groups, 'LW') || check_acl_one_of_groups($config['id_user'], $all_groups, 'LM')) { - $table->head[8] = __('Validate'); - $table->align[8] = 'left'; - $table->size[8] = '5%'; - } - - $table->head[0] = "".__('P.').''; - $table->head[1] = "".__('S.').''; - - if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') || check_acl_one_of_groups($config['id_user'], $all_groups, 'LM')) { - $table->head[2] = "".__('F.').''; - } - - $table->head[3] = __('Module'); - $table->head[4] = __('Template'); - $table->head[5] = __('Action'); - $table->head[6] = __('Last fired'); - $table->head[7] = __('Status'); - - $table->align[7] = 'center'; - - $table->head[3] .= ui_get_sorting_arrows($url_up_module, $url_down_module, $selectModuleUp, $selectModuleDown); - $table->head[4] .= ui_get_sorting_arrows($url_up_template, $url_down_template, $selectTemplateUp, $selectTemplateDown); - $table->head[6] .= ui_get_sorting_arrows($url_up_lastfired, $url_down_lastfired, $selectLastFiredUp, $selectLastFiredDown); - } else { - $table->size[6] = '5%'; - if (check_acl($config['id_user'], $id_group, 'LW') || check_acl($config['id_user'], $id_group, 'LM')) { - $table->head[7] = __('Validate'); - $table->align[7] = 'left'; - $table->size[7] = '5%'; - } - - $table->head[0] = "".__('S.').''; - - if (check_acl($config['id_user'], $id_group, 'AW') || check_acl($config['id_user'], $id_group, 'LM')) { - $table->head[1] = "".__('F.').''; - } - - $table->head[2] = __('Module'); - $table->head[3] = __('Template'); - $table->head[4] = __('Action'); - $table->head[5] = __('Last fired'); - $table->head[6] = __('Status'); - - $table->align[6] = 'center'; - - $table->head[2] .= ui_get_sorting_arrows($url_up_module, $url_down_module, $selectModuleUp, $selectModuleDown); - $table->head[3] .= ui_get_sorting_arrows($url_up_template, $url_down_template, $selectTemplateUp, $selectTemplateDown); - $table->head[5] .= ui_get_sorting_arrows($url_up_lastfired, $url_down_lastfired, $selectLastFiredUp, $selectLastFiredDown); - } - - $table->data = []; - $rowPair = true; - $iterator = 0; - foreach ($alerts['alerts_simple'] as $alert) { - $row = ui_format_alert_row($alert, false, $url, 'font-size: 9pt;'); - $table->data[] = $row; - } - - if (empty($table->data) === false) { - html_print_table($table); - } else { - ui_print_info_message(['no_close' => true, 'message' => __('No alerts found') ]); - } -} - if ($enable_alert) { if (! check_acl($config['id_user'], 0, 'LW')) { db_pandora_audit( @@ -501,7 +236,7 @@ if ($show_update_action_menu) { $data .= ''; $data .= ui_print_truncate_text( $agent_alias, - 'agent_small', + 'agent_medium', false, true, true, diff --git a/pandora_console/include/ajax/events.php b/pandora_console/include/ajax/events.php index 7ccf17938b..f9bf50b7ae 100644 --- a/pandora_console/include/ajax/events.php +++ b/pandora_console/include/ajax/events.php @@ -92,6 +92,9 @@ $get_id_source_event = get_parameter('get_id_source_event'); $node_id = (int) get_parameter('node_id', 0); $settings_modal = get_parameter('settings', 0); $parameters_modal = get_parameter('parameters', 0); +// User private filter. +$current_filter = get_parameter('current_filter', 0); +$private_filter_event = get_parameter('private_filter_event', 0); if ($get_comments === true) { global $config; @@ -337,6 +340,14 @@ if ($save_event_filter) { $values['custom_data'] = get_parameter('custom_data'); $values['custom_data_filter_type'] = get_parameter('custom_data_filter_type'); + // Get private filter from user. + $private_filter = get_parameter_switch('private_filter_user', 0); + if ((int) $private_filter === 1) { + $values['private_filter_user'] = $config['id_user']; + } else { + $values['private_filter_user'] = null; + } + if (is_metaconsole() === true) { $values['server_id'] = implode(',', get_parameter('server_id')); } @@ -397,6 +408,17 @@ if ($update_event_filter) { $values['custom_data'] = get_parameter('custom_data'); $values['custom_data_filter_type'] = get_parameter('custom_data_filter_type'); + // Get private filter from user. + $private_filter = get_parameter('private_filter_user', 0); + $user_private_filter = events_get_event_filter($id); + if ((int) $private_filter === 1 && $user_private_filter['private_filter_user'] === null) { + $values['private_filter_user'] = $config['id_user']; + } else if ($private_filter === $user_private_filter['private_filter_user'] && $user_private_filter['private_filter_user'] !== $config['id_user']) { + $values['private_filter_user'] = $user_private_filter['private_filter_user']; + } else { + $values['private_filter_user'] = null; + } + if (is_metaconsole() === true) { $values['server_id'] = implode(',', get_parameter('server_id')); } @@ -712,8 +734,8 @@ if ($save_filter_modal) { $table = new StdClass; $table->id = 'save_filter_form'; $table->width = '100%'; - $table->cellspacing = 4; - $table->cellpadding = 4; + $table->cellspacing = 5; + $table->cellpadding = 5; $table->class = 'databox'; if (is_metaconsole() === true) { $table->class = 'databox filters'; @@ -732,7 +754,7 @@ if ($save_filter_modal) { 'filter_mode', 'new', __('New filter'), - true, + ((int) $current_filter === 0) ? true : false, true ); @@ -740,7 +762,7 @@ if ($save_filter_modal) { 'filter_mode', 'update', __('Update filter'), - false, + ((int) $current_filter > 0) ? true : false, true ); @@ -755,6 +777,7 @@ if ($save_filter_modal) { $table->rowclass[2] = 'flex'; $table->rowclass[3] = 'flex'; $table->rowclass[4] = 'flex'; + $table->rowclass[5] = 'flex'; $data[0] = ''.__('Filter name').''.$jump; $data[0] .= html_print_input_text('id_name', '', '', 15, 255, true); if (is_metaconsole()) { @@ -801,9 +824,9 @@ if ($save_filter_modal) { $data[0] .= html_print_select( $_filters_update, 'overwrite_filter', + $current_filter, '', - '', - '', + __('None'), 0, true, false, @@ -814,6 +837,31 @@ if ($save_filter_modal) { $table->data[] = $data; $table->rowclass[] = ''; + $data = []; + $table->rowid[4] = 'update_filter_row2'; + + $table->data[] = $data; + $table->rowclass[] = ''; + + // Update user private filter. + $data = []; + $table->rowid[6] = 'private_filter_event_row1'; + $data[0] = html_print_label_input_block( + __('Private'), + html_print_checkbox_switch( + 'private_filter_event', + $private_filter_event, + $private_filter_event, + true, + false, + 'checked_slide_events(this);', + true + ) + ); + + $table->data[] = $data; + $table->rowclass[] = ''; + html_print_table($table); html_print_div( @@ -858,10 +906,19 @@ if ($save_filter_modal) { ?> diff --git a/pandora_console/pandora_console.redhat.spec b/pandora_console/pandora_console.redhat.spec index 655b984492..61265bddfa 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.773.3 -%define release 230907 +%define release 230918 # 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 3129691ae0..d8e4bf603c 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.773.3 -%define release 230907 +%define release 230918 # 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 7f1317844f..bcd655e2e2 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.773.3 -%define release 230907 +%define release 230918 %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 0e1f7ec9e0..147ff1bb24 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -1301,6 +1301,7 @@ CREATE TABLE IF NOT EXISTS `tevent_filter` ( `custom_data` VARCHAR(500) DEFAULT '', `custom_data_filter_type` TINYINT UNSIGNED DEFAULT 0, `owner_user` TEXT, + `private_filter_user` TEXT, PRIMARY KEY (`id_filter`) ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; diff --git a/pandora_console/pandoradb_data.sql b/pandora_console/pandoradb_data.sql index 1962582965..5409cd3fcb 100644 --- a/pandora_console/pandoradb_data.sql +++ b/pandora_console/pandoradb_data.sql @@ -2642,7 +2642,7 @@ SET @short_name = 'pandorafms.vmware'; SET @name = 'VMware'; SET @section = 'app'; SET @description = 'Monitor ESXi hosts, datastores and VMs from a specific datacenter'; -SET @version = '1.0'; +SET @version = '1.1'; INSERT IGNORE INTO `tdiscovery_apps` (`id_app`, `short_name`, `name`, `section`, `description`, `version`) VALUES ('', @short_name, @name, @section, @description, @version); SELECT @id_app := `id_app` FROM `tdiscovery_apps` WHERE `short_name` = @short_name; diff --git a/pandora_console/vendor/composer/platform_check.php b/pandora_console/vendor/composer/platform_check.php index b168ddd5d9..21111b57c6 100644 --- a/pandora_console/vendor/composer/platform_check.php +++ b/pandora_console/vendor/composer/platform_check.php @@ -16,7 +16,32 @@ if ($issues) { if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); } elseif (!headers_sent()) { - echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + require_once __DIR__.'/../../include/functions_ui.php'; + + $url = str_replace('/var/www/html/', '', __DIR__); + $url = str_replace('/vendor/composer', '', $url); + + echo ''; + ?> + + + + '; + echo '
'; + echo '

Composer detected issues in your platform:

'; + echo '
'; + echo sprintf( + 'PandoraFMS requires PHP 8.0 to work properly and the version %s has been detected. Please update the PHP version of the system. More info %s. The latest version with PHP 7.4 support is PandoraFMS 767 hope LTS.', + PHP_VERSION, + 'here' + ); + echo '
'; } } trigger_error( diff --git a/pandora_plugins/PandoraFMS/pandorafms.pl b/pandora_plugins/PandoraFMS/pandorafms.pl index 8a4d390c7e..5f5e533785 100644 --- a/pandora_plugins/PandoraFMS/pandorafms.pl +++ b/pandora_plugins/PandoraFMS/pandorafms.pl @@ -8,6 +8,7 @@ use POSIX qw(strftime); use PandoraFMS::DB; use constant DATASERVER => 0; +use constant ALERTSERVER => 21; use Scalar::Util qw(looks_like_number); @@ -159,6 +160,18 @@ sub pandora_self_monitoring ($$) { if (!defined($queued_modules)) { $queued_modules = 0; } + + my $queued_alerts = get_db_value ($dbh, "SELECT count(id) FROM talert_execution_queue"); + + if (!defined($queued_alerts)) { + $queued_alerts = 0; + } + + my $alert_server_status = get_db_value ($dbh, "SELECT status FROM tserver WHERE server_type = ?", ALERTSERVER); + + if (!defined($alert_server_status || $alert_server_status eq "") ) { + $alert_server_status = 0; + } my $dbmaintance; if ($RDBMS eq 'postgresql') { @@ -193,7 +206,19 @@ sub pandora_self_monitoring ($$) { $xml_output .=" generic_data\n"; $xml_output .=" $queued_modules\n"; $xml_output .=" \n"; + + $xml_output .=" \n"; + $xml_output .=" Queued_Alerts\n"; + $xml_output .=" generic_data\n"; + $xml_output .=" $queued_alerts\n"; + $xml_output .=" \n"; + $xml_output .=" \n"; + $xml_output .=" Alert_Server_Status\n"; + $xml_output .=" generic_proc\n"; + $xml_output .=" $alert_server_status\n"; + $xml_output .=" \n"; + $xml_output .=" \n"; $xml_output .=" Agents_Unknown\n"; $xml_output .=" generic_data\n"; diff --git a/pandora_server/DEBIAN/control b/pandora_server/DEBIAN/control index 8c9fbb451b..19f2fbb59b 100644 --- a/pandora_server/DEBIAN/control +++ b/pandora_server/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-server -Version: 7.0NG.773.3-230907 +Version: 7.0NG.773.3-230918 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 630067cc22..39ee7fd114 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.773.3-230907" +pandora_version="7.0NG.773.3-230918" package_cpan=0 package_pandora=1 diff --git a/pandora_server/lib/PandoraFMS/Config.pm b/pandora_server/lib/PandoraFMS/Config.pm index 3f4e75f73c..0dc572ebed 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.773.3"; -my $pandora_build = "230907"; +my $pandora_build = "230918"; 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 cbb4ea851e..f2c7d46143 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -127,6 +127,7 @@ use JSON qw(decode_json encode_json); use MIME::Base64; use Text::ParseWords; use Math::Trig; # Math functions +use constant ALERTSERVER => 21; # Debugging #use Data::Dumper; @@ -5687,7 +5688,7 @@ sub pandora_server_statistics ($$) { $server->{"modules_total"} = get_db_value ($dbh, "SELECT COUNT(tagent_module_inventory.id_agent_module_inventory) FROM tagente, tagent_module_inventory WHERE tagente.disabled=0 AND tagent_module_inventory.id_agente = tagente.id_agente"); # Calculate lag - $lag_row = get_db_single_row ($dbh, "SELECT COUNT(tagent_module_inventory.id_agent_module_inventory) AS module_lag, AVG(UNIX_TIMESTAMP() - utimestamp - tagent_module_inventory.interval) AS lag + $lag_row = get_db_single_row ($dbh, "SELECT COUNT(tagent_module_inventory.id_agent_module_inventory) AS `module_lag`, AVG(UNIX_TIMESTAMP() - utimestamp - tagent_module_inventory.interval) AS `lag` FROM tagente, tagent_module_inventory WHERE utimestamp > 0 AND tagent_module_inventory.id_agente = tagente.id_agente @@ -5736,8 +5737,8 @@ sub pandora_server_statistics ($$) { if ($server->{"server_type"} != DATASERVER){ $lag_row = get_db_single_row ( $dbh, - "SELECT COUNT(tam.id_agente_modulo) AS module_lag, - AVG(UNIX_TIMESTAMP() - tae.last_execution_try - tae.current_interval) AS lag + "SELECT COUNT(tam.id_agente_modulo) AS `module_lag`, + AVG(UNIX_TIMESTAMP() - tae.last_execution_try - tae.current_interval) AS `lag` FROM ( SELECT tagente_estado.last_execution_try, tagente_estado.current_interval, tagente_estado.id_agente_modulo FROM tagente_estado @@ -5762,8 +5763,8 @@ sub pandora_server_statistics ($$) { else { $lag_row = get_db_single_row ( $dbh, - "SELECT COUNT(tam.id_agente_modulo) AS module_lag, - AVG(UNIX_TIMESTAMP() - tae.last_execution_try - tae.current_interval) AS lag + "SELECT COUNT(tam.id_agente_modulo) AS `module_lag`, + AVG(UNIX_TIMESTAMP() - tae.last_execution_try - tae.current_interval) AS `lag` FROM ( SELECT tagente_estado.last_execution_try, tagente_estado.current_interval, tagente_estado.id_agente_modulo FROM tagente_estado @@ -6132,6 +6133,18 @@ sub pandora_self_monitoring ($$) { if (!defined($queued_modules)) { $queued_modules = 0; } + + my $queued_alerts = get_db_value ($dbh, "SELECT count(id) FROM talert_execution_queue"); + + if (!defined($queued_alerts)) { + $queued_alerts = 0; + } + + my $alert_server_status = get_db_value ($dbh, "SELECT status FROM tserver WHERE server_type = ?", ALERTSERVER); + + if (!defined($alert_server_status) || $alert_server_status eq "") { + $alert_server_status = 0; + } my $pandoradb = 0; my $pandoradb_tstamp = get_db_value ($dbh, "SELECT `value` FROM tconfig WHERE token = 'db_maintance'"); @@ -6158,6 +6171,18 @@ sub pandora_self_monitoring ($$) { $xml_output .=" generic_data"; $xml_output .=" $queued_modules"; $xml_output .=" "; + + $xml_output .=" \n"; + $xml_output .=" Queued_Alerts\n"; + $xml_output .=" generic_data\n"; + $xml_output .=" $queued_alerts\n"; + $xml_output .=" \n"; + + $xml_output .=" \n"; + $xml_output .=" Alert_Server_Status\n"; + $xml_output .=" generic_proc\n"; + $xml_output .=" $alert_server_status\n"; + $xml_output .=" \n"; $xml_output .=" "; $xml_output .=" Agents_Unknown"; diff --git a/pandora_server/lib/PandoraFMS/PluginTools.pm b/pandora_server/lib/PandoraFMS/PluginTools.pm index ed6f3abe83..0fe5e566c8 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.773.3"; -my $pandora_build = "230907"; +my $pandora_build = "230918"; 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 4da9c7472a..4ae90a8296 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.773.3 -%define release 230907 +%define release 230918 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index 4cdaa0d4c3..5c1910854b 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.773.3 -%define release 230907 +%define release 230918 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 49f082ea35..21e1e1b47d 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.773.3" -PI_BUILD="230907" +PI_BUILD="230918" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/load/pandora_xml_stress.agents b/pandora_server/util/load/pandora_xml_stress.agents index da718018e0..0b4a54a894 100644 --- a/pandora_server/util/load/pandora_xml_stress.agents +++ b/pandora_server/util/load/pandora_xml_stress.agents @@ -147,154 +147,4 @@ be67e5298c830c0bb582556f 63f5d1404aea4377779edf35 b03831cce718125cb9612c07 5465b26fd45d86b059066cc2 -5351de84d2fd638b138ba27b -6c63000157aed37fa8c0c022 -8d3c18c7fbe518694c6bdb22 -615ec092b6f63bb14a2bb42e -61de25cf8e12926c28aeffdc -2b96bc1c8f6f81a5437b61bf -ba1f4fcf3954e0efe5d68c83 -ee5bd3e1a937b90562677f1d -0cf18ae18b0c680d00cb4d2e -abf72b0d66f90bd6e67c43c6 -f263d033bb07e0b8cd405224 -418ddf02720649b40db2dd67 -01d1a735aa980326d385ea65 -0cc3860bb0a3fd5822b25ea4 -b0b89dbebfab05fafd6cf9dd -2fcbb999444db5c0c77c2ec2 -f49a97b3531b8ab8d487c7a7 -ffb66d5003620e2fa47ef8ea -04da742ab6c99b5c44f9f0cc -dc310a9d42d7c367671ffbf9 -b0f5c4ee8d327449ef2103e6 -5bd2ce604ed7c820169f0ac2 -57f874a6e41baa5a1196b15f -b43142736205ad1011f4a5a6 -50cf8523e5090251516eecb0 -ebad61d47be209696f9d41aa -66bc5976a98266560d1867ff -3c37fc452e9ad36cd7adcb1a -4ac8c3db63a69ce883f3fcf5 -6c89e2bb90b9ab95f4adde3c -917de5ece0a5ef663a8f44e7 -b50eba76cf29aca3cf696d7e -74264c913ac1e141db78708a -2b6c93011f62cffb5c085886 -700617c377952010272b9522 -dac10c8ddf7c45e55d8028af -053328a6ff4f2773eebe76fe -2d7390260285c272688ae1e8 -fa30c9ee6fb1e2f00d7ccb77 -0ca6db378a05246f30c8b820 -9ad6f959de166cc1475040ea -23b4702f4dfb350085e77482 -4198a8ab80780c5d9b0d82d5 -baebd530dfc47ac77ea42d2a -636d2ab4e018b5542e429f5e -40ae44193af360eea68b6f0b -dd47b39e494a62a4f5b6bef8 -240339c9dcd159595c1edbf3 -0f11840efe364ca6bbb17f43 -8522e203fb4b53e2bd6d6f82 -f134d9b501fa40b17993beee -d0483306f2f972aacfb4fcea -926ee4e0a80455cfee517f8b -c188a327bc66df4878cb3e8b -c874083c1d932bb4ade6d028 -be2271d8da327f97e05c1c60 -9ca7451d3f261682ec717547 -9eb46e2a5fd072c5267d7432 -41e8f3f7733f87e16b773bad -f642220cd19f84154e4dd972 -fe3d9f6433883332b464b7ca -3e9648ccf60b1fa712ea8590 -b7da7292e9418889bc957bd7 -fb4a392d386eca19eec9215e -34188e4a6590877b2dbb67b0 -e233cb364659dea13dee1fd8 -757b8330465df34879414b7d -5e0f80102fee69d0742934b2 -d72124afc78e9b3f91550497 -21c77bfe67c6e99f73323f42 -afa8ce345db6300882858f93 -886cc8b32ed80f4c69edb990 -64ea275ce73ef4070cefca19 -c676f1ffe5bdce4e1d3643ed -baca61ab59568605e3ec8899 -1610892c53a071ed02d20c75 -3321fb7111d74e532932d262 -29583747ac9fbf0bf21c1574 -f51210b47a6e847dcfb52f94 -63c95735ba96c65d2d45b23d -679c4e3acb15ebec6ecc7529 -42da0760b02d50c6587a8c31 -e42de775dcfcc3c950c1cff5 -ae5791cf265badebd39c78d9 -f66c123309525eeb81b47e92 -7cddc2b9ed6b4df83c72fcbe -e69cc74632fdaa06f76f708a -7cfd19c2eeaef2c0537332be -d27cdcea69f4e49fbae06f4d -bdfaa2ec52319f0e6533e826 -d59452cdfce11e21682a791f -cbb74f2d35d54557abdbc2da -369a4e6f128475bc9f87ef42 -90bf992a98d0b768cbc50520 -1fea663421dae7b418b9b15f -f9fc5505565c43cebc1545f9 -d02a8f77fbb2b7f384a99949 -279ff35e17c7f6b6a043fde7 -9cf7725d3a97d9aa9e529ce6 -1f465b328b349502c0953b2d -283fad60fa48ea2075a0e516 -ef5d9e841a02665c54d8fa7f -b6023425cb4a1503726b3135 -7fb8a1a734c24cc22a5c75eb -da38d78e83c9288e4cd60cca -2a928a6498ae8e0b29675c25 -d2194ab5b0e48c2c1f213860 -53acafcd86a61ce55688ebef -65608eeebc7d9fe2912635ed -fafb0273e3b04deb1edb2628 -baf07d1f28416da065b6771f -c2ee8e58209102fdd0bb341c -f8e92e00670f65c29c4617c9 -a83661705134029ae344176d -fc02c24e172d12a29b17eede -2632f143ffe3f64e63e4ba32 -847120de4b72f59263d160f1 -5be36ff5b668eb93823974b2 -cdd8fe5081225519b5fc28af -53569cbaedb9265839290a6c -decca89ea0e8944fd93fcd24 -4b10511d840b7f5129ed6190 -5c4a1904de5f90f4d5dd749a -49c47514c3308df82fcd6b79 -15af3e182c00000eea12f8e5 -a9645c4a43ad211d9ae9a406 -dcffa4e5eee8f966b1edcdaf -75b25f796f1e392f45c3a737 -0ad5f0b96946ebcabd0457e9 -2f9128177cab74e0bad61189 -49ed14b81e0a166ccf335b4a -dfe100788326c45dfb84579c -2616f38caef9decae47e5023 -99b2d0eb14ac19d1cfedd86e -fb1d4c42ea70fad330b5c5ee -b6c560867faa3b41b1f5d4fa -1167fb22e86098ef684eb702 -a2e2c2ee8ec87d4e5d59eb22 -b228beac094e16a0fa3cb528 -ea0de9aad68deed0a4df3e71 -e50cb420497d928ef9827800 -3bb39890ca4a6da941e01782 -73391f2914465c3f2335e24a -f8b2f512cc0cbc024e2cd377 -4f816b0d36c934b44dbd5bc0 -817edf1e2637fef229752a5f -4466f97959df7247f7410fbe -cc85c727080e9d6eb75ef513 -7e27f012167ed8bedc4bd635 -98a445ff41a81a0a752aff25 -3b339e213dd613c4efd878c1 \ No newline at end of file +5351de84d2fd638b138ba27b \ No newline at end of file diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 119a8d5abc..4f087de961 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.773.3 Build 230907"; +my $version = "7.0NG.773.3 Build 230918"; # Pandora server configuration my %conf; @@ -359,7 +359,12 @@ sub pandora_purgedb ($$$) { log_message ('!', "Cannot execute " . $conf->{'_netflow_nfexpire'} . ", skipping."); } else { - `yes 2>/dev/null | $conf->{'_netflow_nfexpire'} -r "$conf->{'_netflow_path'}" -t $conf->{'_netflow_max_lifetime'}d`; + # Update stats file with max lifetime. + `yes 2>/dev/null | $conf->{'_netflow_nfexpire'} -u "$conf->{'_netflow_path'}" -t $conf->{'_netflow_max_lifetime'}d -w 100`; + # Rescan directory. + `yes 2>/dev/null | $conf->{'_netflow_nfexpire'} -r "$conf->{'_netflow_path'}"`; + # Expire files + `yes 2>/dev/null | $conf->{'_netflow_nfexpire'} -e "$conf->{'_netflow_path'}"`; } } else { diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index d1793aaa3b..b841bc79ae 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.773.3 Build 230907"; +my $version = "7.0NG.773.3 Build 230918"; # save program name for logging my $progname = basename($0);