diff --git a/Prometheus/install_cAdvisor.sh b/Prometheus/install_cAdvisor.sh index e69de29..8fffde0 100644 --- a/Prometheus/install_cAdvisor.sh +++ b/Prometheus/install_cAdvisor.sh @@ -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 <