Merge branch 'ent-9662-Restyling-fuentes-colores-botones' of brutus.artica.es:artica/pandorafms into ent-9662-Restyling-fuentes-colores-botones
This commit is contained in:
commit
472b655ee6
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.769-230228
|
||||
Version: 7.0NG.769-230301
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.769"
|
||||
PI_BUILD="230228"
|
||||
PI_BUILD="230301"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{230228}
|
||||
{230301}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.769-230228
|
||||
Version: 7.0NG.769-230301
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
|
@ -269,26 +269,13 @@ $table->cellspacing = 0;
|
|||
$table->cellpadding = 0;
|
||||
$table->size[0] = '50%';
|
||||
$table->size[1] = '50%';
|
||||
$table->class = 'databox filters events-filters-create';
|
||||
$table->class = 'databox filters events-filters-create pdd_10px';
|
||||
$table->style[0] = 'vertical-align: top;';
|
||||
$table->rowspan = [];
|
||||
$table->rowspan[3][0] = 2;
|
||||
|
||||
$table->valign[1] = 'top';
|
||||
|
||||
if (is_metaconsole()) {
|
||||
if ($id) {
|
||||
$table->head[0] = __('Update Filter');
|
||||
} else {
|
||||
$table->head[0] = __('Create Filter');
|
||||
}
|
||||
|
||||
$table->head_colspan[0] = 4;
|
||||
$table->headstyle[0] = 'text-align: center';
|
||||
$table->style[0] = '';
|
||||
$table->valign[1] = '';
|
||||
}
|
||||
|
||||
$table->data = [];
|
||||
|
||||
$table->data[0][0] = html_print_label_input_block(
|
||||
|
|
|
@ -82,36 +82,32 @@ if ($event_response_id > 0) {
|
|||
}
|
||||
|
||||
$table = new stdClass();
|
||||
$table->styleTable = 'margin: 10px 10px 0';
|
||||
$table->styleTable = 'margin: 10px 10px 10px';
|
||||
$table->class = 'databox filters';
|
||||
$table->colspan[4][1] = 3;
|
||||
|
||||
if (is_metaconsole()) {
|
||||
$table->head[0] = __('Edit event responses');
|
||||
$table->head_colspan[0] = 5;
|
||||
$table->headstyle[0] = 'text-align: center';
|
||||
}
|
||||
|
||||
$table->size = [];
|
||||
|
||||
$table->style[0] = 'font-weight: bold;';
|
||||
$table->style[2] = 'font-weight: bold;';
|
||||
$table->cellspacing = 0;
|
||||
$table->cellpadding = 0;
|
||||
$table->size[0] = '50%';
|
||||
$table->size[1] = '50%';
|
||||
|
||||
$table->data = [];
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Name');
|
||||
$data[1] = html_print_input_text(
|
||||
'name',
|
||||
$event_response['name'],
|
||||
'',
|
||||
50,
|
||||
255,
|
||||
true,
|
||||
false,
|
||||
true
|
||||
|
||||
$data[0] = html_print_label_input_block(
|
||||
__('Name'),
|
||||
'<div class="w100p margin-top-10">'.html_print_input_text(
|
||||
'name',
|
||||
$event_response['name'],
|
||||
'',
|
||||
false,
|
||||
255,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
'w100p'
|
||||
).html_print_input_hidden('id_response', $event_response['id'], true).'</div>'
|
||||
);
|
||||
$data[1] .= html_print_input_hidden('id_response', $event_response['id'], true);
|
||||
|
||||
$return_all_group = false;
|
||||
|
||||
|
@ -119,32 +115,64 @@ if (users_can_manage_group_all('PM') === true) {
|
|||
$return_all_group = true;
|
||||
}
|
||||
|
||||
$data[2] = __('Group');
|
||||
$data[3] = html_print_select_groups(false, 'PM', $return_all_group, 'id_group', $event_response['id_group'], '', '', '', true);
|
||||
|
||||
$data[1] = html_print_label_input_block(
|
||||
__('Group'),
|
||||
'<div class="w100p margin-top-10">'.html_print_select_groups(
|
||||
false,
|
||||
'PM',
|
||||
$return_all_group,
|
||||
'id_group',
|
||||
$event_response['id_group'],
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'w100p'
|
||||
).'</div>'
|
||||
);
|
||||
$table->data[0] = $data;
|
||||
|
||||
$data = [];
|
||||
$table->colspan[1][1] = 3;
|
||||
$data[0] = __('Description');
|
||||
$data[1] = html_print_textarea(
|
||||
'description',
|
||||
5,
|
||||
40,
|
||||
$event_response['description'],
|
||||
'class="'.$class_description.'"',
|
||||
true
|
||||
$table->colspan[1][0] = 2;
|
||||
$data[0] = html_print_label_input_block(
|
||||
__('Description'),
|
||||
'<div class="w100p margin-top-10">'.html_print_textarea(
|
||||
'description',
|
||||
5,
|
||||
1,
|
||||
$event_response['description'],
|
||||
'class="'.$class_description.' w100p"',
|
||||
true,
|
||||
'w100p'
|
||||
).'</div>'
|
||||
);
|
||||
$table->data[1] = $data;
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Location').ui_print_help_tip(__('For Command type Modal Window mode is enforced'), true);
|
||||
$locations = [
|
||||
__('Modal window'),
|
||||
__('New window'),
|
||||
];
|
||||
$data[1] = html_print_select($locations, 'new_window', $event_response['new_window'], '', '', '', true);
|
||||
$data[0] = html_print_label_input_block(
|
||||
__('Location').ui_print_help_tip(__('For Command type Modal Window mode is enforced'), true),
|
||||
'<div class="w100p margin-top-10">'.html_print_select(
|
||||
$locations,
|
||||
'new_window',
|
||||
$event_response['new_window'],
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'w100p'
|
||||
).'</div>'
|
||||
);
|
||||
|
||||
$data[2] = '<span class="size">'.__('Size').'</span>';
|
||||
$data[1] = '<span class="size">'.__('Size').'</span>';
|
||||
if ($event_response['modal_width'] == 0) {
|
||||
$event_response['modal_width'] = 620;
|
||||
}
|
||||
|
@ -153,40 +181,88 @@ if ($event_response['modal_height'] == 0) {
|
|||
$event_response['modal_height'] = 500;
|
||||
}
|
||||
|
||||
$data[3] = '<span class="size">'.__('Width').' (px) </span>';
|
||||
$data[3] .= '<span class="size">'.html_print_input_text('modal_width', $event_response['modal_width'], '', 4, 5, true).'</span>';
|
||||
$data[3] .= '<span class="size">'.__('Height').' (px) </span>';
|
||||
$data[3] .= '<span class="size">'.html_print_input_text('modal_height', $event_response['modal_height'], '', 4, 5, true).'</span>';
|
||||
$data[1] = '<div class="flex flex-space-around">';
|
||||
$data[1] .= html_print_label_input_block(
|
||||
__('Width').' (px) ',
|
||||
'<div class="w100p margin-top-10">'.html_print_input_text(
|
||||
'modal_width',
|
||||
$event_response['modal_width'],
|
||||
'',
|
||||
4,
|
||||
5,
|
||||
true
|
||||
).'</div>',
|
||||
['div_class' => 'mgn_tp_0_imp']
|
||||
);
|
||||
$data[1] .= html_print_label_input_block(
|
||||
__('Height').' (px) ',
|
||||
'<div class="w100p margin-top-10">'.html_print_input_text(
|
||||
'modal_height',
|
||||
$event_response['modal_height'],
|
||||
'',
|
||||
4,
|
||||
5,
|
||||
true
|
||||
).'</div>'
|
||||
);
|
||||
$data[1] .= '</div>';
|
||||
$table->data[2] = $data;
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Parameters');
|
||||
$data[1] = html_print_input_text(
|
||||
'params',
|
||||
$event_response['params'],
|
||||
'',
|
||||
50,
|
||||
255,
|
||||
true
|
||||
$data[0] = html_print_label_input_block(
|
||||
__('Parameters'),
|
||||
'<div class="w100p margin-top-10">'.html_print_input_text(
|
||||
'params',
|
||||
$event_response['params'],
|
||||
'',
|
||||
50,
|
||||
255,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
'w100p'
|
||||
).'</div>'
|
||||
);
|
||||
|
||||
$types = [
|
||||
'url' => __('URL'),
|
||||
'command' => __('Command'),
|
||||
];
|
||||
$data[2] = __('Type');
|
||||
$data[3] = html_print_select($types, 'type', $event_response['type'], '', '', '', true);
|
||||
|
||||
$data[1] = html_print_label_input_block(
|
||||
__('Type'),
|
||||
'<div class="w100p margin-top-10">'.html_print_select(
|
||||
$types,
|
||||
'type',
|
||||
$event_response['type'],
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'w100p',
|
||||
false,
|
||||
'width: 100%'
|
||||
).'</div>'
|
||||
);
|
||||
$table->data[3] = $data;
|
||||
|
||||
$data = [];
|
||||
$data[0] = '<span id="command_label" class="labels">'.__('Command').'</span><span id="url_label" class="labels invisible">'.__('URL').'</span>'.ui_print_help_icon('response_macros', true);
|
||||
$data[1] = html_print_textarea(
|
||||
'target',
|
||||
3,
|
||||
1,
|
||||
$event_response['target'],
|
||||
'class="mh_initial w100p"',
|
||||
true
|
||||
$table->colspan[4][0] = 2;
|
||||
$data[0] = html_print_label_input_block(
|
||||
__('Command').'<span id="url_label" class="labels invisible">'.__('URL').'</span>'.ui_print_help_icon('response_macros', true),
|
||||
'<div class="w100p margin-top-10">'.html_print_textarea(
|
||||
'target',
|
||||
3,
|
||||
1,
|
||||
$event_response['target'],
|
||||
'class="mh_initial w100p"',
|
||||
true
|
||||
).'</div>'
|
||||
);
|
||||
$table->data[4] = $data;
|
||||
|
||||
$servers_to_exec = [];
|
||||
$servers_to_exec[0] = __('Local console');
|
||||
|
@ -206,24 +282,43 @@ if (enterprise_installed()) {
|
|||
}
|
||||
}
|
||||
|
||||
$data[2] = '<div id="server_to_exec_label" class="labels invisible">'.__('Server to execute command').'</div>';
|
||||
$data[3] = '<div id="server_to_exec_value" class="invisible" >'.html_print_select($servers_to_exec, 'server_to_exec', $event_response['server_to_exec'], '', '', '', true).'</div>';
|
||||
|
||||
$table->data[4] = $data;
|
||||
|
||||
$data = [];
|
||||
$data[0] = '<div id="command_timeout_label" class="labels invisible">'.__('Command timeout (s)');
|
||||
$data[1] = '<div id="command_timeout_value" class="invisible">'.html_print_input_text('command_timeout', $event_response['command_timeout'], '', 4, 5, true);
|
||||
$data[0] = html_print_label_input_block(
|
||||
'<div id="server_to_exec_label" class="labels invisible">'.__('Server to execute command').'</div>',
|
||||
'<div id="server_to_exec_value" class="invisible" >'.html_print_select(
|
||||
$servers_to_exec,
|
||||
'server_to_exec',
|
||||
$event_response['server_to_exec'],
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
).'</div>'
|
||||
);
|
||||
|
||||
$data[1] = html_print_label_input_block(
|
||||
'<div id="command_timeout_label" class="labels invisible">'.__('Command timeout (s)'),
|
||||
'<div id="command_timeout_value" class="invisible">'.html_print_input_text(
|
||||
'command_timeout',
|
||||
$event_response['command_timeout'],
|
||||
'',
|
||||
4,
|
||||
5,
|
||||
true
|
||||
)
|
||||
);
|
||||
|
||||
$table->data[5] = $data;
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Display command').ui_print_help_tip(__('If enabled the command will be displayed to any user that can execute this event response'), true);
|
||||
$data[1] = html_print_checkbox_switch(
|
||||
'display_command',
|
||||
1,
|
||||
$event_response['display_command'],
|
||||
true
|
||||
$data[0] = html_print_label_input_block(
|
||||
__('Display command').ui_print_help_tip(__('If enabled the command will be displayed to any user that can execute this event response'), true),
|
||||
'<div class="w100p margin-top-10">'.html_print_checkbox_switch(
|
||||
'display_command',
|
||||
1,
|
||||
$event_response['display_command'],
|
||||
true
|
||||
).'</div>'
|
||||
);
|
||||
|
||||
$table->data[6] = $data;
|
||||
|
|
|
@ -31,7 +31,7 @@ global $config;
|
|||
|
||||
check_login();
|
||||
|
||||
enterprise_hook('open_meta_frame');
|
||||
|
||||
|
||||
if (!check_acl($config['id_user'], 0, 'EW') && !check_acl($config['id_user'], 0, 'EM') && ! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
|
@ -125,28 +125,25 @@ switch ($section) {
|
|||
break;
|
||||
}
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
ui_print_standard_header(
|
||||
$subpage,
|
||||
'images/gm_events.png',
|
||||
false,
|
||||
'',
|
||||
true,
|
||||
(array) $buttons,
|
||||
ui_print_standard_header(
|
||||
$subpage,
|
||||
'images/gm_events.png',
|
||||
false,
|
||||
'',
|
||||
true,
|
||||
(array) $buttons,
|
||||
[
|
||||
[
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Configuration'),
|
||||
],
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Events'),
|
||||
],
|
||||
]
|
||||
);
|
||||
} else {
|
||||
ui_meta_print_header(__('Manage events').$subpage, '', $buttons);
|
||||
}
|
||||
'link' => '',
|
||||
'label' => __('Configuration'),
|
||||
],
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Events'),
|
||||
],
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
require_once $config['homedir'].'/include/functions_events.php';
|
||||
|
||||
|
@ -168,5 +165,3 @@ switch ($section) {
|
|||
include_once $config['homedir'].'/godmode/events/event_responses.php';
|
||||
break;
|
||||
}
|
||||
|
||||
enterprise_hook('close_meta_frame');
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -53,6 +53,8 @@ $row = 0;
|
|||
echo '<form id="form_setup" method="post">';
|
||||
html_print_input_hidden('update_config', 1);
|
||||
|
||||
$performance_variables_control = (array) json_decode(io_safe_output($config['performance_variables_control']));
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// BEHAVIOUR CONFIGURATION
|
||||
// ----------------------------------------------------------------------
|
||||
|
@ -64,7 +66,18 @@ $table_behaviour->size[0] = '50%';
|
|||
$table_behaviour->data = [];
|
||||
|
||||
$table_behaviour->data[$row][0] = __('Block size for pagination');
|
||||
$table_behaviour->data[$row][1] = html_print_input_text('block_size', $config['global_block_size'], '', 5, 5, true);
|
||||
$table_behaviour->data[$row][1] = html_print_input(
|
||||
[
|
||||
'type' => 'number',
|
||||
'size' => 5,
|
||||
'max' => $performance_variables_control['block_size']->max,
|
||||
'name' => 'block_size',
|
||||
'value' => $config['global_block_size'],
|
||||
'return' => true,
|
||||
'min' => $performance_variables_control['block_size']->min,
|
||||
'style' => 'width:50px',
|
||||
]
|
||||
);
|
||||
$row++;
|
||||
|
||||
$values = [];
|
||||
|
@ -904,16 +917,19 @@ if (enterprise_installed() === false) {
|
|||
}
|
||||
|
||||
$table_chars->data[$row][0] = __('Data precision');
|
||||
$table_chars->data[$row][1] = html_print_input_text(
|
||||
'graph_precision',
|
||||
$config['graph_precision'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true,
|
||||
$disabled_graph_precision,
|
||||
false,
|
||||
'onChange="change_precision()"'
|
||||
$table_chars->data[$row][1] = html_print_input(
|
||||
[
|
||||
'type' => 'number',
|
||||
'size' => 5,
|
||||
'max' => $performance_variables_control['graph_precision']->max,
|
||||
'name' => 'graph_precision',
|
||||
'value' => $config['graph_precision'],
|
||||
'return' => true,
|
||||
'min' => $performance_variables_control['graph_precision']->min,
|
||||
'style' => 'width:50px',
|
||||
($disabled_graph_precision) ? 'readonly' : '' => 'readonly',
|
||||
'onchange' => 'change_precision()',
|
||||
]
|
||||
);
|
||||
$row++;
|
||||
|
||||
|
@ -922,17 +938,21 @@ if (isset($config['short_module_graph_data']) === false) {
|
|||
}
|
||||
|
||||
$table_chars->data[$row][0] = __('Data precision in graphs');
|
||||
$table_chars->data[$row][1] = html_print_input_text(
|
||||
'short_module_graph_data',
|
||||
$config['short_module_graph_data'],
|
||||
'',
|
||||
5,
|
||||
5,
|
||||
true,
|
||||
$disabled_graph_precision,
|
||||
false,
|
||||
'onChange="change_precision()"'
|
||||
$table_chars->data[$row][1] = html_print_input(
|
||||
[
|
||||
'type' => 'number',
|
||||
'size' => 5,
|
||||
'max' => $performance_variables_control['short_module_graph_data']->max,
|
||||
'name' => 'short_module_graph_data',
|
||||
'value' => $config['short_module_graph_data'],
|
||||
'return' => true,
|
||||
'min' => $performance_variables_control['short_module_graph_data']->min,
|
||||
'style' => 'width:50px',
|
||||
($disabled_graph_precision) ? 'readonly' : '' => 'readonly',
|
||||
'onchange' => 'change_precision()',
|
||||
]
|
||||
);
|
||||
|
||||
$row++;
|
||||
|
||||
$table_chars->data[$row][0] = __(
|
||||
|
|
|
@ -955,29 +955,42 @@ class DiscoveryTaskList extends HTML
|
|||
)
|
||||
) {
|
||||
if ($ipam === true) {
|
||||
$data[9] .= '<a href="'.ui_get_full_url(
|
||||
sprintf(
|
||||
'index.php?sec=gextensions&sec2=enterprise/tools/ipam/ipam&action=edit&id=%d',
|
||||
$tipam_task_id
|
||||
)
|
||||
).'">'.html_print_image(
|
||||
'images/config.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Edit task'),
|
||||
'class' => 'invert_filter',
|
||||
]
|
||||
).'</a>';
|
||||
$data[9] .= '<a href="'.ui_get_full_url(
|
||||
'index.php?sec=gextensions&sec2=enterprise/tools/ipam/ipam&action=delete&id='.$tipam_task_id
|
||||
).'" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">'.html_print_image(
|
||||
'images/cross.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Delete task'),
|
||||
'class' => 'invert_filter',
|
||||
]
|
||||
).'</a>';
|
||||
if (empty($tipam_task_id) === false) {
|
||||
$data[9] .= '<a href="'.ui_get_full_url(
|
||||
sprintf(
|
||||
'index.php?sec=gextensions&sec2=enterprise/tools/ipam/ipam&action=edit&id=%d',
|
||||
$tipam_task_id
|
||||
)
|
||||
).'">'.html_print_image(
|
||||
'images/config.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Edit task'),
|
||||
'class' => 'invert_filter',
|
||||
]
|
||||
).'</a>';
|
||||
$data[9] .= '<a href="'.ui_get_full_url(
|
||||
'index.php?sec=gextensions&sec2=enterprise/tools/ipam/ipam&action=delete&id='.$tipam_task_id
|
||||
).'" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">'.html_print_image(
|
||||
'images/cross.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Delete task'),
|
||||
'class' => 'invert_filter',
|
||||
]
|
||||
).'</a>';
|
||||
} else {
|
||||
$data[9] .= '<a href="'.ui_get_full_url(
|
||||
'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=tasklist&delete=1&task='.$task['id_rt']
|
||||
).'" onClick="if (!confirm(\' '.__('Are you sure?').'\')) return false;">'.html_print_image(
|
||||
'images/cross.png',
|
||||
true,
|
||||
[
|
||||
'title' => __('Delete task'),
|
||||
'class' => 'invert_filter',
|
||||
]
|
||||
).'</a>';
|
||||
}
|
||||
} else {
|
||||
// Check if is a H&D, Cloud or Application or IPAM.
|
||||
$data[9] .= '<a href="'.ui_get_full_url(
|
||||
|
|
|
@ -2279,7 +2279,7 @@ if ($process_buffers === true) {
|
|||
'',
|
||||
true,
|
||||
true,
|
||||
'white_box white_box_opened fixed_filter_bar',
|
||||
'white_box white_box_opened no_border',
|
||||
'no-border flex-row'
|
||||
);
|
||||
|
||||
|
|
|
@ -1158,7 +1158,6 @@ if (check_login()) {
|
|||
}
|
||||
}
|
||||
|
||||
hd($data[4], true);
|
||||
// Module thresholds.
|
||||
$data[5] = '';
|
||||
if ((int) $module['id_tipo_modulo'] !== 25) {
|
||||
|
|
|
@ -96,7 +96,10 @@ class AuditLog extends HTML
|
|||
// Datatables list.
|
||||
try {
|
||||
$columns = [
|
||||
'id_usuario',
|
||||
[
|
||||
'text' => 'id_usuario',
|
||||
'class' => 'w50px',
|
||||
],
|
||||
'accion',
|
||||
'fecha',
|
||||
'ip_origen',
|
||||
|
@ -206,11 +209,23 @@ class AuditLog extends HTML
|
|||
'name' => 'filter_text',
|
||||
],
|
||||
[
|
||||
'label' => __('Max. hours old'),
|
||||
'type' => 'text',
|
||||
'class' => 'w100p',
|
||||
'id' => 'filter_period',
|
||||
'name' => 'filter_period',
|
||||
'label' => __('Max. hours old'),
|
||||
'type' => 'select',
|
||||
'class' => 'w20px',
|
||||
'select2_enable' => true,
|
||||
'sort' => false,
|
||||
'selected' => 168,
|
||||
'fields' => [
|
||||
24 => __('1 day'),
|
||||
168 => __('7 days'),
|
||||
360 => __('15 days'),
|
||||
744 => __('1 month'),
|
||||
2160 => __('3 months'),
|
||||
4320 => __('6 months'),
|
||||
8760 => __('1 Year'),
|
||||
],
|
||||
'id' => 'filter_period',
|
||||
'name' => 'filter_period',
|
||||
],
|
||||
[
|
||||
'label' => __('IP'),
|
||||
|
@ -225,7 +240,7 @@ class AuditLog extends HTML
|
|||
'nothing' => __('All'),
|
||||
'nothing_value' => '-1',
|
||||
'sql' => 'SELECT DISTINCT(accion), accion AS text FROM tsesion',
|
||||
'class' => 'mw250px',
|
||||
'class' => 'mw200px',
|
||||
'id' => 'filter_type',
|
||||
'name' => 'filter_type',
|
||||
],
|
||||
|
@ -237,7 +252,7 @@ class AuditLog extends HTML
|
|||
'sql' => 'SELECT id_user, id_user AS text FROM tusuario UNION SELECT "SYSTEM"
|
||||
AS id_user, "SYSTEM" AS text UNION SELECT "N/A"
|
||||
AS id_user, "N/A" AS text',
|
||||
'class' => 'mw250px',
|
||||
'class' => 'mw200px',
|
||||
'id' => 'filter_user',
|
||||
'name' => 'filter_user',
|
||||
],
|
||||
|
@ -351,9 +366,12 @@ class AuditLog extends HTML
|
|||
).ui_print_timestamp($tmp->utimestamp, true);
|
||||
|
||||
if (enterprise_installed() === true) {
|
||||
$tmp->security = enterprise_hook('cell1EntepriseAudit', [$tmp->id_sesion]);
|
||||
$tmp->action = enterprise_hook('cell2EntepriseAudit', []);
|
||||
$tmp->extendedInfo = enterprise_hook('rowEnterpriseAudit', [$tmp->id_sesion]);
|
||||
$extendedInfo = enterprise_hook('rowEnterpriseAudit', [$tmp->id_sesion]);
|
||||
if (empty($extendedInfo) === false) {
|
||||
$tmp->security = enterprise_hook('cell1EntepriseAudit', [$tmp->id_sesion]);
|
||||
$tmp->action = enterprise_hook('cell2EntepriseAudit', []);
|
||||
$tmp->extendedInfo = $extendedInfo;
|
||||
}
|
||||
}
|
||||
|
||||
$carry[] = $tmp;
|
||||
|
|
|
@ -248,6 +248,11 @@ class ConsoleSupervisor
|
|||
|
||||
$this->checkAuditLogOldLocation();
|
||||
|
||||
/*
|
||||
* Check if performance variables are corrects
|
||||
*/
|
||||
$this->checkPerformanceVariables();
|
||||
|
||||
/*
|
||||
* Checks if sync queue is longer than limits.
|
||||
* NOTIF.SYNCQUEUE.LENGTH
|
||||
|
@ -524,6 +529,11 @@ class ConsoleSupervisor
|
|||
|
||||
$this->checkAuditLogOldLocation();
|
||||
|
||||
/*
|
||||
* Check if performance variables are corrects
|
||||
*/
|
||||
$this->checkPerformanceVariables();
|
||||
|
||||
/*
|
||||
* Checks if sync queue is longer than limits.
|
||||
* NOTIF.SYNCQUEUE.LENGTH
|
||||
|
@ -553,6 +563,91 @@ class ConsoleSupervisor
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if performance variables are corrects
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function checkPerformanceVariables()
|
||||
{
|
||||
global $config;
|
||||
|
||||
$names = [
|
||||
'event_purge' => 'Max. days before events are deleted',
|
||||
'trap_purge' => 'Max. days before traps are deleted',
|
||||
'audit_purge' => 'Max. days before audited events are deleted',
|
||||
'string_purge' => 'Max. days before string data is deleted',
|
||||
'gis_purge' => 'Max. days before GIS data is deleted',
|
||||
'days_purge' => 'Max. days before purge',
|
||||
'days_compact' => 'Max. days before data is compacted',
|
||||
'days_delete_unknown' => 'Max. days before unknown modules are deleted',
|
||||
'days_delete_not_initialized' => 'Max. days before delete not initialized modules',
|
||||
'days_autodisable_deletion' => 'Max. days before autodisabled agents are deleted',
|
||||
'delete_old_network_matrix' => 'Max. days before delete old network matrix data',
|
||||
'report_limit' => 'Item limit for real-time reports',
|
||||
'event_view_hr' => 'Default hours for event view',
|
||||
'big_operation_step_datos_purge' => 'Big Operation Step to purge old data',
|
||||
'small_operation_step_datos_purge' => 'Small Operation Step to purge old data',
|
||||
'row_limit_csv' => 'Row limit in csv log',
|
||||
'limit_parameters_massive' => 'Limit for bulk operations',
|
||||
'block_size' => 'Block size for pagination',
|
||||
'short_module_graph_data' => 'Data precision',
|
||||
'graph_precision' => 'Data precision in graphs',
|
||||
];
|
||||
|
||||
$variables = (array) json_decode(io_safe_output($config['performance_variables_control']));
|
||||
|
||||
foreach ($variables as $variable => $values) {
|
||||
if (empty($config[$variable]) === true || $config[$variable] === '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$message = '';
|
||||
$limit_value = '';
|
||||
if ($config[$variable] > $values->max) {
|
||||
$message = 'Check the setting of %s, a value greater than %s is not recommended';
|
||||
$limit_value = $values->max;
|
||||
}
|
||||
|
||||
if ($config[$variable] < $values->min) {
|
||||
$message = 'Check the setting of %s, a value less than %s is not recommended';
|
||||
$limit_value = $values->min;
|
||||
}
|
||||
|
||||
if ($limit_value !== '' && $message !== '') {
|
||||
if (is_metaconsole() === true) {
|
||||
$this->notify(
|
||||
[
|
||||
'type' => 'NOTIF.VARIABLES.PERFORMANCE.'.$variable,
|
||||
'title' => __('Incorrect config value'),
|
||||
'message' => __(
|
||||
$message,
|
||||
$names[$variable],
|
||||
$limit_value
|
||||
),
|
||||
'url' => '__url__index.php?sec=advanced&sec2=advanced/metasetup',
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$this->notify(
|
||||
[
|
||||
'type' => 'NOTIF.VARIABLES.PERFORMANCE.'.$variable,
|
||||
'title' => __('Incorrect config value'),
|
||||
'message' => __(
|
||||
$message,
|
||||
$names[$variable],
|
||||
$limit_value
|
||||
),
|
||||
'url' => '__url__/index.php?sec=general&sec2=godmode/setup/setup',
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Executes console maintenance operations. Executed ALWAYS through CRON.
|
||||
*
|
||||
|
|
|
@ -669,7 +669,6 @@ class Tree
|
|||
}
|
||||
|
||||
$module['statusImageHTML'] = ui_print_status_image($statusType, htmlspecialchars($statusTitle), true, ['is_tree_view' => true]);
|
||||
hd($module['statusImageHTML'], true);
|
||||
// HTML of the server type image.
|
||||
$module['serverTypeHTML'] = ui_print_servertype_icon((int) $module['server_type']);
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
/**
|
||||
* Pandora build version and version
|
||||
*/
|
||||
$build_version = 'PC230228';
|
||||
$build_version = 'PC230301';
|
||||
$pandora_version = 'v7.0NG.769';
|
||||
|
||||
// Do not overwrite default timezone set if defined.
|
||||
|
|
|
@ -2317,6 +2317,96 @@ function config_process_config()
|
|||
config_update_value('2Fa_auth', '');
|
||||
}
|
||||
|
||||
if (isset($config['performance_variables_control']) === false) {
|
||||
config_update_value(
|
||||
'performance_variables_control',
|
||||
json_encode(
|
||||
[
|
||||
'event_purge' => [
|
||||
'max' => 45,
|
||||
'min' => 1,
|
||||
],
|
||||
'trap_purge' => [
|
||||
'max' => 45,
|
||||
'min' => 1,
|
||||
],
|
||||
'audit_purge' => [
|
||||
'max' => 365,
|
||||
'min' => 7,
|
||||
],
|
||||
'string_purge' => [
|
||||
'max' => 365,
|
||||
'min' => 7,
|
||||
],
|
||||
'gis_purge' => [
|
||||
'max' => 365,
|
||||
'min' => 7,
|
||||
],
|
||||
'days_purge' => [
|
||||
'max' => 365,
|
||||
'min' => 7,
|
||||
],
|
||||
'days_compact' => [
|
||||
'max' => 365,
|
||||
'min' => 0,
|
||||
],
|
||||
'days_delete_unknown' => [
|
||||
'max' => 90,
|
||||
'min' => 0,
|
||||
],
|
||||
'days_delete_not_initialized' => [
|
||||
'max' => 90,
|
||||
'min' => 0,
|
||||
],
|
||||
'days_autodisable_deletion' => [
|
||||
'max' => 90,
|
||||
'min' => 0,
|
||||
],
|
||||
'delete_old_network_matrix' => [
|
||||
'max' => 30,
|
||||
'min' => 1,
|
||||
],
|
||||
'report_limit' => [
|
||||
'max' => 500,
|
||||
'min' => 1,
|
||||
],
|
||||
'event_view_hr' => [
|
||||
'max' => 360,
|
||||
'min' => 1,
|
||||
],
|
||||
'big_operation_step_datos_purge' => [
|
||||
'max' => 10000,
|
||||
'min' => 100,
|
||||
],
|
||||
'small_operation_step_datos_purge' => [
|
||||
'max' => 10000,
|
||||
'min' => 100,
|
||||
],
|
||||
'row_limit_csv' => [
|
||||
'max' => 1000000,
|
||||
'min' => 1,
|
||||
],
|
||||
'limit_parameters_massive' => [
|
||||
'max' => 2000,
|
||||
'min' => 100,
|
||||
],
|
||||
'block_size' => [
|
||||
'max' => 200,
|
||||
'min' => 10,
|
||||
],
|
||||
'short_module_graph_data' => [
|
||||
'max' => 20,
|
||||
'min' => 1,
|
||||
],
|
||||
'graph_precision' => [
|
||||
'max' => 5,
|
||||
'min' => 1,
|
||||
],
|
||||
]
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if (isset($config['agent_wizard_defaults']) === false) {
|
||||
config_update_value(
|
||||
'agent_wizard_defaults',
|
||||
|
|
|
@ -176,7 +176,7 @@ function groupview_get_groups_list($id_user=false, $access='AR', $is_not_paginat
|
|||
[]
|
||||
);
|
||||
|
||||
$total_counters = [];
|
||||
$list = [];
|
||||
|
||||
foreach ($agents_counters as $id_group => $agent_counter) {
|
||||
$list[$id_group]['_name_'] = $agent_counter['name'];
|
||||
|
|
|
@ -718,7 +718,7 @@ function inventory_get_datatable(
|
|||
}
|
||||
|
||||
if (array_search(-1, $agents_ids) === false) {
|
||||
array_push($where, 'id_agente IN ('.implode(',', $agents_ids).')');
|
||||
array_push($where, 'tagent_module_inventory.id_agente IN ('.implode(',', $agents_ids).')');
|
||||
}
|
||||
|
||||
if ($inventory_module_name[0] !== '0'
|
||||
|
@ -732,75 +732,61 @@ function inventory_get_datatable(
|
|||
array_push($where, "tagent_module_inventory.data LIKE '%".$inventory_search_string."%'");
|
||||
}
|
||||
|
||||
$sql = 'SELECT *
|
||||
FROM tmodule_inventory, tagent_module_inventory
|
||||
WHERE
|
||||
'.implode(' AND ', $where).'
|
||||
ORDER BY tmodule_inventory.id_module_inventory LIMIT '.$offset.', '.$config['block_size'];
|
||||
|
||||
$sql_count = 'SELECT COUNT(*)
|
||||
FROM tmodule_inventory, tagent_module_inventory
|
||||
WHERE '.implode(' AND ', $where);
|
||||
$sql = sprintf(
|
||||
'SELECT tmodule_inventory.*,
|
||||
tagent_module_inventory.*,
|
||||
tagente.alias as name_agent
|
||||
FROM tmodule_inventory
|
||||
INNER JOIN tagent_module_inventory
|
||||
ON tmodule_inventory.id_module_inventory = tagent_module_inventory.id_module_inventory
|
||||
LEFT JOIN tagente
|
||||
ON tagente.id_agente = tagent_module_inventory.id_agente
|
||||
WHERE %s
|
||||
ORDER BY tmodule_inventory.id_module_inventory
|
||||
LIMIT %d, %d',
|
||||
implode(' AND ', $where),
|
||||
$offset,
|
||||
$config['block_size']
|
||||
);
|
||||
|
||||
$rows = db_get_all_rows_sql($sql);
|
||||
$count = db_get_sql($sql_count);
|
||||
|
||||
if ($order_by_agent === false) {
|
||||
$modules = [];
|
||||
$module_rows = [];
|
||||
|
||||
foreach ($rows as $row) {
|
||||
array_push($modules, $row['name']);
|
||||
}
|
||||
|
||||
foreach ($modules as $module) {
|
||||
$rows_tmp = [];
|
||||
foreach ($rows as $row) {
|
||||
if ($row['name'] === $module) {
|
||||
$agent_name = db_get_value_sql(
|
||||
'SELECT alias
|
||||
FROM tagente
|
||||
WHERE id_agente = '.$row['id_agente']
|
||||
);
|
||||
|
||||
$row['name_agent'] = $agent_name;
|
||||
array_push($rows_tmp, $row);
|
||||
$module_rows[$module] = $rows_tmp;
|
||||
$data_rows = explode(PHP_EOL, $row['data']);
|
||||
foreach ($data_rows as $data_key => $data_value) {
|
||||
if (empty($data_value) === false) {
|
||||
$row['data'] = $data_value;
|
||||
$modules[$row['name']][$row['name_agent'].'-'.$data_key.'-'.$data_value] = $row;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $module_rows;
|
||||
return $modules;
|
||||
} else {
|
||||
$agents_rows = [];
|
||||
$agent_data = [];
|
||||
$rows_tmp = [];
|
||||
foreach ($rows as $row) {
|
||||
$agent_name = db_get_value_sql(
|
||||
'SELECT alias
|
||||
FROM tagente
|
||||
WHERE id_agente = '.$row['id_agente']
|
||||
);
|
||||
$row['name_agent'] = $agent_name;
|
||||
$agent_data[$row['id_agente']][] = $row;
|
||||
}
|
||||
|
||||
foreach ($agent_data as $id_agent => $rows) {
|
||||
$agent_name = db_get_value_sql(
|
||||
'SELECT alias
|
||||
FROM tagente
|
||||
WHERE id_agente = '.$id_agent
|
||||
);
|
||||
|
||||
$rows_tmp['agent'] = $agent_name;
|
||||
|
||||
$rows_tmp['agent'] = $row['name_agent'];
|
||||
foreach ($rows as $row) {
|
||||
if ($utimestamp > 0) {
|
||||
$data_row = db_get_row_sql(
|
||||
"SELECT data, timestamp
|
||||
FROM tagente_datos_inventory
|
||||
WHERE utimestamp <= '".$utimestamp."'
|
||||
AND id_agent_module_inventory = ".$row['id_agent_module_inventory'].' ORDER BY utimestamp DESC'
|
||||
sprintf(
|
||||
'SELECT `data`,
|
||||
`timestamp`
|
||||
FROM tagente_datos_inventory
|
||||
WHERE utimestamp <= "%s"
|
||||
AND id_agent_module_inventory = %d
|
||||
ORDER BY utimestamp DESC',
|
||||
$utimestamp,
|
||||
$row['id_agent_module_inventory']
|
||||
)
|
||||
);
|
||||
|
||||
if ($data_row !== false) {
|
||||
|
@ -821,6 +807,63 @@ function inventory_get_datatable(
|
|||
}
|
||||
|
||||
|
||||
function get_data_basic_info_sql($params, $count=false)
|
||||
{
|
||||
$where = 'WHERE 1=1 ';
|
||||
if ($params['id_agent'] > 0) {
|
||||
$where .= sprintf(' AND id_agente = %d', $params['id_agent']);
|
||||
}
|
||||
|
||||
if ($params['search'] > 0) {
|
||||
$where .= sprintf(
|
||||
' AND ( alias LIKE "%%%s%%" )',
|
||||
$params['search']
|
||||
);
|
||||
}
|
||||
|
||||
$limit_condition = '';
|
||||
$order_condition = '';
|
||||
$fields = 'count(*)';
|
||||
if ($count !== true) {
|
||||
$fields = '*';
|
||||
|
||||
$limit_condition = sprintf(
|
||||
'LIMIT %d, %d',
|
||||
$params['start'],
|
||||
$params['length']
|
||||
);
|
||||
|
||||
$order_condition = sprintf('ORDER BY %s', $params['order']);
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'SELECT %s
|
||||
FROM tagente
|
||||
%s
|
||||
%s
|
||||
%s',
|
||||
$fields,
|
||||
$where,
|
||||
$order_condition,
|
||||
$limit_condition
|
||||
);
|
||||
|
||||
if ($count !== true) {
|
||||
$result = db_get_all_rows_sql($sql);
|
||||
if ($result === false) {
|
||||
$result = [];
|
||||
}
|
||||
} else {
|
||||
$result = db_get_sql($sql);
|
||||
if ($result === false) {
|
||||
$result = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
function inventory_get_dates($module_inventory_name, $inventory_agent, $inventory_id_group)
|
||||
{
|
||||
$sql = 'SELECT tagente_datos_inventory.utimestamp,
|
||||
|
|
|
@ -160,6 +160,7 @@ function notifications_get_subtypes(?string $source=null)
|
|||
'NOTIF.SERVER.QUEUE',
|
||||
'NOTIF.SERVER.MASTER',
|
||||
'NOTIF.ACCESSSTASTICS.PERFORMANCE',
|
||||
'NOTIF.VARIABLES.PERFORMANCE',
|
||||
],
|
||||
];
|
||||
|
||||
|
|
|
@ -225,7 +225,6 @@ function profile_print_profile_table($id, $json_profile=false, $return=false, $c
|
|||
} else {
|
||||
// Only profiles that can be viewed by the user.
|
||||
$group_um = users_get_groups_UM($config['id_user']);
|
||||
hd($group_um, true);
|
||||
if (isset($group_um[0]) === true) {
|
||||
$group_um_string = implode(',', array_keys(users_get_groups($config['id_user'], 'um', true)));
|
||||
} else {
|
||||
|
@ -239,7 +238,6 @@ function profile_print_profile_table($id, $json_profile=false, $return=false, $c
|
|||
$id,
|
||||
$group_um_string
|
||||
);
|
||||
hd($sql, true);
|
||||
$result = db_get_all_rows_sql($sql);
|
||||
}
|
||||
|
||||
|
|
|
@ -3728,11 +3728,6 @@ function ui_print_datatable(array $parameters)
|
|||
$("#'.$form_id.'_loading").remove();
|
||||
}
|
||||
|
||||
// Move elements to table_action_buttons bar.
|
||||
$(".action_buttons_right_content").append($("#'.$table_id.'_wrapper > .dataTables_paginate.paging_simple_numbers"));
|
||||
$(".action_buttons_right_content").append($("#'.$table_id.'_wrapper > .dataTables_length"));
|
||||
$(".action_buttons_right_content").append($("#'.$table_id.'_wrapper > .dt-buttons"));
|
||||
|
||||
if (json.error) {
|
||||
console.error(json.error);
|
||||
$("#error-'.$table_id.'").html(json.error);
|
||||
|
@ -3904,6 +3899,13 @@ function ui_print_datatable(array $parameters)
|
|||
{ bSortable: false, targets: '.$no_sortable_columns.' }
|
||||
],
|
||||
ordering: '.$ordering.',
|
||||
initComplete: function(settings, json) {
|
||||
// Move elements to table_action_buttons bar.
|
||||
$(".action_buttons_right_content").append($("#'.$table_id.'_wrapper > .dataTables_paginate.paging_simple_numbers"));
|
||||
$(".action_buttons_right_content").append($("#'.$table_id.'_wrapper > .dataTables_length"));
|
||||
$(".action_buttons_right_content").append($("#'.$table_id.'_wrapper > .dt-buttons"));
|
||||
$(".action_buttons_right_content").append($("#'.$table_id.'_wrapper > .dataTables_filter"));
|
||||
},
|
||||
columns: [';
|
||||
|
||||
foreach ($parameters['datacolumns'] as $data) {
|
||||
|
@ -3926,8 +3928,6 @@ function ui_print_datatable(array $parameters)
|
|||
$("#button-'.$form_id.'_search_bt").click(function (){
|
||||
dt_'.$table_id.'.draw().page(0)
|
||||
});
|
||||
|
||||
//$(".action_buttons_right_content").html($("#'.$table_id.'_wrapper > .dataTables_paginate.paging_simple_numbers"));
|
||||
';
|
||||
|
||||
if (isset($parameters['caption']) === true
|
||||
|
@ -3958,7 +3958,7 @@ function ui_print_datatable(array $parameters)
|
|||
ui_require_css_file('datatables.min', 'include/styles/js/');
|
||||
ui_require_css_file('tables');
|
||||
if (is_metaconsole()) {
|
||||
ui_require_css_file('tables_meta', ENTERPRISE_DIR.'/include/styles/');
|
||||
ui_require_css_file('meta_tables', ENTERPRISE_DIR.'/include/styles/');
|
||||
}
|
||||
|
||||
ui_require_javascript_file('datatables.min');
|
||||
|
@ -3986,10 +3986,10 @@ function ui_print_datatable(array $parameters)
|
|||
);
|
||||
$output .= '"/>';
|
||||
if (is_metaconsole() === true) {
|
||||
// Load tables_meta.css.
|
||||
// Load meta_tables.css.
|
||||
$output .= '<link rel="stylesheet" href="';
|
||||
$output .= ui_get_full_url(
|
||||
ENTERPRISE_DIR.'/include/styles/tables_meta.css',
|
||||
ENTERPRISE_DIR.'/include/styles/meta_tables.css',
|
||||
false,
|
||||
false,
|
||||
false
|
||||
|
@ -4407,7 +4407,7 @@ function ui_toggle(
|
|||
|
||||
$class_table = '';
|
||||
if ($id_table !== false) {
|
||||
$class_table = ' $("#'.$id_table.'_wrapper").addClass("w100p");'."\n";
|
||||
$class_table = '$("#'.$id_table.'_wrapper").addClass("w100p");'."\n";
|
||||
}
|
||||
|
||||
if ($disableToggle === false) {
|
||||
|
@ -6290,7 +6290,7 @@ function ui_print_agent_autocomplete_input($parameters)
|
|||
true
|
||||
);
|
||||
if ($show_helptip) {
|
||||
$html .= ui_print_help_tip($helptip_text, true);
|
||||
$html .= ui_print_input_placeholder($helptip_text, true);
|
||||
}
|
||||
|
||||
if ($print_hidden_input_idagent) {
|
||||
|
|
|
@ -169,6 +169,7 @@ body {
|
|||
body * {
|
||||
font-family: "lato";
|
||||
}
|
||||
|
||||
body.body-report {
|
||||
display: block;
|
||||
}
|
||||
|
@ -1023,6 +1024,7 @@ select:-internal-list-box {
|
|||
border: 1px solid #e5e9ed;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.align-top td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
@ -1161,6 +1163,11 @@ p.center {
|
|||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.margin-lr-10 {
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.img_help {
|
||||
cursor: help;
|
||||
margin: 0 5px;
|
||||
|
@ -2769,6 +2776,7 @@ td.cellBig {
|
|||
right: 0;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
/* Standard styles for status colos (groups, events, backgrounds...) */
|
||||
.opacity_cell {
|
||||
filter: alpha(opacity=80);
|
||||
|
@ -5951,6 +5959,7 @@ div#bullets_modules div {
|
|||
.agent_details_first_row.agent_details_line {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.agent_details_line {
|
||||
display: flex;
|
||||
margin: 20px 0 0;
|
||||
|
@ -9170,11 +9179,12 @@ div.stat-win-spinner img {
|
|||
font-size: 11pt;
|
||||
}
|
||||
|
||||
.checkbox-random-name {
|
||||
/*.checkbox-random-name {
|
||||
width: 100px !important;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
*/
|
||||
.btn_update_online_open {
|
||||
float: right;
|
||||
margin-bottom: 20px;
|
||||
|
@ -9203,6 +9213,7 @@ div.stat-win-spinner img {
|
|||
.line_height_26 {
|
||||
line-height: 26px;
|
||||
}
|
||||
|
||||
.line_height_0pt {
|
||||
line-height: 10pt !important;
|
||||
}
|
||||
|
@ -9886,6 +9897,7 @@ div#err_msg_centralised {
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.div-col {
|
||||
width: 33%;
|
||||
display: flex;
|
||||
|
@ -9968,6 +9980,7 @@ textarea[list],
|
|||
select[list] {
|
||||
line-height: initial;
|
||||
}
|
||||
|
||||
textarea {
|
||||
padding: 10px;
|
||||
height: auto;
|
||||
|
@ -10345,14 +10358,17 @@ button div.load {
|
|||
mask: url(../../images/logs@svg.svg) no-repeat center / contain;
|
||||
-webkit-mask: url(../../images/logs@svg.svg) no-repeat center / contain;
|
||||
}
|
||||
|
||||
button div.camera {
|
||||
mask: url(../../images/picture.svg) no-repeat center / contain;
|
||||
-webkit-mask: url(../../images/picture.svg) no-repeat center / contain;
|
||||
}
|
||||
|
||||
button div.alert {
|
||||
mask: url(../../images/alert@svg.svg) no-repeat center / contain;
|
||||
-webkit-mask: url(../../images/alert@svg.svg) no-repeat center / contain;
|
||||
}
|
||||
|
||||
button div.ok {
|
||||
mask: url(../../images/ok.svg) no-repeat center / contain;
|
||||
-webkit-mask: url(../../images/ok.svg) no-repeat center / contain;
|
||||
|
@ -10412,6 +10428,7 @@ button div.info {
|
|||
mask: url(../../images/info@svg.svg) no-repeat center / contain;
|
||||
-webkit-mask: url(../../images/info@svg.svg) no-repeat center / contain;
|
||||
}
|
||||
|
||||
button div.signin {
|
||||
mask: url(../../images/signin.svg) no-repeat center / contain;
|
||||
-webkit-mask: url(../../images/signin.svg) no-repeat center / contain;
|
||||
|
@ -10451,6 +10468,7 @@ button div.cog.rotation {
|
|||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
|
||||
.ui-dialog-buttonset {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
|
@ -10916,6 +10934,7 @@ tr.bring_next_field {
|
|||
.external_tools_title {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
pre.external_tools_output {
|
||||
padding: 0 10px;
|
||||
/*
|
||||
|
@ -11005,6 +11024,7 @@ pre.external_tools_output {
|
|||
margin-right: 10px;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
/*
|
||||
.filter_table input,
|
||||
.table_modal_alternate input,
|
||||
|
@ -11140,6 +11160,7 @@ table.table_modal_alternate
|
|||
span.subsection_header_title {
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.subsection_header_title.secondary {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
@ -11147,6 +11168,7 @@ span.subsection_header_title {
|
|||
span.subsection_header_title.secondary {
|
||||
height: 14px;
|
||||
}
|
||||
|
||||
.regular_font {
|
||||
font-family: "lato" !important;
|
||||
}
|
||||
|
@ -11380,6 +11402,27 @@ div[role="dialog"] {
|
|||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.filter-list-adv .wizard li {
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.filter-list-adv .wizard li label {
|
||||
color: #161628;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
line-height: 16px;
|
||||
text-align: left;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.filter-list-adv fieldset.several-fields {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.display-grid {
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.flex-colum-center {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
|
|
@ -712,3 +712,22 @@ td:has(div > .no-margin-top) {
|
|||
.no-margin-top {
|
||||
margin-top: 0px !important;
|
||||
}
|
||||
|
||||
tr.datos > td.datos > div > label,
|
||||
tr.datos2 > td.datos2 > div > label,
|
||||
tr.datos2 > td.datos2 > div > div > label {
|
||||
font-size: 13px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
tr.datos2 > td.datos2 > div > div {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.mgn_tp_0_imp {
|
||||
margin-top: 0px !important;
|
||||
}
|
||||
|
||||
.dataTables_wrapper .dataTables_filter input {
|
||||
margin: 0.5em;
|
||||
}
|
||||
|
|
|
@ -131,7 +131,7 @@
|
|||
<div style='padding-bottom: 50px'>
|
||||
<?php
|
||||
$version = '7.0NG.769';
|
||||
$build = '230228';
|
||||
$build = '230301';
|
||||
$banner = "v$version Build $build";
|
||||
error_reporting(0);
|
||||
|
||||
|
|
|
@ -184,35 +184,27 @@ if ($idAgent != 0) {
|
|||
|
||||
$print_agent = true;
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
// Header.
|
||||
ui_print_standard_header(
|
||||
__('Alert detail'),
|
||||
'images/op_alerts.png',
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
[],
|
||||
// Header.
|
||||
ui_print_standard_header(
|
||||
__('Alert detail'),
|
||||
'images/op_alerts.png',
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
[],
|
||||
[
|
||||
[
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Monitoring'),
|
||||
],
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Views'),
|
||||
],
|
||||
]
|
||||
);
|
||||
} else {
|
||||
ui_meta_print_header(__('Alerts view'));
|
||||
}
|
||||
'link' => '',
|
||||
'label' => __('Monitoring'),
|
||||
],
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Views'),
|
||||
],
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
enterprise_hook('open_meta_frame');
|
||||
|
||||
|
||||
$alerts = [];
|
||||
|
||||
if ($tab != null) {
|
||||
|
@ -237,7 +229,6 @@ if (is_metaconsole() === false) {
|
|||
[
|
||||
'title' => __('Standby'),
|
||||
'text' => __('Standby'),
|
||||
'style' => 'max-width: 5%;',
|
||||
],
|
||||
);
|
||||
|
||||
|
@ -252,7 +243,6 @@ if (is_metaconsole() === false) {
|
|||
[
|
||||
'title' => __('Policy'),
|
||||
'text' => __('Policy'),
|
||||
'style' => 'max-width: 5%;vertical-align: baseline;',
|
||||
]
|
||||
);
|
||||
|
||||
|
@ -278,26 +268,11 @@ if (is_metaconsole() === false) {
|
|||
if ((bool) check_acl($config['id_user'], $id_group, 'AW') === true || (bool) check_acl($config['id_user'], $id_group, 'LM') === true) {
|
||||
array_push(
|
||||
$column_names,
|
||||
[
|
||||
'text' => 'Module',
|
||||
'style' => 'min-width: 15%;vertical-align: baseline;',
|
||||
],
|
||||
[
|
||||
'text' => 'Template',
|
||||
'style' => 'min-width: 10%;vertical-align: baseline;',
|
||||
],
|
||||
[
|
||||
'text' => 'Operation',
|
||||
'style' => 'min-width: 15%;vertical-align: baseline;',
|
||||
],
|
||||
[
|
||||
'text' => 'Last fired',
|
||||
'style' => 'min-width: 15%;',
|
||||
],
|
||||
[
|
||||
'text' => 'Status',
|
||||
'style' => 'width: 5%;',
|
||||
]
|
||||
['text' => 'Module'],
|
||||
['text' => 'Template'],
|
||||
['text' => 'Operation'],
|
||||
['text' => 'Last fired'],
|
||||
['text' => 'Status']
|
||||
);
|
||||
|
||||
$columns = array_merge(
|
||||
|
@ -439,7 +414,7 @@ if ($agent_view_page === true) {
|
|||
[
|
||||
'id' => 'alerts_status_datatable',
|
||||
'class' => 'info_table',
|
||||
'style' => 'width: 99%',
|
||||
'style' => 'width: 99%;',
|
||||
'columns' => $columns,
|
||||
'column_names' => $column_names,
|
||||
'no_sortable_columns' => $no_sortable_columns,
|
||||
|
@ -538,9 +513,6 @@ html_print_input_text('strict_user_hidden', $strict_user);
|
|||
html_print_input_text('is_meta_hidden', (int) is_metaconsole());
|
||||
echo '</div>';
|
||||
|
||||
enterprise_hook('close_meta_frame');
|
||||
|
||||
|
||||
ui_require_css_file('cluetip', 'include/styles/js/');
|
||||
ui_require_jquery_file('cluetip');
|
||||
?>
|
||||
|
|
|
@ -50,7 +50,9 @@ enterprise_include_once('include/functions_metaconsole.php');
|
|||
|
||||
$isFunctionPolicies = enterprise_include_once('include/functions_policies.php');
|
||||
|
||||
if (! defined('METACONSOLE')) {
|
||||
$buttons = [];
|
||||
$subpage = '';
|
||||
if (is_metaconsole() === false) {
|
||||
$section = (string) get_parameter('section', 'view');
|
||||
|
||||
$buttons['fields'] = [
|
||||
|
@ -89,34 +91,36 @@ if (! defined('METACONSOLE')) {
|
|||
$buttons['view']['active'] = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Header.
|
||||
ui_print_standard_header(
|
||||
__('Monitor detail').$subpage,
|
||||
'images/agent.png',
|
||||
false,
|
||||
'',
|
||||
true,
|
||||
$buttons,
|
||||
// Header.
|
||||
ui_print_standard_header(
|
||||
__('Monitor detail').$subpage,
|
||||
'images/agent.png',
|
||||
false,
|
||||
'',
|
||||
true,
|
||||
$buttons,
|
||||
[
|
||||
[
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Monitoring'),
|
||||
],
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Views'),
|
||||
],
|
||||
]
|
||||
);
|
||||
'link' => '',
|
||||
'label' => __('Monitoring'),
|
||||
],
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Views'),
|
||||
],
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
if ($section == 'fields') {
|
||||
include_once $config['homedir'].'/godmode/agentes/status_monitor_custom_fields.php';
|
||||
exit();
|
||||
}
|
||||
} else {
|
||||
$section = (string) get_parameter('sec', 'estado');
|
||||
ui_meta_print_header(__('Monitor view'));
|
||||
}
|
||||
|
||||
$recursion = get_parameter_switch('recursion', false);
|
||||
|
@ -191,8 +195,6 @@ if ($id_module) {
|
|||
$ag_freestring = modules_get_agentmodule_agent_alias($id_module);
|
||||
}
|
||||
|
||||
enterprise_hook('open_meta_frame');
|
||||
|
||||
// Get Groups and profiles from user.
|
||||
$user_groups = implode(',', array_keys(users_get_groups(false, 'AR', false)));
|
||||
|
||||
|
@ -2107,7 +2109,7 @@ if (empty($result) === false) {
|
|||
} else {
|
||||
$sub_string = substr(io_safe_output($row['datos']), 0, 12);
|
||||
if ($module_value == $sub_string) {
|
||||
if ($module_value == 0 && !$sub_string) {
|
||||
if ((empty($module_value) === true || $module_value == 0) && !$sub_string) {
|
||||
$salida = 0;
|
||||
} else {
|
||||
$data_macro = modules_get_unit_macro($row['datos'], $row['unit']);
|
||||
|
@ -2240,8 +2242,6 @@ echo "<div id='monitor_details_window'></div>";
|
|||
echo '<div id="load-modal-filter" style="display:none"></div>';
|
||||
echo '<div id="save-modal-filter" style="display:none"></div>';
|
||||
|
||||
enterprise_hook('close_meta_frame');
|
||||
|
||||
ui_require_javascript_file('pandora_modules');
|
||||
|
||||
?>
|
||||
|
|
|
@ -74,7 +74,8 @@ $readonly = false;
|
|||
ui_require_css_file('events');
|
||||
ui_require_css_file('tables');
|
||||
if (is_metaconsole() === true) {
|
||||
ui_require_css_file('meta_tables', ENTERPRISE_DIR.'/meta/styles/');
|
||||
ui_require_css_file('tables');
|
||||
// ui_require_css_file('meta_tables', ENTERPRISE_DIR.'/meta/styles/');
|
||||
ui_require_css_file('meta_events', ENTERPRISE_DIR.'/meta/styles/');
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ require_once $config['homedir'].'/include/functions_inventory.php';
|
|||
|
||||
if (is_ajax() === true) {
|
||||
$get_csv_url = (bool) get_parameter('get_csv_url');
|
||||
$get_data_basic_info = (bool) get_parameter('get_data_basic_info');
|
||||
|
||||
if ($get_csv_url) {
|
||||
// $inventory_module = get_parameter ('module_inventory_general_view', 'all');
|
||||
|
@ -109,6 +110,156 @@ if (is_ajax() === true) {
|
|||
return;
|
||||
}
|
||||
|
||||
if ($get_data_basic_info === true) {
|
||||
// Datatables offset, limit and order.
|
||||
$filter = get_parameter('search', []);
|
||||
$start = (int) get_parameter('start', 0);
|
||||
$length = (int) get_parameter('length', $config['block_size']);
|
||||
$order = get_datatable_order();
|
||||
$id_agent = (int) get_parameter('id_agent', 0);
|
||||
|
||||
$params = [
|
||||
'search' => $filter['value'],
|
||||
'start' => $start,
|
||||
'length' => $length,
|
||||
'order' => $order,
|
||||
'id_agent' => $id_agent,
|
||||
];
|
||||
|
||||
$data = get_data_basic_info_sql($params);
|
||||
$count = get_data_basic_info_sql($params, true);
|
||||
|
||||
try {
|
||||
ob_start();
|
||||
|
||||
$data = array_reduce(
|
||||
$data,
|
||||
function ($carry, $agent) {
|
||||
// Transforms array of arrays $data into an array
|
||||
// of objects, making a post-process of certain fields.
|
||||
$tmp = new stdClass();
|
||||
|
||||
$id = $agent['id_agente'];
|
||||
|
||||
$tmp->alias = $agent['alias'];
|
||||
$ip = '<em>'.__('N/A').'</em>';
|
||||
if (empty($agent['direccion']) === false) {
|
||||
$ip = $agent['direccion'];
|
||||
}
|
||||
|
||||
$tmp->ip = $ip;
|
||||
|
||||
$secondary_ips = '';
|
||||
foreach (agents_get_addresses($id) as $ip) {
|
||||
if ($ip !== $agent['direccion']) {
|
||||
$secondary_ips .= '<span class="left" style="height: 1.3em !important">'.$ip.'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
$tmp->secondaryIp = $secondary_ips;
|
||||
|
||||
$tmp->group = groups_get_name($agent['id_grupo']);
|
||||
$secondary_groups = enterprise_hook('agents_get_secondary_groups', [$id]);
|
||||
|
||||
if (empty($secondary_groups['for_select']) === true) {
|
||||
$sec_group_data = '<em>'.__('N/A').'</em>';
|
||||
} else {
|
||||
$sec_group = [];
|
||||
foreach ($secondary_groups['for_select'] as $name) {
|
||||
$sec_group[] = $name;
|
||||
}
|
||||
|
||||
$sec_group_data = implode(', ', $sec_group);
|
||||
}
|
||||
|
||||
$tmp->secondaryGroups = $sec_group_data;
|
||||
|
||||
$tmp->os = ui_print_os_icon(
|
||||
$agent['id_os'],
|
||||
false,
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
['class' => 'main_menu_icon invert_filter']
|
||||
);
|
||||
|
||||
$interval = human_time_description_raw($agent['intervalo'], false, 'large');
|
||||
$last_contact = ui_print_timestamp($agent['ultimo_contacto'], true);
|
||||
// $last_contact .= ' / '.date_w_fixed_tz($agent['ultimo_contacto_remoto']);
|
||||
$last_status_change_agent = agents_get_last_status_change($agent['id_agente']);
|
||||
$time_elapsed = !empty($last_status_change_agent) ? human_time_comparation($last_status_change_agent) : '<em>'.__('N/A').'</em>';
|
||||
|
||||
$sql_fields = 'SELECT tcf.name, tcd.description, tcf.is_password_type
|
||||
FROM tagent_custom_fields tcf
|
||||
INNER JOIN tagent_custom_data tcd ON tcd.id_field=tcf.id_field
|
||||
WHERE tcd.id_agent='.$id.' AND tcd.description!=""';
|
||||
$field_result = db_get_all_rows_sql($sql_fields);
|
||||
|
||||
$custom_fields_names = '';
|
||||
$custom_fields_values = '';
|
||||
foreach ($field_result as $field) {
|
||||
$field_name = str_replace(' ', ' ', io_safe_output($field['name']));
|
||||
$custom_fields_names .= '<span class="right" style="height: 1.3em !important">'.$field_name.'</span>';
|
||||
|
||||
$description = $field['description'];
|
||||
$password_length = strlen(io_safe_output($field['description']));
|
||||
$asterisks = '';
|
||||
|
||||
if ((int) $field['is_password_type'] === 1) {
|
||||
for ($i = 0; $i < $password_length; $i++) {
|
||||
$asterisks .= '●';
|
||||
}
|
||||
|
||||
$description = $asterisks;
|
||||
}
|
||||
|
||||
$custom_fields_values .= '<span class="left" style="height: 1.3em !important">'.$description.'</span>';
|
||||
}
|
||||
|
||||
$tmp->description = $agent['comentarios'];
|
||||
$tmp->interval = $interval;
|
||||
$tmp->lastContact = $last_contact;
|
||||
$tmp->lastStatusChange = $time_elapsed;
|
||||
$tmp->customFields = $custom_fields_names;
|
||||
$tmp->valuesCustomFields = $custom_fields_values;
|
||||
|
||||
$carry[] = $tmp;
|
||||
return $carry;
|
||||
},
|
||||
[]
|
||||
);
|
||||
|
||||
// Datatables format: RecordsTotal && recordsfiltered.
|
||||
echo json_encode(
|
||||
[
|
||||
'data' => $data,
|
||||
'recordsTotal' => $count,
|
||||
'recordsFiltered' => $count,
|
||||
]
|
||||
);
|
||||
// Capture output.
|
||||
$response = ob_get_clean();
|
||||
} catch (\Exception $e) {
|
||||
echo json_encode(['error' => $e->getMessage()]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// If not valid, show error with issue.
|
||||
json_decode($response);
|
||||
if (json_last_error() == JSON_ERROR_NONE) {
|
||||
// If valid dump.
|
||||
echo $response;
|
||||
} else {
|
||||
echo json_encode(
|
||||
['error' => $response]
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -116,13 +267,8 @@ global $config;
|
|||
|
||||
check_login();
|
||||
|
||||
|
||||
$is_metaconsole = is_metaconsole();
|
||||
|
||||
if ($is_metaconsole === true) {
|
||||
open_meta_frame();
|
||||
}
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'AR') && ! check_acl($config['id_user'], 0, 'AW')) {
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
|
@ -135,6 +281,9 @@ if (! check_acl($config['id_user'], 0, 'AR') && ! check_acl($config['id_user'],
|
|||
require_once $config['homedir'].'/include/functions_users.php';
|
||||
require_once $config['homedir'].'/include/functions_inventory.php';
|
||||
|
||||
|
||||
// TODO: Button
|
||||
// echo "<a href='javascript: get_csv_url(\"".$inventory_module.'",'.$inventory_id_group.','.'"'.$inventory_search_string.'",'.$utimestamp.','.'"'.$inventory_agent.'",'.$order_by_agent.")'><span>".__('Export this list to CSV').'</span>'.html_print_image('images/csv.png', true, ['title' => __('Export this list to CSV')]).'</a>';
|
||||
// Header.
|
||||
ui_print_standard_header(
|
||||
__('Inventory'),
|
||||
|
@ -160,7 +309,7 @@ if (strlen($inventory_agent) == 0) {
|
|||
$inventory_id_agent = 0;
|
||||
}
|
||||
|
||||
$inventory_module = get_parameter('module_inventory_general_view');
|
||||
$inventory_module = get_parameter('module_inventory_general_view', 'basic');
|
||||
$inventory_id_group = (int) get_parameter('id_group');
|
||||
$inventory_search_string = (string) get_parameter('search_string');
|
||||
$order_by_agent = (bool) get_parameter('order_by_agent');
|
||||
|
@ -333,17 +482,15 @@ if (is_metaconsole() === true) {
|
|||
$filteringFunction = '';
|
||||
}
|
||||
|
||||
echo '<form method="POST" action="index.php?sec=estado&sec2=operation/inventory/inventory" name="form_inventory">';
|
||||
|
||||
$searchForm = '<form method="post" action="index.php?sec=estado&sec2=operation/inventory/inventory" name="form_inventory">';
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox filters';
|
||||
$table->size = [];
|
||||
$table->size[0] = '120px';
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
$table->size[0] = '33%';
|
||||
$table->size[1] = '33%';
|
||||
$table->size[2] = '33%';
|
||||
$table->class = 'filter-table-adv';
|
||||
$table->data = [];
|
||||
$table->rowspan[0][4] = 2;
|
||||
|
||||
if ($is_metaconsole === true) {
|
||||
// Node select.
|
||||
|
@ -352,37 +499,61 @@ if ($is_metaconsole === true) {
|
|||
$nodes[$row['id']] = $row['server_name'];
|
||||
}
|
||||
|
||||
$table->data[-1][0] = '<strong>'.__('Server').'</strong>';
|
||||
$table->data[-1][1] = html_print_select($nodes, 'id_server', $id_server, $filteringFunction, __('All'), 0, true, false, true, '', false, 'min-width: 250px; max-width: 300px;');
|
||||
$table->data[-1][0] = html_print_label_input_block(
|
||||
__('Server'),
|
||||
html_print_select(
|
||||
$nodes,
|
||||
'id_server',
|
||||
$id_server,
|
||||
$filteringFunction,
|
||||
__('All'),
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width:100%;'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// Group select.
|
||||
$table->data[0][0] = '<strong>'.__('Group').'</strong>';
|
||||
|
||||
$table->data[0][1] = '<div class="w250px">';
|
||||
$table->data[0][1] .= html_print_select_groups(
|
||||
$config['id_user'],
|
||||
$access,
|
||||
true,
|
||||
'id_group',
|
||||
$inventory_id_group,
|
||||
$filteringFunction,
|
||||
'',
|
||||
'1',
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
false
|
||||
$table->data[0][0] = html_print_label_input_block(
|
||||
__('Group'),
|
||||
html_print_select_groups(
|
||||
$config['id_user'],
|
||||
$access,
|
||||
true,
|
||||
'id_group',
|
||||
$inventory_id_group,
|
||||
$filteringFunction,
|
||||
'',
|
||||
'1',
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
false
|
||||
)
|
||||
);
|
||||
$table->data[0][1] .= '</div>';
|
||||
|
||||
// Module selected.
|
||||
$table->data[0][2] = '<strong>'.__('Module').'</strong>';
|
||||
|
||||
if ($is_metaconsole === true) {
|
||||
array_unshift($fields, __('All'));
|
||||
$table->data[0][3] = html_print_select($fields, 'module_inventory_general_view', $inventory_module, $filteringFunction, __('Basic info'), 'basic', true, false, true, '', false, 'min-width: 194px; max-width: 200px;');
|
||||
$module_input = html_print_select(
|
||||
$fields,
|
||||
'module_inventory_general_view',
|
||||
$inventory_module,
|
||||
$filteringFunction,
|
||||
__('Basic info'),
|
||||
'basic',
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width:100%;'
|
||||
);
|
||||
} else {
|
||||
$sql = 'SELECT name as indexname, name
|
||||
FROM tmodule_inventory, tagent_module_inventory
|
||||
|
@ -404,13 +575,22 @@ if ($is_metaconsole === true) {
|
|||
}
|
||||
|
||||
array_unshift($fields, __('All'));
|
||||
$table->data[0][3] = html_print_select($fields, 'module_inventory_general_view', $inventory_module, '', __('Basic info'), 'basic', true, false, false);
|
||||
$module_input = html_print_select(
|
||||
$fields,
|
||||
'module_inventory_general_view',
|
||||
$inventory_module,
|
||||
'',
|
||||
__('Basic info'),
|
||||
'basic',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
'width:100%;'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// Button of submit.
|
||||
$table->data[0][4] = html_print_submit_button(__('Search'), 'submit_filter', $noFilterSelected, "class='sub search'", true);
|
||||
|
||||
// Agent select.
|
||||
if ($is_metaconsole === false) {
|
||||
$agents = [];
|
||||
|
@ -436,8 +616,6 @@ if ($is_metaconsole === false) {
|
|||
}
|
||||
}
|
||||
|
||||
$table->data[1][0] = '<strong>'.__('Agent').'</strong>';
|
||||
|
||||
$params = [];
|
||||
$params['return'] = true;
|
||||
$params['show_helptip'] = true;
|
||||
|
@ -459,27 +637,109 @@ if ($is_metaconsole === true) {
|
|||
$params['metaconsole_enabled'] = true;
|
||||
}
|
||||
|
||||
$table->data[1][1] = ui_print_agent_autocomplete_input($params);
|
||||
$table->data[0][1] = html_print_label_input_block(
|
||||
__('Agent'),
|
||||
ui_print_agent_autocomplete_input($params)
|
||||
);
|
||||
|
||||
// Module selected.
|
||||
$table->data[0][2] = html_print_label_input_block(
|
||||
__('Module'),
|
||||
$module_input
|
||||
);
|
||||
|
||||
// String search_string.
|
||||
$table->data[1][2] = '<strong>'.__('Search').'</strong>';
|
||||
$table->data[1][3] = html_print_input_text('search_string', $inventory_search_string, '', 25, 0, true, false, false, '', '', $filteringFunction, 'off', false, $filteringFunction);
|
||||
$table->data[1][0] = html_print_label_input_block(
|
||||
__('Search'),
|
||||
html_print_input_text(
|
||||
'search_string',
|
||||
$inventory_search_string,
|
||||
'',
|
||||
25,
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
'',
|
||||
$filteringFunction,
|
||||
'off',
|
||||
false,
|
||||
$filteringFunction
|
||||
)
|
||||
);
|
||||
|
||||
// Order by agent filter.
|
||||
$table->data[1][1] = html_print_label_input_block(
|
||||
__('Order by agent'),
|
||||
html_print_checkbox(
|
||||
'order_by_agent',
|
||||
1,
|
||||
$order_by_agent,
|
||||
true,
|
||||
false,
|
||||
''
|
||||
)
|
||||
);
|
||||
|
||||
// Date filter. In Metaconsole has not reason for show.
|
||||
if (is_metaconsole() === false) {
|
||||
$table->data[2][0] = '<strong>'.__('Date').'</strong>';
|
||||
$dates = inventory_get_dates($inventory_module, $inventory_agent, $inventory_id_group);
|
||||
$table->data[2][1] = html_print_select($dates, 'utimestamp', $utimestamp, '', __('Last'), 0, true);
|
||||
$dates = inventory_get_dates(
|
||||
$inventory_module,
|
||||
$inventory_agent,
|
||||
$inventory_id_group
|
||||
);
|
||||
|
||||
$table->data[1][2] = html_print_label_input_block(
|
||||
__('Date'),
|
||||
html_print_select(
|
||||
$dates,
|
||||
'utimestamp',
|
||||
$utimestamp,
|
||||
'',
|
||||
__('Last'),
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
'',
|
||||
false,
|
||||
'width:100%;'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// Order by agent filter.
|
||||
$table->data[2][2] = '<strong>'.__('Order by agent').'</strong>';
|
||||
$searchForm .= html_print_table($table, true);
|
||||
$searchForm .= html_print_div(
|
||||
[
|
||||
'class' => 'action-buttons',
|
||||
'content' => html_print_submit_button(
|
||||
__('Filter'),
|
||||
'srcbutton',
|
||||
false,
|
||||
[
|
||||
'icon' => 'search',
|
||||
'mode' => 'mini',
|
||||
],
|
||||
true
|
||||
),
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
$table->data[2][3] = html_print_checkbox('order_by_agent', 1, $order_by_agent, true, false, '');
|
||||
$searchForm .= '</form>';
|
||||
|
||||
html_print_table($table);
|
||||
|
||||
echo '</form>';
|
||||
ui_toggle(
|
||||
$searchForm,
|
||||
'<span class="subsection_header_title">'.__('Filters').'</span>',
|
||||
'filter_form',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
'white-box-content',
|
||||
'box-flat white_table_graph fixed_filter_bar'
|
||||
);
|
||||
|
||||
if ($is_metaconsole === false) {
|
||||
// Single agent selected.
|
||||
|
@ -507,9 +767,6 @@ if ($is_metaconsole === false) {
|
|||
return;
|
||||
}
|
||||
|
||||
echo "<div id='url_csv' style='width: ".$table->width.";' class='inventory_table_buttons'>";
|
||||
echo "<a href='javascript: get_csv_url(\"".$inventory_module.'",'.$inventory_id_group.','.'"'.$inventory_search_string.'",'.$utimestamp.','.'"'.$inventory_agent.'",'.$order_by_agent.")'><span>".__('Export this list to CSV').'</span>'.html_print_image('images/csv.png', true, ['title' => __('Export this list to CSV')]).'</a>';
|
||||
echo '</div>';
|
||||
echo "<div id='loading_url' style='display: none; width: ".$table->width."; text-align: right;'>".html_print_image('images/spinner.gif', true).'</div>';
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
|
@ -544,9 +801,9 @@ if ($is_metaconsole === false) {
|
|||
if ($inventory_module !== 'basic') {
|
||||
if ($order_by_agent === true) {
|
||||
foreach ($rows as $agent_rows) {
|
||||
foreach ($agent_rows['row'] as $row) {
|
||||
$data = [];
|
||||
|
||||
$data = [];
|
||||
$modules = '';
|
||||
foreach ($agent_rows['row'] as $key_row => $row) {
|
||||
$columns = explode(';', io_safe_output($row['data_format']));
|
||||
array_push($columns, 'Timestamp');
|
||||
|
||||
|
@ -570,7 +827,7 @@ if ($is_metaconsole === false) {
|
|||
}
|
||||
}
|
||||
|
||||
$id_table = 'id_'.$row['id_module_inventory'];
|
||||
$id_table = 'id_'.$key_row.'_'.$row['id_module_inventory'].'_'.$row['id_agente'];
|
||||
|
||||
$table = ui_print_datatable(
|
||||
[
|
||||
|
@ -582,7 +839,7 @@ if ($is_metaconsole === false) {
|
|||
'no_sortable_columns' => [],
|
||||
'data_element' => $data,
|
||||
'searching' => true,
|
||||
'dom_elements' => 'lftip',
|
||||
'dom_elements' => 'ftip',
|
||||
'order' => [
|
||||
'field' => $columns[0],
|
||||
'direction' => 'asc',
|
||||
|
@ -629,106 +886,107 @@ if ($is_metaconsole === false) {
|
|||
);
|
||||
}
|
||||
} else {
|
||||
$count_rows = count($rows);
|
||||
foreach ($rows as $module_rows) {
|
||||
$agent = '';
|
||||
$data = [];
|
||||
|
||||
foreach ($module_rows as $row) {
|
||||
$columns = explode(';', io_safe_output($row['data_format']));
|
||||
array_push($columns, 'Timestamp');
|
||||
$data = [];
|
||||
array_push($columns, 'Agent');
|
||||
|
||||
$data_explode = explode(PHP_EOL, $row['data']);
|
||||
foreach ($data_explode as $values) {
|
||||
// Exclude results don't match filter.
|
||||
if ($inventory_search_string && preg_match('/'.io_safe_output($inventory_search_string).'/', ($values)) == 0) {
|
||||
continue;
|
||||
// Exclude results don't match filter.
|
||||
if ($inventory_search_string && preg_match('/'.io_safe_output($inventory_search_string).'/', ($row['data'])) == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$data_tmp = [];
|
||||
if ($row['data'] !== '') {
|
||||
$values_explode = explode(';', io_safe_output($row['data']));
|
||||
|
||||
foreach ($values_explode as $key => $value) {
|
||||
$data_tmp[$columns[$key]] = $value;
|
||||
}
|
||||
|
||||
$data_tmp = [];
|
||||
if ($values !== '') {
|
||||
$values_explode = explode(';', io_safe_output($values));
|
||||
|
||||
foreach ($values_explode as $key => $value) {
|
||||
$data_tmp[$columns[$key]] = $value;
|
||||
}
|
||||
|
||||
$data_tmp['Timestamp'] = $row['timestamp'];
|
||||
array_push($data, $data_tmp);
|
||||
}
|
||||
$data_tmp['Timestamp'] = $row['timestamp'];
|
||||
$data_tmp['Agent'] = $row['name_agent'];
|
||||
array_push($data, $data_tmp);
|
||||
}
|
||||
|
||||
|
||||
$id_table = 'id_'.$row['id_module_inventory'];
|
||||
|
||||
$table = ui_print_datatable(
|
||||
[
|
||||
'id' => $id_table,
|
||||
'class' => 'info_table w100p',
|
||||
'style' => 'width: 99%',
|
||||
'columns' => $columns,
|
||||
'column_names' => $columns,
|
||||
'no_sortable_columns' => [],
|
||||
'data_element' => $data,
|
||||
'searching' => true,
|
||||
'dom_elements' => 'lftip',
|
||||
'order' => [
|
||||
'field' => $columns[0],
|
||||
'direction' => 'asc',
|
||||
],
|
||||
'zeroRecords' => __('No inventory found'),
|
||||
'emptyTable' => __('No inventory found'),
|
||||
'return' => true,
|
||||
'default_pagination' => 10,
|
||||
'no_sortable_columns' => [-1],
|
||||
]
|
||||
);
|
||||
|
||||
$agent .= ui_toggle(
|
||||
$table,
|
||||
'<span class="title-blue">'.$row['name_agent'].'</span>',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
true,
|
||||
'',
|
||||
'white-box-content w100p',
|
||||
'box-shadow white_table_graph w100p',
|
||||
'images/arrow_down_green.png',
|
||||
'images/arrow_right_green.png',
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
'',
|
||||
null,
|
||||
null,
|
||||
false,
|
||||
$id_table
|
||||
);
|
||||
}
|
||||
|
||||
ui_toggle(
|
||||
$agent,
|
||||
$module_rows[0]['name'],
|
||||
'',
|
||||
'',
|
||||
false,
|
||||
false
|
||||
$table = ui_print_datatable(
|
||||
[
|
||||
'id' => $id_table,
|
||||
'class' => 'info_table w100p',
|
||||
'style' => 'width: 99%',
|
||||
'columns' => $columns,
|
||||
'column_names' => $columns,
|
||||
'no_sortable_columns' => [],
|
||||
'data_element' => $data,
|
||||
'searching' => true,
|
||||
'dom_elements' => 'ftip',
|
||||
'order' => [
|
||||
'field' => $columns[0],
|
||||
'direction' => 'asc',
|
||||
],
|
||||
'zeroRecords' => __('No inventory found'),
|
||||
'emptyTable' => __('No inventory found'),
|
||||
'return' => true,
|
||||
'no_sortable_columns' => [],
|
||||
]
|
||||
);
|
||||
|
||||
if ($count_rows > 1) {
|
||||
ui_toggle(
|
||||
$table,
|
||||
array_shift($module_rows)['name'],
|
||||
'',
|
||||
'',
|
||||
false,
|
||||
false
|
||||
);
|
||||
} else {
|
||||
echo $table;
|
||||
|
||||
html_print_action_buttons(
|
||||
'',
|
||||
['type' => 'form_action']
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$id_agente = $inventory_id_agent;
|
||||
$agentes = [];
|
||||
$data = [];
|
||||
$class = 'info_table w100p';
|
||||
$style = 'width: 100%';
|
||||
$ordering = false;
|
||||
$class = 'info_table';
|
||||
$style = 'width: 99%';
|
||||
$ordering = true;
|
||||
$searching = false;
|
||||
$dom = 't';
|
||||
|
||||
$columns = [
|
||||
'alias',
|
||||
'ip',
|
||||
'secondoaryIp',
|
||||
'group',
|
||||
'secondaryGroups',
|
||||
'description',
|
||||
'os',
|
||||
'interval',
|
||||
'lastContact',
|
||||
'lastStatusChange',
|
||||
'customFields',
|
||||
'valuesCustomFields',
|
||||
];
|
||||
|
||||
$columns_names = [
|
||||
__('Alias'),
|
||||
__('IP'),
|
||||
__("IP's Secondary"),
|
||||
__('Secondary IP'),
|
||||
__('Group'),
|
||||
__('Secondary groups'),
|
||||
__('Description'),
|
||||
|
@ -739,134 +997,38 @@ if ($is_metaconsole === false) {
|
|||
__('Custom fields'),
|
||||
__('Values Custom Fields'),
|
||||
];
|
||||
if ((int) $id_agente === 0) {
|
||||
$class = 'databox info_table w100p';
|
||||
$style = 'width: 99%';
|
||||
$ordering = true;
|
||||
$searching = true;
|
||||
$dom = 'lftipB';
|
||||
$agentes = db_get_all_rows_sql('SELECT id_agente FROM tagente');
|
||||
} else {
|
||||
array_push($agentes, $id_agente);
|
||||
}
|
||||
|
||||
foreach ($agentes as $id) {
|
||||
if ((int) $id_agente === 0) {
|
||||
$id = $id['id_agente'];
|
||||
}
|
||||
|
||||
$agent = db_get_row('tagente', 'id_agente', $id);
|
||||
|
||||
$ip = '<em>'.__('N/A').'</em>';
|
||||
if (empty($agent['direccion']) === false) {
|
||||
$ip = $agent['direccion'];
|
||||
}
|
||||
|
||||
|
||||
$secondary_ips = '';
|
||||
foreach (agents_get_addresses($id) as $ip) {
|
||||
if ($ip !== $agent['direccion']) {
|
||||
$secondary_ips .= '<span class="left" style="height: 1.3em !important">'.$ip.'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
$group = groups_get_name($agent['id_grupo']);
|
||||
$secondary_groups = enterprise_hook('agents_get_secondary_groups', [$id]);
|
||||
|
||||
if (empty($secondary_groups['for_select']) === true) {
|
||||
$sec_group_data = '<em>'.__('N/A').'</em>';
|
||||
} else {
|
||||
$sec_group = [];
|
||||
foreach ($secondary_groups['for_select'] as $name) {
|
||||
$sec_group[] = $name;
|
||||
}
|
||||
|
||||
$sec_group_data = implode(', ', $sec_group);
|
||||
}
|
||||
|
||||
$os = ui_print_os_icon($agent['id_os'], false, true).' ';
|
||||
$os .= io_safe_output(get_os_name($agent['id_os'])).' '.io_safe_output($agent['os_version']);
|
||||
$interval = human_time_description_raw($agent['intervalo'], false, 'large');
|
||||
$last_contact = ui_print_timestamp($agent['ultimo_contacto'], true);
|
||||
// $last_contact .= ' / '.date_w_fixed_tz($agent['ultimo_contacto_remoto']);
|
||||
$last_status_change_agent = agents_get_last_status_change($agent['id_agente']);
|
||||
$time_elapsed = !empty($last_status_change_agent) ? human_time_comparation($last_status_change_agent) : '<em>'.__('N/A').'</em>';
|
||||
|
||||
$sql_fields = 'SELECT tcf.name, tcd.description, tcf.is_password_type
|
||||
FROM tagent_custom_fields tcf
|
||||
INNER JOIN tagent_custom_data tcd ON tcd.id_field=tcf.id_field
|
||||
WHERE tcd.id_agent='.$id.' AND tcd.description!=""';
|
||||
$field_result = db_get_all_rows_sql($sql_fields);
|
||||
|
||||
$custom_fields_names = '';
|
||||
$custom_fields_values = '';
|
||||
foreach ($field_result as $field) {
|
||||
$field_name = str_replace(' ', ' ', io_safe_output($field['name']));
|
||||
$custom_fields_names .= '<span class="right" style="height: 1.3em !important">'.$field_name.'</span>';
|
||||
|
||||
$description = $field['description'];
|
||||
$password_length = strlen(io_safe_output($field['description']));
|
||||
$asterisks = '';
|
||||
|
||||
if ((int) $field['is_password_type'] === 1) {
|
||||
for ($i = 0; $i < $password_length; $i++) {
|
||||
$asterisks .= '●';
|
||||
}
|
||||
|
||||
$description = $asterisks;
|
||||
}
|
||||
|
||||
$custom_fields_values .= '<span class="left" style="height: 1.3em !important">'.$description.'</span>';
|
||||
}
|
||||
|
||||
$data_tmp = [
|
||||
__('Alias') => $agent['alias'],
|
||||
__('IP') => $ip,
|
||||
__("IP's Secondary") => $secondary_ips,
|
||||
__('Group') => $group,
|
||||
__('Secondary groups') => $sec_group_data,
|
||||
__('Description') => $agent['comentarios'],
|
||||
__('OS') => $os,
|
||||
__('Interval') => $interval,
|
||||
__('Last contact') => $last_contact,
|
||||
__('Last status change') => $time_elapsed,
|
||||
__('Custom fields') => $custom_fields_names,
|
||||
__('Values Custom Fields') => $custom_fields_values,
|
||||
];
|
||||
|
||||
array_push($data, $data_tmp);
|
||||
}
|
||||
|
||||
$table = ui_print_datatable(
|
||||
ui_print_datatable(
|
||||
[
|
||||
'id' => 'basic_info',
|
||||
'class' => $class,
|
||||
'style' => $style,
|
||||
'columns' => $columns,
|
||||
'column_names' => $columns,
|
||||
'ordering' => $ordering,
|
||||
'data_element' => $data,
|
||||
'searching' => $searching,
|
||||
'dom_elements' => $dom,
|
||||
'order' => [
|
||||
'id' => 'basic_info',
|
||||
'class' => $class,
|
||||
'style' => $style,
|
||||
'columns' => $columns,
|
||||
'column_names' => $columns_names,
|
||||
'ordering' => $ordering,
|
||||
'searching' => $searching,
|
||||
'order' => [
|
||||
'field' => $columns[0],
|
||||
'direction' => 'asc',
|
||||
],
|
||||
'zeroRecords' => __('Agent info not found'),
|
||||
'emptyTable' => __('Agent info not found'),
|
||||
'default_pagination' => 10,
|
||||
'return' => true,
|
||||
'ajax_url' => 'operation/inventory/inventory',
|
||||
'ajax_data' => [
|
||||
'get_data_basic_info' => 1,
|
||||
'id_agent' => $id_agente,
|
||||
],
|
||||
'zeroRecords' => __('Agent info not found'),
|
||||
'emptyTable' => __('Agent info not found'),
|
||||
'return' => false,
|
||||
]
|
||||
);
|
||||
if ((int) $id_agente === 0) {
|
||||
echo $table;
|
||||
} else {
|
||||
echo '<div class="databox">'.$table.'</div>';
|
||||
}
|
||||
}
|
||||
|
||||
// Metaconsole.
|
||||
html_print_action_buttons(
|
||||
'',
|
||||
['type' => 'form_action']
|
||||
);
|
||||
}
|
||||
} else {
|
||||
// Metaconsole.
|
||||
if ($inventory_module !== 'basic') {
|
||||
if ($order_by_agent === true) {
|
||||
$count_nodos_tmp = [];
|
||||
|
@ -1103,7 +1265,7 @@ if ($is_metaconsole === false) {
|
|||
$columns = [
|
||||
__('Alias'),
|
||||
__('IP'),
|
||||
__("IP's Secondary"),
|
||||
__('Secondary IP'),
|
||||
__('Group'),
|
||||
__('Secondary groups'),
|
||||
__('Description'),
|
||||
|
@ -1225,7 +1387,7 @@ if ($is_metaconsole === false) {
|
|||
$data_tmp = [
|
||||
__('Alias') => $agent['alias'],
|
||||
__('IP') => $ip,
|
||||
__("IP's Secondary") => $secondary_ips,
|
||||
__('Secondary IP') => $secondary_ips,
|
||||
__('Group') => $group,
|
||||
__('Secondary groups') => $sec_group_data,
|
||||
__('Description') => $agent['comentarios'],
|
||||
|
@ -1272,8 +1434,6 @@ if ($is_metaconsole === false) {
|
|||
echo '<div class="databox">'.$table.'</div>';
|
||||
}
|
||||
}
|
||||
|
||||
close_meta_frame();
|
||||
}
|
||||
|
||||
ui_require_jquery_file('pandora.controls');
|
||||
|
|
|
@ -138,8 +138,6 @@ if ($strict_acl === false) {
|
|||
}
|
||||
}
|
||||
|
||||
enterprise_hook('open_meta_frame');
|
||||
|
||||
$header_title = __('Tree view');
|
||||
$header_sub_title = __('Sort the agents by %s');
|
||||
switch ($tab) {
|
||||
|
@ -206,16 +204,10 @@ $table->data = [];
|
|||
$table->rowspan = [];
|
||||
$table->size = [];
|
||||
|
||||
// if (is_metaconsole() === true) {
|
||||
// $table->width = '96%';
|
||||
// $table->cellpadding = '0';
|
||||
// $table->cellspacing = '0';
|
||||
// $table->class = 'databox_filters';
|
||||
// $table->styleTable = 'padding:0px;margin-bottom:0px; ';
|
||||
// }
|
||||
// Agent filter.
|
||||
$agent_status_arr = [];
|
||||
$agent_status_arr[AGENT_STATUS_ALL] = __('All');
|
||||
|
||||
// Default.
|
||||
$agent_status_arr[AGENT_STATUS_NORMAL] = __('Normal');
|
||||
$agent_status_arr[AGENT_STATUS_WARNING] = __('Warning');
|
||||
|
@ -360,23 +352,17 @@ $form_html .= html_print_div(
|
|||
);
|
||||
$form_html .= '</form>';
|
||||
|
||||
if (is_metaconsole() === true) {
|
||||
echo "<div class='view_tree'>";
|
||||
ui_toggle($form_html, '<span class="subsection_header_title">'.__('Show Options').'</span>');
|
||||
echo '<br>';
|
||||
} else {
|
||||
ui_toggle(
|
||||
$form_html,
|
||||
'<span class="subsection_header_title">'.__('Tree search').'</span>',
|
||||
'tree_search',
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
'white-box-content',
|
||||
'box-flat white_table_graph fixed_filter_bar'
|
||||
);
|
||||
}
|
||||
ui_toggle(
|
||||
$form_html,
|
||||
'<span class="subsection_header_title">'.__('Tree search').'</span>',
|
||||
'tree_search',
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
'white-box-content',
|
||||
'box-flat white_table_graph fixed_filter_bar'
|
||||
);
|
||||
|
||||
html_print_input_hidden('group-id', $group_id);
|
||||
html_print_input_hidden('tag-id', $tag_id);
|
||||
|
@ -392,16 +378,7 @@ if (is_metaconsole() === true) {
|
|||
}
|
||||
|
||||
ui_print_spinner(__('Loading'));
|
||||
/*
|
||||
html_print_image(
|
||||
'images/spinner.gif',
|
||||
false,
|
||||
[
|
||||
'class' => 'loading_tree',
|
||||
'style' => 'display: none;',
|
||||
]
|
||||
);
|
||||
*/
|
||||
|
||||
html_print_div(
|
||||
[
|
||||
'id' => 'tree-controller-recipient',
|
||||
|
@ -413,7 +390,6 @@ if (is_metaconsole() === true) {
|
|||
echo '</div>';
|
||||
}
|
||||
|
||||
enterprise_hook('close_meta_frame');
|
||||
$infoHeadTitle = 'Sombra oscura';
|
||||
?>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.769
|
||||
%define release 230228
|
||||
%define release 230301
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.769
|
||||
%define release 230228
|
||||
%define release 230301
|
||||
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name httpd
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_console
|
||||
%define version 7.0NG.769
|
||||
%define release 230228
|
||||
%define release 230301
|
||||
%define httpd_name httpd
|
||||
# User and Group under which Apache is running
|
||||
%define httpd_name apache2
|
||||
|
|
|
@ -557,7 +557,8 @@ CREATE TABLE IF NOT EXISTS `talert_template_modules` (
|
|||
FOREIGN KEY (`id_alert_template`) REFERENCES talert_templates(`id`)
|
||||
ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
UNIQUE (`id_agent_module`, `id_alert_template`, `id_policy_alerts`),
|
||||
INDEX force_execution (`force_execution`)
|
||||
INDEX force_execution (`force_execution`),
|
||||
INDEX idx_disabled (disabled)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
|
@ -719,7 +720,8 @@ CREATE TABLE IF NOT EXISTS `tevento` (
|
|||
PRIMARY KEY (`id_evento`),
|
||||
KEY `idx_agente` (`id_agente`),
|
||||
KEY `idx_agentmodule` (`id_agentmodule`),
|
||||
KEY `idx_utimestamp` USING BTREE (`utimestamp`)
|
||||
KEY `idx_utimestamp` USING BTREE (`utimestamp`),
|
||||
INDEX `agente_modulo_estado`(`estado`, `id_agentmodule`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
|
||||
-- Criticity: 0 - Maintance (grey)
|
||||
-- Criticity: 1 - Informational (blue)
|
||||
|
|
|
@ -1165,6 +1165,7 @@ INSERT INTO `treport_custom_sql` (`id`, `name`, `sql`) VALUES (1, 'Monitoring&#x
|
|||
INSERT INTO `treport_custom_sql` (`id`, `name`, `sql`) VALUES (2, 'Monitoring Report Modules', 'select (select tagente.alias from tagente where tagente.id_agente = tagente_modulo.id_agente) as agent_nombre, nombre , (select tmodule_group.name from tmodule_group where tmodule_group.id_mg = tagente_modulo.id_module_group) as module_group, module_interval from tagente_modulo where delete_pending = 0 order by nombre;');
|
||||
INSERT INTO `treport_custom_sql` (`id`, `name`, `sql`) VALUES (3, 'Monitoring Report Alerts', 'select t1.alias as agent_name, t2.nombre as module_name, (select talert_templates.name from talert_templates where talert_templates.id = t3.id_alert_template) as template, (select group_concat(t02.name) from talert_template_module_actions as t01 inner join talert_actions as t02 on t01.id_alert_action = t02.id where t01.id_alert_template_module = t3.id group by t01.id_alert_template_module) as actions from tagente as t1 inner join tagente_modulo as t2 on t1.id_agente = t2.id_agente inner join talert_template_modules as t3 on t2.id_agente_modulo = t3.id_agent_module order by agent_name, module_name;');
|
||||
INSERT INTO `treport_custom_sql` (`id`, `name`, `sql`) VALUES (4, 'Group view', 'select t1.nombre, (select count(t3.id_agente) from tagente as t3 where t1.id_grupo = t3.id_grupo) as agents, (SELECT COUNT(t4.id_agente) FROM tagente as t4 WHERE t4.id_grupo = t1.id_grupo AND t4.disabled = 0 AND t4.ultimo_contacto < NOW() - (intervalo / (1/2))) as agent_unknown, (SELECT COUNT(tagente_estado.id_agente_estado) FROM tagente_estado, tagente, tagente_modulo WHERE tagente.id_grupo = t1.id_grupo AND tagente.disabled = 0 AND tagente.id_agente = tagente_estado.id_agente AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.disabled = 0 AND utimestamp > 0 AND tagente_modulo.id_tipo_modulo NOT IN(21,22,23,24,100) AND (UNIX_TIMESTAMP(NOW()) - tagente_estado.utimestamp) >= (tagente_estado.current_interval / (1/2))) as monitor_unknow, (SELECT COUNT(tagente_estado.id_agente_estado) FROM tagente_estado, tagente, tagente_modulo WHERE tagente.id_grupo = t1.id_grupo AND tagente.disabled = 0 AND tagente.id_agente = tagente_estado.id_agente AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.disabled = 0 AND tagente_modulo.id_tipo_modulo NOT IN (21,22,23,24) AND utimestamp = 0) as monitor_no_init, (SELECT COUNT(tagente_estado.id_agente_estado) FROM tagente_estado, tagente, tagente_modulo WHERE tagente.id_grupo = t1.id_grupo AND tagente.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.disabled = 0 AND estado = 0 AND ((UNIX_TIMESTAMP(NOW()) - tagente_estado.utimestamp) < (tagente_estado.current_interval / (1/2)) OR (tagente_modulo.id_tipo_modulo IN(21,22,23,24,100))) AND (utimestamp > 0 OR (tagente_modulo.id_tipo_modulo IN(21,22,23,24)))) as monitor_ok, (SELECT COUNT(tagente_estado.id_agente_estado) FROM tagente_estado, tagente, tagente_modulo WHERE tagente.id_grupo = t1.id_grupo AND tagente.disabled = 0 AND tagente_estado.id_agente = tagente.id_agente AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.disabled = 0 AND estado = 1 AND ((UNIX_TIMESTAMP(NOW()) - tagente_estado.utimestamp) < (tagente_estado.current_interval / (1/2)) OR (tagente_modulo.id_tipo_modulo IN(21,22,23,24,100))) AND utimestamp > 0) as monitor_critical, (SELECT COUNT(talert_template_modules.id) FROM talert_template_modules, tagente_modulo, tagente_estado, tagente WHERE tagente.id_grupo = t1.id_grupo AND tagente_modulo.id_agente = tagente.id_agente AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo AND tagente_modulo.disabled = 0 AND tagente.disabled = 0 AND talert_template_modules.id_agent_module = tagente_modulo.id_agente_modulo AND times_fired > 0) as monitor_alert_fired from tgrupo as t1 where 0 < (select count(t2.id_agente) from tagente as t2 where t1.id_grupo = t2.id_grupo)');
|
||||
INSERT INTO `treport_custom_sql` (`id`, `name`, `sql`) VALUES (5, 'Agent safe mode not enable', 'select alias from tagente where safe_mode_module = 0');
|
||||
|
||||
-- trecon scripts
|
||||
INSERT INTO `trecon_script` (`type`,`name`,`description`,`script`,`macros`) VALUES (1, 'Discovery.Application.VMware', 'Discovery Application script to monitor VMware technologies (ESXi, VCenter, VSphere)', '/usr/share/pandora_server/util/recon_scripts/vmware-plugin.pl', '{"1":{"macro":"_field1_","desc":"Configuration file","help":"","value":"","hide":""}}');
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-server
|
||||
Version: 7.0NG.769-230228
|
||||
Version: 7.0NG.769-230301
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -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_cpan=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -46,7 +46,7 @@ our @EXPORT = qw(
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.769";
|
||||
my $pandora_build = "230228";
|
||||
my $pandora_build = "230301";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
# Setup hash
|
||||
|
|
|
@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
|
|||
|
||||
# version: Defines actual version of Pandora Server for this module only
|
||||
my $pandora_version = "7.0NG.769";
|
||||
my $pandora_build = "230228";
|
||||
my $pandora_build = "230301";
|
||||
our $VERSION = $pandora_version." ".$pandora_build;
|
||||
|
||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.769
|
||||
%define release 230228
|
||||
%define release 230301
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
%global __os_install_post %{nil}
|
||||
%define name pandorafms_server
|
||||
%define version 7.0NG.769
|
||||
%define release 230228
|
||||
%define release 230301
|
||||
|
||||
Summary: Pandora FMS Server
|
||||
Name: %{name}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.769"
|
||||
PI_BUILD="230228"
|
||||
PI_BUILD="230301"
|
||||
|
||||
MODE=$1
|
||||
if [ $# -gt 1 ]; then
|
||||
|
|
|
@ -35,7 +35,7 @@ use PandoraFMS::Config;
|
|||
use PandoraFMS::DB;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.769 Build 230228";
|
||||
my $version = "7.0NG.769 Build 230301";
|
||||
|
||||
# Pandora server configuration
|
||||
my %conf;
|
||||
|
|
|
@ -36,7 +36,7 @@ use Encode::Locale;
|
|||
Encode::Locale::decode_argv;
|
||||
|
||||
# version: define current version
|
||||
my $version = "7.0NG.769 Build 230228";
|
||||
my $version = "7.0NG.769 Build 230301";
|
||||
|
||||
# save program name for logging
|
||||
my $progname = basename($0);
|
||||
|
|
Loading…
Reference in New Issue