main
parent
ffdd0e4112
commit
46c26360bf
|
|
@ -51,6 +51,43 @@ check_lxc_docker_issue() {
|
|||
' 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() {
|
||||
local vmid="$1"
|
||||
local name ip issues=""
|
||||
|
|
@ -62,7 +99,11 @@ collect_lxc_summary() {
|
|||
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)
|
||||
) | 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
|
||||
ts_issue=$(check_lxc_tailscale_issue "$vmid")
|
||||
if [ -n "$ts_issue" ]; then
|
||||
|
|
@ -73,6 +114,16 @@ collect_lxc_summary() {
|
|||
if [ -n "$dk_issue" ] && [ "$dk_issue" != "OK" ]; then
|
||||
issues="${issues}${issues:+;}${dk_issue}"
|
||||
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
|
||||
SUMMARY_LINES+=("LXC $vmid | ${name:-lxc-$vmid} | ${ip:-no-ip-in-range} | ${issues}")
|
||||
else
|
||||
|
|
@ -349,6 +400,13 @@ OVR
|
|||
tailscale_note="tailscale NOT INSTALLED"
|
||||
else
|
||||
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
|
||||
|
||||
# Obtener contenedores Docker
|
||||
|
|
|
|||
Loading…
Reference in New Issue