diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 5a22f8ecae..f60763b69b 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.769-230228 +Version: 7.0NG.769-230301 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 ac85303303..4f52b3aa35 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.769-230228" +pandora_version="7.0NG.769-230301" 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 a994aabc8b..4fa07035d2 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1023,7 +1023,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.769'; -use constant AGENT_BUILD => '230228'; +use constant AGENT_BUILD => '230301'; # 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 1e35d4443c..f8ab9c7e41 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.769 -%define release 230228 +%define release 230301 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 3519ff8837..6a16d883fd 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.769 -%define release 230228 +%define release 230301 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 ec3075858c..46e66a8170 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.769" -PI_BUILD="230228" +PI_BUILD="230301" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 2f2c4f1324..79687a6d2e 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230228} +{230301} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 9d41d77811..8264d0e9c8 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.769 Build 230228") +#define PANDORA_VERSION ("7.0NG.769 Build 230301") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index ab42fb366e..ece56bd837 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.769(Build 230228))" + VALUE "ProductVersion", "(7.0NG.769(Build 230301))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 12ed651bf5..c9f3c45a17 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.769-230228 +Version: 7.0NG.769-230301 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 32b28e5e53..90ab3e8133 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.769-230228" +pandora_version="7.0NG.769-230301" package_pear=0 package_pandora=1 diff --git a/pandora_console/extras/mr/62.sql b/pandora_console/extras/mr/62.sql index 4d21f9bb2a..9d9c14656f 100644 --- a/pandora_console/extras/mr/62.sql +++ b/pandora_console/extras/mr/62.sql @@ -60,4 +60,7 @@ UPDATE `ttipo_modulo` SET `icon` = 'remote-execution-incremental-data@svg.svg' W UPDATE `ttipo_modulo` SET `icon` = 'server-web@svg.svg' WHERE `id_tipo` = 38; UPDATE `ttipo_modulo` SET `icon` = 'keepalive@svg.svg' WHERE `id_tipo` = 100; +CREATE INDEX agente_modulo_estado ON tevento (estado, id_agentmodule); +CREATE INDEX idx_disabled ON talert_template_modules (disabled); + COMMIT; diff --git a/pandora_console/extras/mr/63.sql b/pandora_console/extras/mr/63.sql new file mode 100644 index 0000000000..401d4a748c --- /dev/null +++ b/pandora_console/extras/mr/63.sql @@ -0,0 +1,5 @@ +START TRANSACTION; + +INSERT INTO `treport_custom_sql` (`name`, `sql`) VALUES ('Agent safe mode not enable', 'select alias from tagente where safe_mode_module = 0'); + +COMMIT; diff --git a/pandora_console/godmode/setup/performance.php b/pandora_console/godmode/setup/performance.php index e7c61be8f8..2139118ff1 100644 --- a/pandora_console/godmode/setup/performance.php +++ b/pandora_console/godmode/setup/performance.php @@ -151,6 +151,8 @@ if ($update_config == 1 && $config['history_db_enabled'] == 1) { } } +$performance_variables_control = (array) json_decode(io_safe_output($config['performance_variables_control'])); + $total_agents = db_get_value('count(*)', 'tagente'); $disable_agentaccess = ($total_agents >= 200 && $config['agentaccess'] == 0) ? true : false; @@ -264,104 +266,140 @@ $table->data[1][1] = html_print_input( [ 'type' => 'number', 'size' => 5, - 'max' => 99999, + 'max' => $performance_variables_control['event_purge']->max, 'name' => 'event_purge', 'value' => $config['event_purge'], 'return' => true, - 'min' => ((((bool) $config['history_event_enabled'] === true) && $config['history_event_days'] > 0) ? $config['history_event_days'] + 1 : null), + 'min' => $performance_variables_control['event_purge']->min, 'style' => 'width:43px', ] ); $table->data[2][0] = __('Max. days before delete traps'); -$table->data[2][1] = html_print_input_text( - 'trap_purge', - $config['trap_purge'], - '', - 5, - 5, - true +$table->data[2][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['trap_purge']->max, + 'name' => 'trap_purge', + 'value' => $config['trap_purge'], + 'return' => true, + 'min' => $performance_variables_control['trap_purge']->min, + 'style' => 'width:43px', + ] ); $table->data[3][0] = __('Max. days before delete audit events'); -$table->data[3][1] = html_print_input_text( - 'audit_purge', - $config['audit_purge'], - '', - 5, - 5, - true +$table->data[3][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['audit_purge']->max, + 'name' => 'audit_purge', + 'value' => $config['audit_purge'], + 'return' => true, + 'min' => $performance_variables_control['audit_purge']->min, + 'style' => 'width:43px', + ] ); $table->data[4][0] = __('Max. days before delete string data'); -$table->data[4][1] = html_print_input_text( - 'string_purge', - $config['string_purge'], - '', - 5, - 5, - true +$table->data[4][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['string_purge']->max, + 'name' => 'string_purge', + 'value' => $config['string_purge'], + 'return' => true, + 'min' => $performance_variables_control['string_purge']->min, + 'style' => 'width:43px', + ] ); $table->data[5][0] = __('Max. days before delete GIS data'); -$table->data[5][1] = html_print_input_text( - 'gis_purge', - $config['gis_purge'], - '', - 5, - 5, - true +$table->data[5][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['gis_purge']->max, + 'name' => 'gis_purge', + 'value' => $config['gis_purge'], + 'return' => true, + 'min' => $performance_variables_control['gis_purge']->min, + 'style' => 'width:43px', + ] ); $table->data[6][0] = __('Max. days before purge'); -$table->data[6][1] = html_print_input_text( - 'days_purge', - $config['days_purge'], - '', - 5, - 5, - true +$table->data[6][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['days_purge']->max, + 'name' => 'days_purge', + 'value' => $config['days_purge'], + 'return' => true, + 'min' => $performance_variables_control['days_purge']->min, + 'style' => 'width:43px', + ] ); $table->data[7][0] = __('Max. days before compact data'); -$table->data[7][1] = html_print_input_text( - 'days_compact', - $config['days_compact'], - '', - 5, - 5, - true +$table->data[7][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['days_compact']->max, + 'name' => 'days_compact', + 'value' => $config['days_compact'], + 'return' => true, + 'min' => $performance_variables_control['days_compact']->min, + 'style' => 'width:43px', + ] ); $table->data[8][0] = __('Max. days before delete unknown modules'); -$table->data[8][1] = html_print_input_text( - 'days_delete_unknown', - $config['days_delete_unknown'], - '', - 5, - 5, - true +$table->data[8][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['days_delete_unknown']->max, + 'name' => 'days_delete_unknown', + 'value' => $config['days_delete_unknown'], + 'return' => true, + 'min' => $performance_variables_control['days_delete_unknown']->min, + 'style' => 'width:43px', + ] ); $table->data[9][0] = __('Max. days before delete not initialized modules'); -$table->data[9][1] = html_print_input_text( - 'days_delete_not_initialized', - $config['days_delete_not_initialized'], - '', - 5, - 5, - true +$table->data[9][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['days_delete_not_initialized']->max, + 'name' => 'days_delete_not_initialized', + 'value' => $config['days_delete_not_initialized'], + 'return' => true, + 'min' => $performance_variables_control['days_delete_not_initialized']->min, + 'style' => 'width:43px', + ] ); $table->data[10][0] = __('Max. days before delete autodisabled agents'); -$table->data[10][1] = html_print_input_text( - 'days_autodisable_deletion', - $config['days_autodisable_deletion'], - '', - 5, - 5, - true +$table->data[10][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['days_autodisable_deletion']->max, + 'name' => 'days_autodisable_deletion', + 'value' => $config['days_autodisable_deletion'], + 'return' => true, + 'min' => $performance_variables_control['days_autodisable_deletion']->min, + 'style' => 'width:43px', + ] ); $table->data[11][0] = __('Retention period of past special days'); @@ -502,13 +540,17 @@ $table->data[] = [ $table->data[] = [ __('Max. days before delete old network matrix data'), - html_print_input_text( - 'delete_old_network_matrix', - $config['delete_old_network_matrix'], - '', - 5, - 5, - true + html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['delete_old_network_matrix']->max, + 'name' => 'delete_old_network_matrix', + 'value' => $config['delete_old_network_matrix'], + 'return' => true, + 'min' => $performance_variables_control['delete_old_network_matrix']->min, + 'style' => 'width:43px', + ] ), ]; @@ -522,13 +564,17 @@ $table_other->size[0] = '70%'; $table_other->size[1] = '30%'; $i = 0; $table_other->data[$i][0] = __('Item limit for realtime reports'); -$table_other->data[$i++][1] = html_print_input_text( - 'report_limit', - $config['report_limit'], - '', - 5, - 5, - true +$table_other->data[$i++][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['report_limit']->max, + 'name' => 'report_limit', + 'value' => $config['report_limit'], + 'return' => true, + 'min' => $performance_variables_control['report_limit']->min, + 'style' => 'width:43px', + ] ); $table_other->data[$i][0] = __('Limit of events per query'); @@ -565,13 +611,17 @@ $intervals[SECONDS_2WEEK] = __('2 weeks'); $intervals[SECONDS_1MONTH] = __('Last month'); $table_other->data[$i][0] = __('Default hours for event view'); -$table_other->data[$i++][1] = html_print_input_text( - 'event_view_hr', - $config['event_view_hr'], - '', - 5, - 5, - true +$table_other->data[$i++][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['event_view_hr']->max, + 'name' => 'event_view_hr', + 'value' => $config['event_view_hr'], + 'return' => true, + 'min' => $performance_variables_control['event_view_hr']->min, + 'style' => 'width:43px', + ] ); $table_other->data[$i][0] = __('Use realtime statistics'); @@ -609,23 +659,33 @@ $table_other->data[$i][0] = __('Delete not init modules'); $table_other->data[$i++][1] = html_print_checkbox_switch('delete_notinit', 1, $config['delete_notinit'], true); $table_other->data[$i][0] = __('Big Operation Step to purge old data'); -$table_other->data[$i++][1] = html_print_input_text( - 'big_operation_step_datos_purge', - $config['big_operation_step_datos_purge'], - '', - 5, - 5, - true +$table_other->data[$i++][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['big_operation_step_datos_purge']->max, + 'name' => 'big_operation_step_datos_purge', + 'value' => $config['big_operation_step_datos_purge'], + 'return' => true, + 'min' => $performance_variables_control['big_operation_step_datos_purge']->min, + 'style' => 'width:50px', + ] ); + + $table_other->data[$i][0] = __('Small Operation Step to purge old data'); -$table_other->data[$i++][1] = html_print_input_text( - 'small_operation_step_datos_purge', - $config['small_operation_step_datos_purge'], - '', - 5, - 5, - true +$table_other->data[$i++][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['small_operation_step_datos_purge']->max, + 'name' => 'small_operation_step_datos_purge', + 'value' => $config['small_operation_step_datos_purge'], + 'return' => true, + 'min' => $performance_variables_control['small_operation_step_datos_purge']->min, + 'style' => 'width:50px', + ] ); $table_other->data[$i][0] = __('Graph container - Max. Items'); @@ -649,13 +709,17 @@ $table_other->data[$i++][1] = html_print_input_text( ); $table_other->data[$i][0] = __('Row limit in csv log'); -$table_other->data[$i++][1] = html_print_input_text( - 'row_limit_csv', - $config['row_limit_csv'], - '', - 5, - 10, - true +$table_other->data[$i++][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['row_limit_csv']->max, + 'name' => 'row_limit_csv', + 'value' => $config['row_limit_csv'], + 'return' => true, + 'min' => $performance_variables_control['row_limit_csv']->min, + 'style' => 'width:63px', + ] ); $table_other->data[$i][0] = __('SNMP walk binary'); diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php index e1d67c86ae..fc169f91a2 100644 --- a/pandora_console/godmode/setup/setup_general.php +++ b/pandora_console/godmode/setup/setup_general.php @@ -47,6 +47,8 @@ if (is_ajax()) { exit(); } +$performance_variables_control = (array) json_decode(io_safe_output($config['performance_variables_control'])); + $table = new StdClass(); $table->class = 'databox filters'; $table->id = 'setup_general'; @@ -512,13 +514,17 @@ $table->data[$i++][1] = html_print_checkbox_switch( ); $table->data[$i][0] = __('Limit for bulk operations'); -$table->data[$i++][1] = html_print_input_text( - 'limit_parameters_massive', - $config['limit_parameters_massive'], - '', - 10, - 10, - true +$table->data[$i++][1] = html_print_input( + [ + 'type' => 'number', + 'size' => 5, + 'max' => $performance_variables_control['limit_parameters_massive']->max, + 'name' => 'limit_parameters_massive', + 'value' => $config['limit_parameters_massive'], + 'return' => true, + 'min' => $performance_variables_control['limit_parameters_massive']->min, + 'style' => 'width:50px', + ] ); $table->data[$i][0] = __('Include agents manually disabled'); diff --git a/pandora_console/godmode/setup/setup_visuals.php b/pandora_console/godmode/setup/setup_visuals.php index 67577f68ed..73b2511b2b 100755 --- a/pandora_console/godmode/setup/setup_visuals.php +++ b/pandora_console/godmode/setup/setup_visuals.php @@ -53,6 +53,8 @@ $row = 0; echo '