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 "$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
|
sleep 2
|
||||||
while true; do
|
while true; do
|
||||||
collect_metrics
|
collect_metrics
|
||||||
http_code=$(push_metrics)
|
http_code=$(push_metrics)
|
||||||
echo "[$(date)] HTTP $http_code"
|
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"
|
sleep "$INTERVAL"
|
||||||
done
|
done
|
||||||
AGENTSCRIPT
|
AGENTSCRIPT
|
||||||
|
|||||||
@@ -37,10 +37,13 @@ class AgentService
|
|||||||
$agentKey = $server['agent_key'];
|
$agentKey = $server['agent_key'];
|
||||||
$serverUrl = rtrim((App::getConfig()['app']['url'] ?? ''), '/');
|
$serverUrl = rtrim((App::getConfig()['app']['url'] ?? ''), '/');
|
||||||
|
|
||||||
if (empty($serverUrl)) {
|
if (empty($serverUrl) || str_contains($serverUrl, 'localhost')) {
|
||||||
$serverUrl = ($_SERVER['HTTPS'] ?? '' === 'on' ? 'https://' : 'http://') . ($_SERVER['HTTP_HOST'] ?? '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';
|
$scriptPath = $this->basePath . '/install/agent-install.sh';
|
||||||
|
|
||||||
if (!file_exists($scriptPath)) {
|
if (!file_exists($scriptPath)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user