alexandrev-tibco 2025-08-30 10:22:41 +02:00
parent 00ecdc166d
commit 16414a66b5
1 changed files with 34 additions and 11 deletions

View File

@ -55,7 +55,14 @@ collect_lxc_summary() {
local vmid="$1"
local name ip issues=""
name=$(pct exec "$vmid" -- sh -c "hostname -s 2>/dev/null || cat /etc/hostname 2>/dev/null || echo lxc-$vmid" 2>/dev/null | head -n1 | tr -d '\r')
ip=$(pct exec "$vmid" -- sh -c "(hostname -I 2>/dev/null || ip -4 -o addr show | awk '{print \\\$4}' | cut -d/ -f1) | tr ' ' '\n' | grep '^192\\.168\\.1\\.' | tr '\n' ' ' | sed 's/ *$//'" 2>/dev/null || true)
ip=$(pct exec "$vmid" -- sh -c '
(
hostname -I 2>/dev/null || true;
ip -4 -o addr 2>/dev/null | awk "{print \$4}" || true;
ip -4 addr 2>/dev/null | awk "/inet /{print \$2}" || true;
ifconfig 2>/dev/null | awk "/inet /{print \$2}" || true;
grep -oE "([0-9]{1,3}\\.){3}[0-9]{1,3}" /proc/net/fib_trie 2>/dev/null || true
) | tr " " "\n" | grep "^192\\.168\\.1\\." | cut -d/ -f1 | sort -u | tr "\n" " " | sed "s/ *$//"' 2>/dev/null || true)
# Tailcale check
ts_issue=$(check_lxc_tailscale_issue "$vmid")
if [ -n "$ts_issue" ]; then
@ -256,13 +263,21 @@ OVR
}
wait_for_endpoints() {
echo "[INFO] Esperando endpoints 0.0.0.0:2375 y 0.0.0.0:9023..."
echo "[INFO] Esperando endpoints TCP 2375 y 9023 (IPv4/IPv6)..."
is_listening_port() {
p="$1"
if command -v ss >/dev/null 2>&1; then
ss -lnt | awk '{print $4}' | tr -d ' ' | grep -Eq "(^|.*:)(0\.0\.0\.0|\*|\[::\]|::):${p}$"
else
netstat -lnt 2>/dev/null | awk '{print $4}' | tr -d ' ' | grep -Eq "(^|.*:)(0\.0\.0\.0|\*|\[::\]|::):${p}$"
fi
}
EP=0
LIMIT=${DOCKER_WAIT_SECONDS:-30}
for i in $(seq 1 "$LIMIT"); do
API_OK=0; MET_OK=0
if ss -lnt 2>/dev/null | grep -q ":2375 "; then API_OK=1; fi
if ss -lnt 2>/dev/null | grep -q ":9023 "; then MET_OK=1; fi
is_listening_port 2375 && API_OK=1
is_listening_port 9023 && MET_OK=1
if [ $API_OK -eq 1 ] && [ $MET_OK -eq 1 ]; then EP=1; break; fi
sleep 1
done
@ -276,19 +291,27 @@ OVR
check_listeners() {
echo "[INFO] Comprobando puertos en escucha para Docker..."
if command -v ss >/dev/null 2>&1; then
ss -lnt | awk "{print}"
ss -lnt | awk '{print}'
elif command -v netstat >/dev/null 2>&1; then
netstat -lnt || true
fi
if ss -lnt 2>/dev/null | grep -q ":2375 "; then
echo "[INFO] API Docker TCP escuchando en 0.0.0.0:2375"
is_listening_port() {
p="$1"
if command -v ss >/dev/null 2>&1; then
ss -lnt | awk '{print $4}' | tr -d ' ' | grep -Eq "(^|.*:)(0\.0\.0\.0|\*|\[::\]|::):${p}$"
else
netstat -lnt 2>/dev/null | awk '{print $4}' | tr -d ' ' | grep -Eq "(^|.*:)(0\.0\.0\.0|\*|\[::\]|::):${p}$"
fi
}
if is_listening_port 2375; then
echo "[INFO] API Docker TCP escuchando en 2375 (IPv4/IPv6)"
else
echo "[WARN] API Docker TCP NO detectada en 0.0.0.0:2375"
echo "[WARN] API Docker TCP NO detectada en 2375"
fi
if ss -lnt 2>/dev/null | grep -q ":9023 "; then
echo "[INFO] Métricas Docker escuchando en 0.0.0.0:9023"
if is_listening_port 9023; then
echo "[INFO] Métricas Docker escuchando en 9023 (IPv4/IPv6)"
else
echo "[WARN] Métricas Docker NO detectadas en 0.0.0.0:9023"
echo "[WARN] Métricas Docker NO detectadas en 9023"
fi
}