fix: use correct server URL instead of localhost
AgentService now replaces 'localhost' in the server URL with sysadmin.lan before sending to the remote agent. Also added URL/hostname debug output to the agent startup log.
This commit is contained in:
@@ -82,12 +82,20 @@ EOF
|
||||
echo "$code"
|
||||
}
|
||||
|
||||
echo "ServerManager Agent started (interval: ${INTERVAL}s)"
|
||||
echo "ServerManager Agent started"
|
||||
echo " Server: $SERVER_URL/api/metrics/push"
|
||||
echo " Interval: ${INTERVAL}s"
|
||||
echo " Host: $(hostname)"
|
||||
sleep 2
|
||||
while true; do
|
||||
collect_metrics
|
||||
http_code=$(push_metrics)
|
||||
echo "[$(date)] HTTP $http_code"
|
||||
if [ "$http_code" = "200" ]; then
|
||||
true
|
||||
elif [ "$http_code" = "0" ]; then
|
||||
echo " curl failed — check SERVER_URL=$SERVER_URL"
|
||||
fi
|
||||
sleep "$INTERVAL"
|
||||
done
|
||||
AGENTSCRIPT
|
||||
|
||||
@@ -37,10 +37,13 @@ class AgentService
|
||||
$agentKey = $server['agent_key'];
|
||||
$serverUrl = rtrim((App::getConfig()['app']['url'] ?? ''), '/');
|
||||
|
||||
if (empty($serverUrl)) {
|
||||
$serverUrl = ($_SERVER['HTTPS'] ?? '' === 'on' ? 'https://' : 'http://') . ($_SERVER['HTTP_HOST'] ?? 'localhost');
|
||||
if (empty($serverUrl) || str_contains($serverUrl, 'localhost')) {
|
||||
$serverUrl = ($_SERVER['HTTPS'] ?? '' === 'on' ? 'https://' : 'http://') . ($_SERVER['HTTP_HOST'] ?? 'sysadmin.lan');
|
||||
}
|
||||
|
||||
// Replace localhost with actual hostname if still localhost
|
||||
$serverUrl = preg_replace('/https?:\/\/localhost(:\d+)?/', 'http://sysadmin.lan$1', $serverUrl);
|
||||
|
||||
$scriptPath = $this->basePath . '/install/agent-install.sh';
|
||||
|
||||
if (!file_exists($scriptPath)) {
|
||||
|
||||
Reference in New Issue
Block a user