新增cAdvisor安装脚本

This commit is contained in:
CN-JS-HuiBai
2026-01-16 06:21:55 +00:00
parent 9fbe4a2cd5
commit 43acf1ad2b

View File

@@ -0,0 +1,104 @@
#!/bin/bash
set -e
#Detect Operation System
if command -v apt >/dev/null 2>&1; then
echo "Detected apt-based system"
sudo apt update
sudo apt install -y wget curl tar
elif command -v dnf >/dev/null 2>&1; then
echo "Detected dnf-based system"
sudo dnf install -y wget curl tar
else
echo "Unsupported package manager"
exit 1
fi
# Download Node Exporter
CN_URL="https://8.134.128.173/relayx/cadvisor-v0.56.1-linux-amd64"
GLOBAL_URL="https://github.com/google/cadvisor/releases/download/v0.56.1/cadvisor-v0.56.1-linux-amd64"
is_cn=false
echo "Detecting geographic location..."
COUNTRY=$(curl -s --max-time 3 https://ipinfo.io/country || true)
if [ "$COUNTRY" = "CN" ]; then
is_cn=true
fi
if [ "$is_cn" = true ]; then
echo "Geolocation: China mainland detected"
DOWNLOAD_URL="$CN_URL"
else
echo "Geolocation: non-China region detected"
DOWNLOAD_URL="$GLOBAL_URL"
fi
echo "Downloading from: $DOWNLOAD_URL"
curl -fL -o "$TARGET" "$DOWNLOAD_URL"
SERVICE_FILE="/etc/systemd/system/cAdvisior.service"
echo "Creating systemd service file..."
#chose port
DEFAULT_PORT=9100
if [ -t 0 ]; then
# 有 TTY交互式
while true; do
read -rp "Please enter node_exporter listen port [default: ${DEFAULT_PORT}]: " PORT
PORT=${PORT:-$DEFAULT_PORT}
if [[ "$PORT" =~ ^[0-9]+$ ]] && [ "$PORT" -ge 1 ] && [ "$PORT" -le 65535 ]; then
break
else
echo "Invalid port. Please enter a number between 1 and 65535."
fi
done
else
# 无 TTY自动模式
PORT=$DEFAULT_PORT
echo "No TTY detected, using default port: $PORT"
fi
sudo tee "$SERVICE_FILE" > /dev/null <<EOF
[Unit]
Description=cAdvisor - Container Resource Usage and Performance Analysis
Documentation=https://github.com/google/cadvisor
After=docker.service
Requires=docker.service
[Service]
Type=simple
ExecStart=/usr/bin/cadvisor \
--logtostderr=true \
--port=${PORT} \
--housekeeping_interval=10s \
--docker_only=true \
--store_container_labels=false
Restart=always
RestartSec=10
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
EOF
# Reload systemd, enable and start service
echo "Enabling and starting cAdvisior service..."
sudo systemctl daemon-reload
sudo systemctl enable --now cAdvisior.service
echo "Node Exporter installation completed, listening on port 8080"