Merge branch 'ent-5135-No-funciona-la-exploracion-SNMP-remota' into 'develop'
Added port option on server configuration to be used when connecting to execution server See merge request artica/pandorafms!3012
This commit is contained in:
commit
96eebe4310
|
@ -1,5 +1,6 @@
|
|||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE `tserver` ADD COLUMN `port` int(5) unsigned NOT NULL default 0;
|
||||
ALTER TABLE `tmap` ADD COLUMN `id_group_map` INT(10) UNSIGNED NOT NULL default 0;
|
||||
ALTER TABLE `tevent_filter` MODIFY `severity` TEXT NOT NULL;
|
||||
|
||||
|
|
|
@ -1778,6 +1778,7 @@ ALTER TABLE tserver_export_data MODIFY `module_name` varchar(600) NOT NULL defau
|
|||
-- Table `tserver`
|
||||
-- ---------------------------------------------------------------------
|
||||
ALTER TABLE tserver ADD COLUMN exec_proxy tinyint(1) UNSIGNED NOT NULL default 0;
|
||||
ALTER TABLE `tserver` ADD COLUMN `port` int(5) unsigned NOT NULL default 0;
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tevent_response`
|
||||
|
|
|
@ -45,3 +45,22 @@ switch ($wizard_section) {
|
|||
*/
|
||||
|
||||
require 'agent_wizard.'.$wizard_section.'.php';
|
||||
|
||||
?>
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
function satellite_remote_warn(id_satellite, remote)
|
||||
{
|
||||
if(!remote)
|
||||
{
|
||||
$('#server_to_exec option[value='+id_satellite+']').prop('disabled', true);
|
||||
$('#satellite_remote_tip').removeAttr("style").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#satellite_remote_tip').removeAttr("style").hide();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</script>
|
|
@ -738,11 +738,16 @@ $servers_to_exec[0] = __('Local console');
|
|||
if (enterprise_installed()) {
|
||||
enterprise_include_once('include/functions_satellite.php');
|
||||
|
||||
$rows = get_proxy_servers(true);
|
||||
$rows = get_proxy_servers();
|
||||
|
||||
// Check if satellite server has remote configuration enabled.
|
||||
$satellite_remote = config_agents_has_remote_configuration($id_agent);
|
||||
|
||||
foreach ($rows as $row) {
|
||||
if ($row['server_type'] != 13) {
|
||||
$s_type = ' (Standard)';
|
||||
} else {
|
||||
$id_satellite = $row['id_server'];
|
||||
$s_type = ' (Satellite)';
|
||||
}
|
||||
|
||||
|
@ -750,8 +755,16 @@ if (enterprise_installed()) {
|
|||
}
|
||||
}
|
||||
|
||||
$table->data[1][2] = '<b>'.__('Server to execute command').'</b>';
|
||||
$table->data[1][3] = html_print_select($servers_to_exec, 'server_to_exec', $server_to_exec, '', '', '', true);
|
||||
$table->data[1][2] = '<b>'.__('Server to execute command').'</b>'.ui_print_help_icon('agent_snmp_explorer_tab', true);
|
||||
$table->data[1][3] = html_print_select(
|
||||
$servers_to_exec,
|
||||
'server_to_exec',
|
||||
$server_to_exec,
|
||||
'satellite_remote_warn('.$id_satellite.','.$satellite_remote.')',
|
||||
'',
|
||||
'',
|
||||
true
|
||||
);
|
||||
|
||||
$snmp_versions['1'] = 'v. 1';
|
||||
$snmp_versions['2'] = 'v. 2';
|
||||
|
@ -1020,6 +1033,8 @@ ui_require_javascript_file('pandora_modules');
|
|||
var separator = '<?php echo $separator; ?>';
|
||||
|
||||
$(document).ready (function () {
|
||||
$('#server_to_exec option').trigger('change');
|
||||
|
||||
$("#walk_form").submit(function() {
|
||||
$("#oid_loading").show ();
|
||||
});
|
||||
|
|
|
@ -492,7 +492,7 @@ if (enterprise_installed()) {
|
|||
}
|
||||
}
|
||||
|
||||
$table->data[1][2] = '<b>'.__('Server to execute command').'</b>';
|
||||
$table->data[1][2] = '<b>'.__('Server to execute command').'</b>'.ui_print_help_icon('agent_snmp_explorer_tab', true);
|
||||
$table->data[1][2] .= '<span id=satellite_remote_tip>'.ui_print_help_tip(__('In order to use remote executions you need to enable remote execution in satellite server'), true, 'images/tip_help.png', false, 'display:').'</span>';
|
||||
$table->data[1][4] = html_print_select(
|
||||
$servers_to_exec,
|
||||
|
@ -734,20 +734,5 @@ function snmp_changed_by_multiple_snmp (event, id_snmp, selected) {
|
|||
"json");
|
||||
}
|
||||
|
||||
|
||||
function satellite_remote_warn(id_satellite, remote)
|
||||
{
|
||||
if(!remote)
|
||||
{
|
||||
$('#server_to_exec option[value='+id_satellite+']').prop('disabled', true);
|
||||
$('#satellite_remote_tip').removeAttr("style").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#satellite_remote_tip').removeAttr("style").hide();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* ]]> */
|
||||
</script>
|
||||
|
|
|
@ -64,12 +64,22 @@ if ($wmiexplore) {
|
|||
$processes_name_field = 1;
|
||||
if (enterprise_installed() && (int) $server_to_exec != 0) {
|
||||
$server_data = db_get_row('tserver', 'id_server', $server_to_exec);
|
||||
exec(
|
||||
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
||||
'".$wmi_processes."'",
|
||||
$output,
|
||||
$rc
|
||||
);
|
||||
|
||||
if (empty($server_data['port'])) {
|
||||
exec(
|
||||
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
||||
'".$wmi_processes."'",
|
||||
$output,
|
||||
$rc
|
||||
);
|
||||
} else {
|
||||
exec(
|
||||
'ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address']."
|
||||
'".$wmi_processes."'",
|
||||
$output,
|
||||
$rc
|
||||
);
|
||||
}
|
||||
} else {
|
||||
exec($wmi_processes, $output);
|
||||
}
|
||||
|
@ -110,12 +120,21 @@ if ($wmiexplore) {
|
|||
'id_server',
|
||||
$server_to_exec
|
||||
);
|
||||
if (empty($server_data['port'])) {
|
||||
exec(
|
||||
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
||||
'".$wmi_services."'",
|
||||
'".$wmi_services."'",
|
||||
$output,
|
||||
$rc
|
||||
);
|
||||
} else {
|
||||
exec(
|
||||
'ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address']."
|
||||
'".$wmi_services."'",
|
||||
$output,
|
||||
$rc
|
||||
);
|
||||
}
|
||||
} else {
|
||||
exec($wmi_services, $output);
|
||||
}
|
||||
|
@ -145,12 +164,22 @@ if ($wmiexplore) {
|
|||
|
||||
if (enterprise_installed() && (int) $server_to_exec != 0) {
|
||||
$server_data = db_get_row('tserver', 'id_server', $server_to_exec);
|
||||
exec(
|
||||
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
||||
'".$wmi_disks."'",
|
||||
$output,
|
||||
$rc
|
||||
);
|
||||
|
||||
if (empty($server_data['port'])) {
|
||||
exec(
|
||||
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
||||
'".$wmi_disks."'",
|
||||
$output,
|
||||
$rc
|
||||
);
|
||||
} else {
|
||||
exec(
|
||||
'ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address']."
|
||||
'".$wmi_disks."'",
|
||||
$output,
|
||||
$rc
|
||||
);
|
||||
}
|
||||
} else {
|
||||
exec($wmi_disks, $output);
|
||||
}
|
||||
|
@ -469,7 +498,7 @@ if (enterprise_installed()) {
|
|||
}
|
||||
}
|
||||
|
||||
$table->data[2][0] = '<b>'.__('Server to execute command').'</b>';
|
||||
$table->data[2][0] = '<b>'.__('Server to execute command').'</b>'.ui_print_help_icon('agent_snmp_explorer_tab', true);
|
||||
$table->data[2][1] = html_print_select(
|
||||
$servers_to_exec,
|
||||
'server_to_exec',
|
||||
|
|
|
@ -32,7 +32,7 @@ if (isset($_GET['server'])) {
|
|||
$id_server = get_parameter_get('server');
|
||||
// Headers
|
||||
ui_print_page_header(__('Update Server'), 'images/gm_servers.png', false, 'servers', true);
|
||||
$sql = sprintf('SELECT name, ip_address, description, server_type, exec_proxy FROM tserver WHERE id_server = %d', $id_server);
|
||||
$sql = sprintf('SELECT name, ip_address, description, server_type, exec_proxy, port FROM tserver WHERE id_server = %d', $id_server);
|
||||
$row = db_get_row_sql($sql);
|
||||
echo '<form name="servers" method="POST" action="index.php?sec=gservers&sec2=godmode/servers/modificar_server&update=1">';
|
||||
html_print_input_hidden('server', $id_server);
|
||||
|
@ -75,6 +75,14 @@ if (isset($_GET['server'])) {
|
|||
__('Exec Server'),
|
||||
html_print_checkbox('exec_proxy', 1, $row['exec_proxy'], true),
|
||||
];
|
||||
|
||||
$port_number = empty($row['port']) ? '' : $row['port'];
|
||||
|
||||
$table->data[] = [
|
||||
__('Port'),
|
||||
html_print_input_text('port', $port_number, '', 10, 0, true).ui_print_help_tip(__('Leave blank to use SSH default port (22)'), true),
|
||||
];
|
||||
|
||||
if ($row['exec_proxy']) {
|
||||
$table->data[] = [
|
||||
__('Check Exec Server'),
|
||||
|
@ -136,11 +144,15 @@ if (isset($_GET['server'])) {
|
|||
$description = get_parameter_post('description');
|
||||
$id_server = get_parameter_post('server');
|
||||
$exec_proxy = get_parameter_post('exec_proxy');
|
||||
$port = get_parameter_post('port');
|
||||
|
||||
$port_number = empty($port) ? 0 : $port;
|
||||
|
||||
$values = [
|
||||
'ip_address' => $address,
|
||||
'description' => $description,
|
||||
'exec_proxy' => $exec_proxy,
|
||||
'port' => $port_number,
|
||||
];
|
||||
$result = db_process_sql_update('tserver', $values, ['id_server' => $id_server]);
|
||||
if ($result !== false) {
|
||||
|
|
|
@ -101,6 +101,10 @@ foreach ($servers as $server) {
|
|||
$data[2] .= ui_print_help_tip(__('This is a master server'), true);
|
||||
}
|
||||
|
||||
if ($server['exec_proxy'] == 1) {
|
||||
$data[2] .= html_print_image('images/star.png', true, ['title' => __('Exec server enabled')]);
|
||||
}
|
||||
|
||||
// $data[2] .= '</span> <span style="font-size:8px;"> v' .. '</span>';
|
||||
switch ($server['type']) {
|
||||
case 'snmp':
|
||||
|
|
|
@ -956,7 +956,11 @@ if ($perform_event_response) {
|
|||
break;
|
||||
}
|
||||
|
||||
system('ssh pandora_exec_proxy@'.$server_data['ip_address'].' "'.$timeout_bin.' '.$command_timeout.' '.io_safe_output($command).' 2>&1"', $ret_val);
|
||||
if (empty($server_data['port'])) {
|
||||
system('ssh pandora_exec_proxy@'.$server_data['ip_address'].' "'.$timeout_bin.' '.$command_timeout.' '.io_safe_output($command).' 2>&1"', $ret_val);
|
||||
} else {
|
||||
system('ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address'].' "'.$timeout_bin.' '.$command_timeout.' '.io_safe_output($command).' 2>&1"', $ret_val);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
switch (PHP_OS) {
|
||||
|
|
|
@ -1994,7 +1994,12 @@ function get_snmpwalk(
|
|||
if (enterprise_installed()) {
|
||||
if ($server_to_exec != 0) {
|
||||
$server_data = db_get_row('tserver', 'id_server', $server_to_exec);
|
||||
exec('ssh pandora_exec_proxy@'.$server_data['ip_address'].' "'.$command_str.'"', $output, $rc);
|
||||
|
||||
if (empty($server_data['port'])) {
|
||||
exec('ssh pandora_exec_proxy@'.$server_data['ip_address'].' "'.$command_str.'"', $output, $rc);
|
||||
} else {
|
||||
exec('ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address'].' "'.$command_str.'"', $output, $rc);
|
||||
}
|
||||
} else {
|
||||
exec($command_str, $output, $rc);
|
||||
}
|
||||
|
|
|
@ -409,11 +409,20 @@ function snmp_browser_get_oid(
|
|||
|
||||
if ($server_to_exec != 0) {
|
||||
$command_output = $snmptranslate_bin.' -m ALL -M +'.escapeshellarg($config['homedir'].'/attachment/mibs').' -Td '.escapeshellarg($oid);
|
||||
exec(
|
||||
'ssh pandora_exec_proxy@'.$server_data['ip_address'].' "'.$command_output.'"',
|
||||
$translate_output,
|
||||
$rc
|
||||
);
|
||||
|
||||
if (empty($server_data['port'])) {
|
||||
exec(
|
||||
'ssh pandora_exec_proxy@'.$server_data['ip_address'].' "'.$command_output.'"',
|
||||
$translate_output,
|
||||
$rc
|
||||
);
|
||||
} else {
|
||||
exec(
|
||||
'ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address'].' "'.$command_output.'"',
|
||||
$translate_output,
|
||||
$rc
|
||||
);
|
||||
}
|
||||
} else {
|
||||
exec(
|
||||
$snmptranslate_bin.' -m ALL -M +'.escapeshellarg($config['homedir'].'/attachment/mibs').' -Td '.escapeshellarg($oid),
|
||||
|
|
|
@ -1020,6 +1020,7 @@ CREATE TABLE IF NOT EXISTS `tserver` (
|
|||
`server_keepalive` int(11) NOT NULL default 0,
|
||||
`stat_utimestamp` bigint(20) NOT NULL default '0',
|
||||
`exec_proxy` tinyint(1) UNSIGNED NOT NULL default 0,
|
||||
`port` int(5) unsigned NOT NULL default 0,
|
||||
PRIMARY KEY (`id_server`),
|
||||
KEY `name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
|
Loading…
Reference in New Issue