main
parent
ffdd0e4112
commit
46c26360bf
|
|
@ -51,6 +51,43 @@ check_lxc_docker_issue() {
|
||||||
' 2>/dev/null | tr -d '\r' | head -n1
|
' 2>/dev/null | tr -d '\r' | head -n1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Comprueba si los puertos de Docker están escuchando (2375 API y 9023 métricas)
|
||||||
|
check_lxc_docker_ports() {
|
||||||
|
local vmid="$1"
|
||||||
|
pct exec "$vmid" -- sh -c '
|
||||||
|
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
|
||||||
|
}
|
||||||
|
miss=""
|
||||||
|
is_listening_port 2375 || miss="${miss},api2375"
|
||||||
|
is_listening_port 9023 || miss="${miss},metrics9023"
|
||||||
|
if [ -z "$miss" ]; then
|
||||||
|
echo docker-ports:OK
|
||||||
|
else
|
||||||
|
echo docker-ports:missing${miss}
|
||||||
|
fi
|
||||||
|
' 2>/dev/null | tr -d '\r' | head -n1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Estado del demonio Docker (arriba/abajo)
|
||||||
|
check_lxc_docker_daemon() {
|
||||||
|
local vmid="$1"
|
||||||
|
pct exec "$vmid" -- sh -c '
|
||||||
|
if command -v systemctl >/dev/null 2>&1; then
|
||||||
|
systemctl is-active --quiet docker && echo docker:up || echo docker:down
|
||||||
|
elif command -v rc-service >/dev/null 2>&1; then
|
||||||
|
rc-service docker status >/dev/null 2>&1 && echo docker:up || echo docker:down
|
||||||
|
else
|
||||||
|
echo docker:unknown
|
||||||
|
fi
|
||||||
|
' 2>/dev/null | tr -d '\r' | head -n1
|
||||||
|
}
|
||||||
|
|
||||||
collect_lxc_summary() {
|
collect_lxc_summary() {
|
||||||
local vmid="$1"
|
local vmid="$1"
|
||||||
local name ip issues=""
|
local name ip issues=""
|
||||||
|
|
@ -62,7 +99,11 @@ collect_lxc_summary() {
|
||||||
ip -4 addr 2>/dev/null | awk "/inet /{print \$2}" || true;
|
ip -4 addr 2>/dev/null | awk "/inet /{print \$2}" || true;
|
||||||
ifconfig 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
|
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)
|
) | tr " " "\n" \
|
||||||
|
| grep "^192\\.168\\.1\\." \
|
||||||
|
| cut -d/ -f1 \
|
||||||
|
| awk -F. '{ if ($4>0 && $4<255) print }' \
|
||||||
|
| sort -u | tr "\n" " " | sed "s/ *$//"' 2>/dev/null || true)
|
||||||
# Tailcale check
|
# Tailcale check
|
||||||
ts_issue=$(check_lxc_tailscale_issue "$vmid")
|
ts_issue=$(check_lxc_tailscale_issue "$vmid")
|
||||||
if [ -n "$ts_issue" ]; then
|
if [ -n "$ts_issue" ]; then
|
||||||
|
|
@ -73,6 +114,16 @@ collect_lxc_summary() {
|
||||||
if [ -n "$dk_issue" ] && [ "$dk_issue" != "OK" ]; then
|
if [ -n "$dk_issue" ] && [ "$dk_issue" != "OK" ]; then
|
||||||
issues="${issues}${issues:+;}${dk_issue}"
|
issues="${issues}${issues:+;}${dk_issue}"
|
||||||
fi
|
fi
|
||||||
|
# Docker daemon status
|
||||||
|
dk_daemon=$(check_lxc_docker_daemon "$vmid")
|
||||||
|
if [ -n "$dk_daemon" ]; then
|
||||||
|
issues="${issues}${issues:+;}${dk_daemon}"
|
||||||
|
fi
|
||||||
|
# Docker ports listening
|
||||||
|
dk_ports=$(check_lxc_docker_ports "$vmid")
|
||||||
|
if [ -n "$dk_ports" ]; then
|
||||||
|
issues="${issues}${issues:+;}${dk_ports}"
|
||||||
|
fi
|
||||||
if [ -n "$issues" ]; then
|
if [ -n "$issues" ]; then
|
||||||
SUMMARY_LINES+=("LXC $vmid | ${name:-lxc-$vmid} | ${ip:-no-ip-in-range} | ${issues}")
|
SUMMARY_LINES+=("LXC $vmid | ${name:-lxc-$vmid} | ${ip:-no-ip-in-range} | ${issues}")
|
||||||
else
|
else
|
||||||
|
|
@ -349,6 +400,13 @@ OVR
|
||||||
tailscale_note="tailscale NOT INSTALLED"
|
tailscale_note="tailscale NOT INSTALLED"
|
||||||
else
|
else
|
||||||
tailscale_note="tailscale DOWN"
|
tailscale_note="tailscale DOWN"
|
||||||
|
# Intentar levantar tailscale si está instalado pero abajo
|
||||||
|
pct exec "$vmid" -- sh -lc 'if command -v tailscale >/dev/null 2>&1; then (sudo -n tailscale up || sudo tailscale up || tailscale up) >/dev/null 2>&1 || true; fi' || true
|
||||||
|
# Re-chequear estado tras el intento
|
||||||
|
tailscale_status=$(pct exec "$vmid" -- sh -c "$check_tailscale_status" 2>&1)
|
||||||
|
if echo "$tailscale_status" | grep -q "running"; then
|
||||||
|
tailscale_note="tailscale UP"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Obtener contenedores Docker
|
# Obtener contenedores Docker
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue