mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-31 01:35:36 +02:00
Added port option on server configuration to be used when connecting to execution server
This commit is contained in:
parent
2fa637ee4d
commit
5eb2953810
5
pandora_console/extras/mr/35.sql
Normal file
5
pandora_console/extras/mr/35.sql
Normal file
@ -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`
|
-- Table `tserver`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tserver ADD COLUMN exec_proxy tinyint(1) UNSIGNED NOT NULL default 0;
|
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`
|
-- 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);
|
$table->data[1][3] = html_print_select($servers_to_exec, 'server_to_exec', $server_to_exec, '', '', '', true);
|
||||||
|
|
||||||
$snmp_versions['1'] = 'v. 1';
|
$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][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(
|
$table->data[1][4] = html_print_select(
|
||||||
$servers_to_exec,
|
$servers_to_exec,
|
||||||
|
@ -64,12 +64,22 @@ if ($wmiexplore) {
|
|||||||
$processes_name_field = 1;
|
$processes_name_field = 1;
|
||||||
if (enterprise_installed() && (int) $server_to_exec != 0) {
|
if (enterprise_installed() && (int) $server_to_exec != 0) {
|
||||||
$server_data = db_get_row('tserver', 'id_server', $server_to_exec);
|
$server_data = db_get_row('tserver', 'id_server', $server_to_exec);
|
||||||
exec(
|
|
||||||
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
if (empty($server_data['port'])) {
|
||||||
'".$wmi_processes."'",
|
exec(
|
||||||
$output,
|
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
||||||
$rc
|
'".$wmi_processes."'",
|
||||||
);
|
$output,
|
||||||
|
$rc
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
exec(
|
||||||
|
'ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address']."
|
||||||
|
'".$wmi_processes."'",
|
||||||
|
$output,
|
||||||
|
$rc
|
||||||
|
);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
exec($wmi_processes, $output);
|
exec($wmi_processes, $output);
|
||||||
}
|
}
|
||||||
@ -110,12 +120,21 @@ if ($wmiexplore) {
|
|||||||
'id_server',
|
'id_server',
|
||||||
$server_to_exec
|
$server_to_exec
|
||||||
);
|
);
|
||||||
|
if (empty($server_data['port'])) {
|
||||||
exec(
|
exec(
|
||||||
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
||||||
'".$wmi_services."'",
|
'".$wmi_services."'",
|
||||||
$output,
|
$output,
|
||||||
$rc
|
$rc
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
exec(
|
||||||
|
'ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address']."
|
||||||
|
'".$wmi_services."'",
|
||||||
|
$output,
|
||||||
|
$rc
|
||||||
|
);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
exec($wmi_services, $output);
|
exec($wmi_services, $output);
|
||||||
}
|
}
|
||||||
@ -145,12 +164,22 @@ if ($wmiexplore) {
|
|||||||
|
|
||||||
if (enterprise_installed() && (int) $server_to_exec != 0) {
|
if (enterprise_installed() && (int) $server_to_exec != 0) {
|
||||||
$server_data = db_get_row('tserver', 'id_server', $server_to_exec);
|
$server_data = db_get_row('tserver', 'id_server', $server_to_exec);
|
||||||
exec(
|
|
||||||
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
if (empty($server_data['port'])) {
|
||||||
'".$wmi_disks."'",
|
exec(
|
||||||
$output,
|
'ssh pandora_exec_proxy@'.$server_data['ip_address']."
|
||||||
$rc
|
'".$wmi_disks."'",
|
||||||
);
|
$output,
|
||||||
|
$rc
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
exec(
|
||||||
|
'ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address']."
|
||||||
|
'".$wmi_disks."'",
|
||||||
|
$output,
|
||||||
|
$rc
|
||||||
|
);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
exec($wmi_disks, $output);
|
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(
|
$table->data[2][1] = html_print_select(
|
||||||
$servers_to_exec,
|
$servers_to_exec,
|
||||||
'server_to_exec',
|
'server_to_exec',
|
||||||
|
@ -32,7 +32,7 @@ if (isset($_GET['server'])) {
|
|||||||
$id_server = get_parameter_get('server');
|
$id_server = get_parameter_get('server');
|
||||||
// Headers
|
// Headers
|
||||||
ui_print_page_header(__('Update Server'), 'images/gm_servers.png', false, 'servers', true);
|
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);
|
$row = db_get_row_sql($sql);
|
||||||
echo '<form name="servers" method="POST" action="index.php?sec=gservers&sec2=godmode/servers/modificar_server&update=1">';
|
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);
|
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>',
|
'<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');
|
$description = get_parameter_post('description');
|
||||||
$id_server = get_parameter_post('server');
|
$id_server = get_parameter_post('server');
|
||||||
$exec_proxy = get_parameter_post('exec_proxy');
|
$exec_proxy = get_parameter_post('exec_proxy');
|
||||||
|
$port = get_parameter_post('port');
|
||||||
|
|
||||||
|
$port_number = empty($port) ? 0 : $port;
|
||||||
|
|
||||||
$values = [
|
$values = [
|
||||||
'ip_address' => $address,
|
'ip_address' => $address,
|
||||||
'description' => $description,
|
'description' => $description,
|
||||||
'exec_proxy' => $exec_proxy,
|
'exec_proxy' => $exec_proxy,
|
||||||
|
'port' => $port_number,
|
||||||
];
|
];
|
||||||
$result = db_process_sql_update('tserver', $values, ['id_server' => $id_server]);
|
$result = db_process_sql_update('tserver', $values, ['id_server' => $id_server]);
|
||||||
if ($result !== false) {
|
if ($result !== false) {
|
||||||
|
@ -101,6 +101,10 @@ foreach ($servers as $server) {
|
|||||||
$data[2] .= ui_print_help_tip(__('This is a master server'), true);
|
$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>';
|
// $data[2] .= '</span> <span style="font-size:8px;"> v' .. '</span>';
|
||||||
switch ($server['type']) {
|
switch ($server['type']) {
|
||||||
case 'snmp':
|
case 'snmp':
|
||||||
|
@ -954,7 +954,11 @@ if ($perform_event_response) {
|
|||||||
break;
|
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 {
|
} else {
|
||||||
switch (PHP_OS) {
|
switch (PHP_OS) {
|
||||||
|
@ -1994,7 +1994,12 @@ function get_snmpwalk(
|
|||||||
if (enterprise_installed()) {
|
if (enterprise_installed()) {
|
||||||
if ($server_to_exec != 0) {
|
if ($server_to_exec != 0) {
|
||||||
$server_data = db_get_row('tserver', 'id_server', $server_to_exec);
|
$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 {
|
} else {
|
||||||
exec($command_str, $output, $rc);
|
exec($command_str, $output, $rc);
|
||||||
}
|
}
|
||||||
|
@ -409,11 +409,20 @@ function snmp_browser_get_oid(
|
|||||||
|
|
||||||
if ($server_to_exec != 0) {
|
if ($server_to_exec != 0) {
|
||||||
$command_output = $snmptranslate_bin.' -m ALL -M +'.escapeshellarg($config['homedir'].'/attachment/mibs').' -Td '.escapeshellarg($oid);
|
$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.'"',
|
if (empty($server_data['port'])) {
|
||||||
$translate_output,
|
exec(
|
||||||
$rc
|
'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 {
|
} else {
|
||||||
exec(
|
exec(
|
||||||
$snmptranslate_bin.' -m ALL -M +'.escapeshellarg($config['homedir'].'/attachment/mibs').' -Td '.escapeshellarg($oid),
|
$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,
|
`server_keepalive` int(11) NOT NULL default 0,
|
||||||
`stat_utimestamp` bigint(20) NOT NULL default '0',
|
`stat_utimestamp` bigint(20) NOT NULL default '0',
|
||||||
`exec_proxy` tinyint(1) UNSIGNED 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`),
|
PRIMARY KEY (`id_server`),
|
||||||
KEY `name` (`name`)
|
KEY `name` (`name`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user