Added port option on server configuration to be used when connecting to execution server
This commit is contained in:
parent
2fa637ee4d
commit
5eb2953810
|
@ -0,0 +1,5 @@
|
|||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE `tserver` ADD COLUMN `port` int(5) unsigned NOT NULL default 0;
|
||||
|
||||
COMMIT;
|
|
@ -1775,6 +1775,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`
|
||||
|
|
|
@ -750,7 +750,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][3] = html_print_select($servers_to_exec, 'server_to_exec', $server_to_exec, '', '', '', true);
|
||||
|
||||
$snmp_versions['1'] = 'v. 1';
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
@ -81,6 +81,13 @@ if (isset($_GET['server'])) {
|
|||
'<a id="check_exec_server">'.html_print_image('images/dot_red.disabled.png', true).'</a>'.'<div id="check_error_message"></div>',
|
||||
];
|
||||
}
|
||||
|
||||
$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),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -136,11 +143,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':
|
||||
|
|
|
@ -954,7 +954,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