add params setup historic database

Former-commit-id: 6a2d0cf00f18ceee467ca98279adf5285ea161dd
This commit is contained in:
daniel 2019-01-30 12:07:17 +01:00
parent 6485de04fd
commit 1d7f5365ab
2 changed files with 824 additions and 234 deletions

View File

@ -1,107 +1,545 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Pandora FMS - http://pandorafms.com // Load global vars.
// ==================================================
// Copyright (c) 2005-2009 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Load global vars
global $config; global $config;
require_once 'include/config.php';
check_login (); check_login();
if (! check_acl ($config['id_user'], 0, "PM") && ! is_user_admin ($config['id_user'])) { if (! check_acl($config['id_user'], 0, 'PM')
db_pandora_audit("ACL Violation", "Trying to access Setup Management"); && ! is_user_admin($config['id_user'])
require ("general/noaccess.php"); ) {
return; db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
include 'general/noaccess.php';
return;
} }
// Load enterprise extensions
//~ enterprise_include_once ('godmode/setup/setup.php');
/* $update_config = get_parameter('update_config', 0);
NOTICE FOR DEVELOPERS: if ($update_config == 1 && $config['history_db_enabled'] == 1) {
if (! isset($config['history_db_connection'])
|| $config['history_db_connection'] === false
) {
$config['history_db_connection'] = db_connect(
$config['history_db_host'],
$config['history_db_name'],
$config['history_db_user'],
io_output_password($config['history_db_pass']),
$config['history_db_port'],
false
);
}
if ($config['history_db_connection'] !== false) {
$historical_days_purge = get_parameter('historical_days_purge', 0);
$historical_days_compact = get_parameter('historical_days_compact', 0);
$historical_step_compact = get_parameter('historical_step_compact', 0);
$historical_event_purge = get_parameter('historical_event_purge', 0);
$historical_string_purge = get_parameter('historical_string_purge', 0);
$config_history = mysql_db_process_sql(
'SELECT * FROM tconfig',
'affected_rows',
$config['history_db_connection'],
false
);
if (!$config_history) {
$sql = "INSERT INTO tconfig (token, `value`) VALUES
('days_purge', ".$historical_days_purge."),
('days_compact', ".$historical_days_compact."),
('step_compact', ".$historical_step_compact."),
('event_purge', ".$historical_event_purge."),
('string_purge', ".$historical_string_purge."),
('history_db_enabled', 0)";
mysql_db_process_sql(
$sql,
'insert_id',
$config['history_db_connection'],
false
);
} else {
$sql = 'UPDATE tconfig SET `value` = '.$historical_days_purge." WHERE token = 'days_purge'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
$sql = 'UPDATE tconfig SET `value` = '.$historical_days_compact." WHERE token = 'days_compact'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
$sql = 'UPDATE tconfig SET `value` = '.$historical_step_compact." WHERE token = 'step_compact'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
$sql = 'UPDATE tconfig SET `value` = '.$historical_event_purge." WHERE token = 'event_purge'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
$sql = 'UPDATE tconfig SET `value` = '.$historical_string_purge." WHERE token = 'string_purge'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
$sql = "UPDATE tconfig SET `value` = 0 WHERE token = 'history_db_enabled'";
mysql_db_process_sql(
$sql,
'update_id',
$config['history_db_connection'],
false
);
}
}
}
$table_status = new StdClass();
$table_status->width = '100%';
$table_status->class = 'databox filters';
$table_status->style[0] = 'font-weight: bold';
$table_status->size[0] = '10%';
$table_status->data = [];
$sql = "SELECT UNIX_TIMESTAMP(NOW()) - `value` AS updated_at
FROM tconfig
WHERE token = 'db_maintance'";
$time_pandora_db_active = db_get_sql($sql);
if ($time_pandora_db_active < SECONDS_12HOURS) {
$table_status->data[0][0] = html_print_image(
'images/dot_green.png',
true
);
} else {
$table_status->data[0][0] = html_print_image(
'images/dot_red.png',
true
);
}
$table_status->data[0][0] .= ' '.__('Pandora_db running in active database.');
$table_status->data[0][0] .= ' '.__('Executed:').' ';
$table_status->data[0][0] .= human_time_description_raw(
$time_pandora_db_active,
true
);
$table_status->data[0][0] .= ' '.__('ago').'.';
$table_status->data[0][0] .= ui_print_help_tip(
__('WIP'),
true
);
if ($config['history_db_enabled'] == 1) {
if (! isset($config['history_db_connection'])
|| $config['history_db_connection'] === false
) {
$config['history_db_connection'] = db_connect(
$config['history_db_host'],
$config['history_db_name'],
$config['history_db_user'],
io_output_password($config['history_db_pass']),
$config['history_db_port'],
false
);
}
if ($config['history_db_connection'] !== false) {
$time_pandora_db_history = mysql_db_process_sql(
$sql,
'insert_id',
$config['history_db_connection'],
false
);
}
if ($time_pandora_db_history !== false
&& $time_pandora_db_history[0]['updated_at'] < SECONDS_12HOURS
) {
$table_status->data[1][0] = html_print_image(
'images/dot_green.png',
true
);
} else {
$table_status->data[1][0] = html_print_image(
'images/dot_red.png',
true
);
}
$table_status->data[1][0] .= ' '.__('Pandora_db running in historical database.');
$table_status->data[1][0] .= ' '.__('Executed:').' ';
if ($time_pandora_db_history !== false) {
$table_status->data[1][0] .= human_time_description_raw(
$time_pandora_db_history[0]['updated_at'],
true
).' '.__('ago').'.';
} else {
$table_status->data[1][0] .= __('not executed');
}
$table_status->data[1][0] .= ui_print_help_tip(
__('WIP'),
true
);
}
Update operation is done in config_process.php
This is done in that way so the user can see the changes inmediatly.
If you added a new token, please check config_update_config() in functions_config.php
to add it there.
*/
$table = new StdClass(); $table = new StdClass();
$table->width = '100%'; $table->width = '100%';
$table->class = "databox filters"; $table->class = 'databox filters';
$table->data = array (); $table->data = [];
$table->style[0] = "font-weight: bold"; $table->style[0] = 'font-weight: bold';
$table->size[0] = '70%'; $table->size[0] = '70%';
$table->size[1] = '30%'; $table->size[1] = '30%';
enterprise_hook('enterprise_warnings_history_days'); enterprise_hook('enterprise_warnings_history_days');
$table->data[1][0] = __('Max. days before delete events') . ui_print_help_tip(__('If the compaction or purge of the data is more frequent than the events deletion, anomalies in module graphs could appear'), true); $table->data[1][0] = __('Max. days before delete events');
$table->data[1][1] = html_print_input_text ('event_purge', $config["event_purge"], '', 5, 5, true); $table->data[1][0] .= ui_print_help_tip(
__('If the compaction or purge of the data is more frequent than the events deletion, anomalies in module graphs could appear'),
true
);
$table->data[1][1] = html_print_input_text(
'event_purge',
$config['event_purge'],
'',
5,
5,
true
);
$table->data[2][0] = __('Max. days before delete traps'); $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_text(
'trap_purge',
$config['trap_purge'],
'',
5,
5,
true
);
$table->data[3][0] = __('Max. days before delete audit events'); $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_text(
'audit_purge',
$config['audit_purge'],
'',
5,
5,
true
);
$table->data[4][0] = __('Max. days before delete string data'); $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_text(
'string_purge',
$config['string_purge'],
'',
5,
5,
true
);
$table->data[5][0] = __('Max. days before delete GIS data'); $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_text(
'gis_purge',
$config['gis_purge'],
'',
5,
5,
true
);
$table->data[6][0] = __('Max. days before purge') . ui_print_help_tip(__('Configure a purge period more frequent than a compact data period has no sense'), true); $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][0] .= ui_print_help_tip(
__('Configure a purge period more frequent than a compact data period has no sense'),
true
);
$table->data[6][1] = html_print_input_text(
'days_purge',
$config['days_purge'],
'',
5,
5,
true
);
$table->data[7][0] = __('Max. days before compact data'); $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_text(
'days_compact',
$config['days_compact'],
'',
5,
5,
true
);
$table->data[8][0] = __('Max. days before delete unknown modules'); $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_text(
'days_delete_unknown',
$config['days_delete_unknown'],
'',
5,
5,
true
);
$table->data[9][0] = __('Max. days before delete autodisabled agents'); $table->data[9][0] = __('Max. days before delete autodisabled agents');
$table->data[9][1] = html_print_input_text ('days_autodisable_deletion', $config["days_autodisable_deletion"], '', 5, 5, true); $table->data[9][1] = html_print_input_text(
'days_autodisable_deletion',
$config['days_autodisable_deletion'],
'',
5,
5,
true
);
$table->data[10][0] = __('Retention period of past special days') . ui_print_help_tip(__('This number is days to keep past special days. 0 means never remove.'), true); $table->data[10][0] = __('Retention period of past special days');
$table->data[10][1] = html_print_input_text ('num_past_special_days', $config["num_past_special_days"], '', 5, 5, true); $table->data[10][0] .= ui_print_help_tip(
__('This number is days to keep past special days. 0 means never remove.'),
true
);
$table->data[10][1] = html_print_input_text(
'num_past_special_days',
$config['num_past_special_days'],
'',
5,
5,
true
);
$table->data[11][0] = __('Max. macro data fields') . ui_print_help_tip(__('Number of macro fields in alerts and templates between 1 and 15'), true); $table->data[11][0] = __('Max. macro data fields');
$table->data[11][1] = html_print_input_text ('max_macro_fields', $config["max_macro_fields"], '', 5, 5, true, false, false, "onChange=\"change_macro_fields()\""); $table->data[11][0] .= ui_print_help_tip(
__('Number of macro fields in alerts and templates between 1 and 15'),
true
);
$table->data[11][1] = html_print_input_text(
'max_macro_fields',
$config['max_macro_fields'],
'',
5,
5,
true,
false,
false,
'onChange="change_macro_fields()"'
);
if (enterprise_installed ()) { if (enterprise_installed()) {
$table->data[12][0] = __('Max. days before delete inventory data'); $table->data[12][0] = __('Max. days before delete inventory data');
$table->data[12][1] = html_print_input_text ('inventory_purge', $config["inventory_purge"], '', 5, 5, true); $table->data[12][1] = html_print_input_text(
'inventory_purge',
$config['inventory_purge'],
'',
5,
5,
true
);
}
if ($config['history_db_enabled'] == 1) {
if (! isset($config['history_db_connection'])
|| $config['history_db_connection'] === false
) {
$config['history_db_connection'] = db_connect(
$config['history_db_host'],
$config['history_db_name'],
$config['history_db_user'],
io_output_password($config['history_db_pass']),
$config['history_db_port'],
false
);
}
if ($config['history_db_connection'] != false) {
$config_history_array = mysql_db_process_sql(
'SELECT * FROM tconfig',
'affected_rows',
$config['history_db_connection'],
false
);
$config_history = false;
if (isset($config_history_array) && is_array($config_history_array)) {
foreach ($config_history_array as $key => $value) {
$config_history[$value['token']] = $value['value'];
}
}
}
if ($config_history === false) {
$config_history = [];
$config_history['days_purge'] = 180;
$config_history['days_compact'] = 120;
$config_history['step_compact'] = 1;
$config_history['event_purge'] = 180;
$config_history['string_purge'] = 180;
}
$table_historical = new StdClass();
$table_historical->width = '100%';
$table_historical->class = 'databox filters';
$table_historical->data = [];
$table_historical->style[0] = 'font-weight: bold';
$table_historical->size[0] = '70%';
$table_historical->size[1] = '30%';
enterprise_hook('enterprise_warnings_history_days');
$table_historical->data[0][0] = __('Max. days before purge');
$table_historical->data[0][0] .= ui_print_help_tip(
__('Configure a purge period more frequent than a compact data period has no sense'),
true
);
$table_historical->data[0][1] = html_print_input_text(
'historical_days_purge',
$config_history['days_purge'],
'',
5,
5,
true
);
$table_historical->data[1][0] = __('Max. days before compact data');
$table_historical->data[1][1] = html_print_input_text(
'historical_days_compact',
$config_history['days_compact'],
'',
5,
5,
true
);
$table_historical->data[2][0] = __('Compact interpolation in hours (1 Fine-20 bad)');
$table_historical->data[2][0] .= ui_print_help_tip(
__('Data will be compacted in intervals of the specified length.'),
true
);
$table_historical->data[2][1] = html_print_input_text(
'historical_step_compact',
$config_history['step_compact'],
'',
5,
5,
true
);
$table_historical->data[3][0] = __('Max. days before delete events');
$table_historical->data[3][0] .= ui_print_help_tip(
__('If the compaction or purge of the data is more frequent than the events deletion, anomalies in module graphs could appear'),
true
);
$table_historical->data[3][1] = html_print_input_text(
'historical_event_purge',
$config_history['event_purge'],
'',
5,
5,
true
);
$table_historical->data[4][0] = __('Max. days before delete string data');
$table_historical->data[4][1] = html_print_input_text(
'historical_string_purge',
$config_history['string_purge'],
'',
5,
5,
true
);
$table_historical->data[4][1] .= html_print_input_hidden(
'historical_history_db_enabled',
0,
true
);
} }
$table_other = new stdClass(); $table_other = new stdClass();
$table_other->width = '100%'; $table_other->width = '100%';
$table_other->class = 'databox filters'; $table_other->class = 'databox filters';
$table_other->data = array (); $table_other->data = [];
$table_other->style[0] = "font-weight: bold"; $table_other->style[0] = 'font-weight: bold';
$table_other->size[0] = '70%'; $table_other->size[0] = '70%';
$table_other->size[1] = '30%'; $table_other->size[1] = '30%';
$table_other->data[1][0] = __('Item limit for realtime reports') . ui_print_help_tip(__('Set a value too high cause a slowdown on console and a performance penalty in the system.'), true); $table_other->data[1][0] = __('Item limit for realtime reports');
$table_other->data[1][1] = html_print_input_text ('report_limit', $table_other->data[1][0] .= ui_print_help_tip(
$config["report_limit"], '', 5, 5, true); __('Set a value too high cause a slowdown on console and a performance penalty in the system.'),
true
$table_other->data[2][0] = __('Compact interpolation in hours (1 Fine-20 bad)') . ui_print_help_tip(__('Data will be compacted in intervals of the specified length.'), true); );
$table_other->data[2][1] = html_print_input_text ('step_compact', $table_other->data[1][1] = html_print_input_text(
$config["step_compact"], '', 5, 5, true); 'report_limit',
$config['report_limit'],
'',
5,
5,
true
);
$intervals = array (); $table_other->data[2][0] = __('Compact interpolation in hours (1 Fine-20 bad)');
$table_other->data[2][0] .= ui_print_help_tip(
__('Data will be compacted in intervals of the specified length.'),
true
);
$table_other->data[2][1] = html_print_input_text(
'step_compact',
$config['step_compact'],
'',
5,
5,
true
);
$intervals = [];
$intervals[SECONDS_1HOUR] = __('1 hour'); $intervals[SECONDS_1HOUR] = __('1 hour');
$intervals[SECONDS_12HOURS] = __('12 hours'); $intervals[SECONDS_12HOURS] = __('12 hours');
$intervals[SECONDS_1DAY] = __('Last day'); $intervals[SECONDS_1DAY] = __('Last day');
@ -112,49 +550,172 @@ $intervals[SECONDS_2WEEK] = __('2 weeks');
$intervals[SECONDS_1MONTH] = __('Last month'); $intervals[SECONDS_1MONTH] = __('Last month');
$table_other->data[3][0] = __('Default hours for event view'); $table_other->data[3][0] = __('Default hours for event view');
$table_other->data[3][1] = html_print_input_text ('event_view_hr', $config["event_view_hr"], '', 5, 5, true); $table_other->data[3][1] = html_print_input_text(
'event_view_hr',
$config['event_view_hr'],
'',
5,
5,
true
);
$table_other->data[5][0] = __('Use realtime statistics'); $table_other->data[5][0] = __('Use realtime statistics');
$table_other->data[5][1] = __('Yes').'&nbsp;'.html_print_radio_button ('realtimestats', 1, '', $config["realtimestats"], true).'&nbsp;&nbsp;'; $table_other->data[5][1] = __('Yes').'&nbsp;'.html_print_radio_button(
$table_other->data[5][1] .= __('No').'&nbsp;'.html_print_radio_button ('realtimestats', 0, '', $config["realtimestats"], true); 'realtimestats',
1,
'',
$config['realtimestats'],
true
).'&nbsp;&nbsp;';
$table_other->data[5][1] .= __('No').'&nbsp;'.html_print_radio_button(
'realtimestats',
0,
'',
$config['realtimestats'],
true
);
$table_other->data[6][0] = __('Batch statistics period (secs)') . ui_print_help_tip(__('If realtime statistics are disabled, statistics interval resfresh will be set here.'), true); $table_other->data[6][0] = __('Batch statistics period (secs)');
$table_other->data[6][1] = html_print_input_text ('stats_interval', $config["stats_interval"], '', 5, 5, true); $table_other->data[6][0] .= ui_print_help_tip(
__('If realtime statistics are disabled, statistics interval resfresh will be set here.'),
true
);
$table_other->data[6][1] = html_print_input_text(
'stats_interval',
$config['stats_interval'],
'',
5,
5,
true
);
$table_other->data[7][0] = __('Use agent access graph') . ui_print_help_icon("agent_access", true); $table_other->data[7][0] = __('Use agent access graph');
$table_other->data[7][1] = __('Yes').'&nbsp;'.html_print_radio_button ('agentaccess', 1, '', $config["agentaccess"], true).'&nbsp;&nbsp;'; $table_other->data[7][0] .= ui_print_help_icon(
$table_other->data[7][1] .= __('No').'&nbsp;'.html_print_radio_button ('agentaccess', 0, '', $config["agentaccess"], true); 'agent_access',
true
);
$table_other->data[7][1] = __('Yes').'&nbsp;';
$table_other->data[7][1] .= html_print_radio_button(
'agentaccess',
1,
'',
$config['agentaccess'],
true
).'&nbsp;&nbsp;';
$table_other->data[7][1] .= __('No').'&nbsp;';
$table_other->data[7][1] .= html_print_radio_button(
'agentaccess',
0,
'',
$config['agentaccess'],
true
);
$table_other->data[8][0] = __('Max. recommended number of files in attachment directory') . ui_print_help_tip(__('This number is the maximum number of files in attachment directory. If this number is reached then a warning message will appear in the header notification space.'), true); $table_other->data[8][0] = __('Max. recommended number of files in attachment directory');
$table_other->data[8][1] = html_print_input_text ('num_files_attachment', $config["num_files_attachment"], '', 5, 5, true); $table_other->data[8][0] .= ui_print_help_tip(
__('This number is the maximum number of files in attachment directory. If this number is reached then a warning message will appear in the header notification space.'),
true
);
$table_other->data[8][1] = html_print_input_text(
'num_files_attachment',
$config['num_files_attachment'],
'',
5,
5,
true
);
$table_other->data[9][0] = __('Delete not init modules'); $table_other->data[9][0] = __('Delete not init modules');
$table_other->data[9][1] = __('Yes').'&nbsp;'.html_print_radio_button ('delete_notinit', 1, '', $config["delete_notinit"], true).'&nbsp;&nbsp;'; $table_other->data[9][1] = __('Yes').'&nbsp;';
$table_other->data[9][1] .= __('No').'&nbsp;'.html_print_radio_button ('delete_notinit', 0, '', $config["delete_notinit"], true); $table_other->data[9][1] .= html_print_radio_button(
'delete_notinit',
1,
'',
$config['delete_notinit'],
true
).'&nbsp;&nbsp;';
$table_other->data[9][1] .= __('No').'&nbsp;'.html_print_radio_button(
'delete_notinit',
0,
'',
$config['delete_notinit'],
true
);
$table_other->data[10][0] = __('Big Operation Step to purge old data') . ui_print_help_tip(__('The number of blocks that a time interval is split into. A bigger value means bigger blocks, which is faster but heavier on the database. Default is 100.'), true); $table_other->data[10][0] = __('Big Operation Step to purge old data');
$table_other->data[10][1] = html_print_input_text ('big_operation_step_datos_purge', $config["big_operation_step_datos_purge"], '', 5, 5, true); $table_other->data[10][0] .= ui_print_help_tip(
__('The number of blocks that a time interval is split into. A bigger value means bigger blocks, which is faster but heavier on the database. Default is 100.'),
true
);
$table_other->data[10][1] = html_print_input_text(
'big_operation_step_datos_purge',
$config['big_operation_step_datos_purge'],
'',
5,
5,
true
);
$table_other->data[11][0] = __('Small Operation Step to purge old data') . ui_print_help_tip(__('The number of rows that are processed in a single query in deletion. Default is 1000. Increase to 3000-5000 in fast systems. Decrease to 500 or 250 on systems with locks.'), true); $table_other->data[11][0] = __('Small Operation Step to purge old data');
$table_other->data[11][1] = html_print_input_text ('small_operation_step_datos_purge', $config["small_operation_step_datos_purge"], '', 5, 5, true); $table_other->data[11][0] .= ui_print_help_tip(
__('The number of rows that are processed in a single query in deletion. Default is 1000. Increase to 3000-5000 in fast systems. Decrease to 500 or 250 on systems with locks.'),
true
);
$table_other->data[11][1] = html_print_input_text(
'small_operation_step_datos_purge',
$config['small_operation_step_datos_purge'],
'',
5,
5,
true
);
$table_other->data[12][0] = __('Graph container - Max. Items') . ui_print_help_tip(__('The number of graphs that are viewed in a container. Default is 10 .Increasing this number could lead to performance problems'), true); $table_other->data[12][0] = __('Graph container - Max. Items');
$table_other->data[12][1] = html_print_input_text ('max_graph_container', $config["max_graph_container"], '', 5, 5, true); $table_other->data[12][0] .= ui_print_help_tip(
__('The number of graphs that are viewed in a container. Default is 10 .Increasing this number could lead to performance problems'),
true
);
$table_other->data[12][1] = html_print_input_text(
'max_graph_container',
$config['max_graph_container'],
'',
5,
5,
true
);
echo '<form id="form_setup" method="post">'; echo '<form id="form_setup" method="post">';
echo "<fieldset>";
echo "<legend>" . __('Database maintenance options') . "</legend>";
html_print_input_hidden ('update_config', 1);
html_print_table ($table);
echo "</fieldset>";
echo "<fieldset>"; echo '<fieldset>';
echo "<legend>" . __('Others') . "</legend>"; echo '<legend>'.__('Database maintenance status').'</legend>';
html_print_input_hidden ('update_config', 1); html_print_table($table_status);
html_print_table ($table_other); echo '</fieldset>';
echo "</fieldset>";
echo '<fieldset>';
echo '<legend>'.__('Database maintenance options').'</legend>';
html_print_table($table);
echo '</fieldset>';
if ($config['history_db_enabled'] == 1) {
echo '<fieldset>';
echo '<legend>'.__('Historical database maintenance options').'</legend>';
html_print_table($table_historical);
echo '</fieldset>';
}
echo '<fieldset>';
echo '<legend>'.__('Others').'</legend>';
html_print_table($table_other);
echo '</fieldset>';
echo '<div class="action-buttons" style="width: '.$table->width.'">'; echo '<div class="action-buttons" style="width: '.$table->width.'">';
html_print_submit_button (__('Update'), 'update_button', false, 'class="sub upd"'); html_print_input_hidden('update_config', 1);
html_print_submit_button(
__('Update'),
'update_button',
false,
'class="sub upd"'
);
echo '</div>'; echo '</div>';
echo '</form>'; echo '</form>';
?> ?>
@ -162,14 +723,13 @@ echo '</form>';
<script language="javascript" type="text/javascript"> <script language="javascript" type="text/javascript">
function change_macro_fields() { function change_macro_fields() {
var value = $("#text-max_macro_fields").val(); var value = $("#text-max_macro_fields").val();
console.log(value); if (value <= 0) {
if (value <= 0) { $("#text-max_macro_fields").val(1);
$("#text-max_macro_fields").val(1); }
} else if (value > 15) {
else if (value > 15) { $("#text-max_macro_fields").val(15);
$("#text-max_macro_fields").val(15); }
}
} }
</script> </script>

View File

@ -1,175 +1,205 @@
<?php <?php
/**
* Extension to manage a list of gateways and the node address where they should
* point to.
*
* @category Extensions
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Load global vars
global $config; global $config;
check_login (); check_login();
if (is_ajax ()) { if (is_ajax()) {
$get_os_icon = (bool) get_parameter ('get_os_icon'); $get_os_icon = (bool) get_parameter('get_os_icon');
$select_timezone = get_parameter ('select_timezone', 0); $select_timezone = get_parameter('select_timezone', 0);
if ($get_os_icon) { if ($get_os_icon) {
$id_os = (int) get_parameter ('id_os'); $id_os = (int) get_parameter('id_os');
ui_print_os_icon ($id_os, false); ui_print_os_icon($id_os, false);
return; return;
} }
if ($select_timezone) { if ($select_timezone) {
$zone = get_parameter('zone'); $zone = get_parameter('zone');
$timezones = timezone_identifiers_list(); $timezones = timezone_identifiers_list();
foreach ($timezones as $timezone_key => $timezone) { foreach ($timezones as $timezone_key => $timezone) {
if (strpos($timezone, $zone) === false) { if (strpos($timezone, $zone) === false) {
unset($timezones[$timezone_key]); unset($timezones[$timezone_key]);
} }
} }
echo json_encode($timezones); echo json_encode($timezones);
} }
return;
return;
} }
if (! check_acl ($config['id_user'], 0, "PM") && ! is_user_admin ($config['id_user'])) { if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
db_pandora_audit("ACL Violation", "Trying to access Setup Management"); db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
require ("general/noaccess.php"); include 'general/noaccess.php';
return; return;
} }
// Load enterprise extensions
enterprise_include_once ('include/functions_setup.php'); // Load enterprise extensions.
enterprise_include_once ('include/functions_io.php'); enterprise_include_once('include/functions_setup.php');
enterprise_include_once ('godmode/setup/setup.php'); enterprise_include_once('include/functions_io.php');
enterprise_include_once('godmode/setup/setup.php');
/* /*
NOTICE FOR DEVELOPERS: NOTICE FOR DEVELOPERS:
Update operation is done in config_process.php Update operation is done in config_process.php
This is done in that way so the user can see the changes inmediatly. This is done in that way so the user can see the changes inmediatly.
If you added a new token, please check config_update_config() in functions_config.php If you added a new token, please check config_update_config() in functions_config.php
to add it there. to add it there.
*/ */
// Gets section to jump to another section // Gets section to jump to another section.
$section = (string) get_parameter ("section", "general"); $section = (string) get_parameter('section', 'general');
$buttons = array(); $buttons = [];
// Draws header // Draws header.
$buttons['general'] = array('active' => false, $buttons['general'] = [
'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=general">' . 'active' => false,
html_print_image("images/gm_setup.png", true, array ("title" => __('General'))) . '</a>'); 'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=general">'.html_print_image('images/gm_setup.png', true, ['title' => __('General')]).'</a>',
];
if (enterprise_installed()) { if (enterprise_installed()) {
$buttons = setup_enterprise_add_Tabs($buttons); $buttons = setup_enterprise_add_Tabs($buttons);
} }
$buttons['auth'] = array('active' => false, $buttons['auth'] = [
'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=auth">' . 'active' => false,
html_print_image("images/key.png", true, array ("title" => __('Authentication'))) . '</a>'); 'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=auth">'.html_print_image('images/key.png', true, ['title' => __('Authentication')]).'</a>',
];
$buttons['perf'] = array('active' => false, $buttons['perf'] = [
'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=perf">' . 'active' => false,
html_print_image("images/performance.png", true, array ("title" => __('Performance'))) . '</a>'); 'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=perf">'.html_print_image('images/performance.png', true, ['title' => __('Performance')]).'</a>',
];
$buttons['vis'] = array('active' => false, $buttons['vis'] = [
'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=vis">' . 'active' => false,
html_print_image("images/chart.png", true, array ("title" => __('Visual styles'))) . '</a>'); 'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=vis">'.html_print_image('images/chart.png', true, ['title' => __('Visual styles')]).'</a>',
];
if (check_acl ($config['id_user'], 0, "AW")) { if (check_acl($config['id_user'], 0, 'AW')) {
if ($config['activate_netflow']) { if ($config['activate_netflow']) {
$buttons['net'] = array('active' => false, $buttons['net'] = [
'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=net">' . 'active' => false,
html_print_image("images/op_netflow.png", true, array ("title" => __('Netflow'))) . '</a>'); 'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&amp;section=net">'.html_print_image('images/op_netflow.png', true, ['title' => __('Netflow')]).'</a>',
} ];
}
} }
$buttons['ehorus'] = array('active' => false, $buttons['ehorus'] = [
'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&section=ehorus">' . 'active' => false,
html_print_image("images/ehorus/ehorus.png", true, array ("title" => __('eHorus'))) . '</a>'); 'text' => '<a href="index.php?sec=gsetup&sec2=godmode/setup/setup&section=ehorus">'.html_print_image('images/ehorus/ehorus.png', true, ['title' => __('eHorus')]).'</a>',
];
$help_header = ''; $help_header = '';
if (enterprise_installed()) { if (enterprise_installed()) {
$subpage = setup_enterprise_add_subsection_main($section, $buttons, $help_header); $subpage = setup_enterprise_add_subsection_main($section, $buttons, $help_header);
} }
switch ($section) { switch ($section) {
case 'general': case 'general':
$buttons['general']['active'] = true; default:
$subpage = ' &raquo ' . __('General'); $buttons['general']['active'] = true;
break; $subpage = ' &raquo '.__('General');
case 'auth': break;
$buttons['auth']['active'] = true;
$subpage = ' &raquo ' . __('Authentication'); case 'auth':
break; $buttons['auth']['active'] = true;
case 'perf': $subpage = ' &raquo '.__('Authentication');
$buttons['perf']['active'] = true; break;
$subpage = ' &raquo ' . __('Performance');
$help_header = 'performance'; case 'perf':
break; $buttons['perf']['active'] = true;
case 'vis': $subpage = ' &raquo '.__('Performance');
$buttons['vis']['active'] = true; $help_header = 'performance';
$subpage = ' &raquo ' . __('Visual styles'); break;
break;
case 'net': case 'vis':
$buttons['net']['active'] = true; $buttons['vis']['active'] = true;
$subpage = ' &raquo ' . __('Netflow'); $subpage = ' &raquo '.__('Visual styles');
break; break;
case 'ehorus':
$buttons['ehorus']['active'] = true; case 'net':
$subpage = ' &raquo ' . __('eHorus'); $buttons['net']['active'] = true;
break; $subpage = ' &raquo '.__('Netflow');
break;
case 'ehorus':
$buttons['ehorus']['active'] = true;
$subpage = ' &raquo '.__('eHorus');
break;
} }
// Header // Header.
ui_print_page_header (__('Configuration') . $subpage, "", false, $help_header, true, $buttons); ui_print_page_header(__('Configuration').$subpage, '', false, $help_header, true, $buttons);
if (isset($config['error_config_update_config'])) { if (isset($config['error_config_update_config'])) {
if ($config['error_config_update_config']['correct'] == false) { if ($config['error_config_update_config']['correct'] == false) {
ui_print_error_message($config['error_config_update_config']['message']); ui_print_error_message($config['error_config_update_config']['message']);
} } else {
else { ui_print_success_message(__('Correct update the setup options'));
ui_print_success_message(__('Correct update the setup options')); }
}
unset($config['error_config_update_config']);
unset($config['error_config_update_config']);
} }
switch ($section) { switch ($section) {
case "general": case 'general':
require_once($config['homedir'] . "/godmode/setup/setup_general.php"); include_once $config['homedir'].'/godmode/setup/setup_general.php';
break; break;
case "auth":
require_once($config['homedir'] . "/godmode/setup/setup_auth.php");
break;
case "perf":
require_once($config['homedir'] . "/godmode/setup/performance.php");
break;
case "net":
require_once($config['homedir'] . "/godmode/setup/setup_netflow.php");
break;
case "vis":
require_once($config['homedir'] . "/godmode/setup/setup_visuals.php");
break;
case "ehorus":
require_once($config['homedir'] . "/godmode/setup/setup_ehorus.php");
break;
default:
enterprise_hook('setup_enterprise_select_tab', array($section));
break;
}
?> case 'auth':
include_once $config['homedir'].'/godmode/setup/setup_auth.php';
break;
case 'perf':
include_once $config['homedir'].'/godmode/setup/performance.php';
break;
case 'net':
include_once $config['homedir'].'/godmode/setup/setup_netflow.php';
break;
case 'vis':
include_once $config['homedir'].'/godmode/setup/setup_visuals.php';
break;
case 'ehorus':
include_once $config['homedir'].'/godmode/setup/setup_ehorus.php';
break;
default:
enterprise_hook('setup_enterprise_select_tab', [$section]);
break;
}