59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
#!/bin/bash
|
|
# 健康檢查 API
|
|
# 輸出 JSON 格式的服務狀態
|
|
|
|
echo "Content-Type: application/json"
|
|
echo "Access-Control-Allow-Origin: *"
|
|
echo "Cache-Control: no-cache, no-store, must-revalidate"
|
|
echo ""
|
|
|
|
check_service() {
|
|
local name=$1
|
|
local url=$2
|
|
local start_time=$(date +%s%N)
|
|
|
|
local response=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 3 --max-time 5 "$url" 2>/dev/null)
|
|
|
|
local end_time=$(date +%s%N)
|
|
local response_time=$(( (end_time - start_time) / 1000000 ))
|
|
|
|
if [[ "$response" == "200" ]] || [[ "$response" == "302" ]] || [[ "$response" == "401" ]]; then
|
|
echo "\"$name\": {\"status\": \"online\", \"code\": $response, \"responseTime\": $response_time}"
|
|
else
|
|
echo "\"$name\": {\"status\": \"offline\", \"code\": $response, \"responseTime\": $response_time}"
|
|
fi
|
|
}
|
|
|
|
echo '{"services": {'
|
|
|
|
# 核心服務
|
|
check_service "momo-live" "https://mo.wooo.work/health"
|
|
echo ","
|
|
check_service "momo-prod" "https://mo.wooo.work/health"
|
|
echo ","
|
|
|
|
# 開發工具
|
|
check_service "gitlab" "http://127.0.0.1:8929/"
|
|
echo ","
|
|
check_service "registry" "http://127.0.0.1:5002/v2/"
|
|
echo ","
|
|
check_service "n8n" "http://127.0.0.1:5678/"
|
|
echo ","
|
|
|
|
# 監控服務
|
|
check_service "grafana" "http://127.0.0.1:30030/"
|
|
echo ","
|
|
check_service "prometheus" "http://10.43.25.78:9090/-/healthy"
|
|
echo ","
|
|
check_service "alertmanager" "http://10.43.79.187:9093/-/healthy"
|
|
echo ","
|
|
|
|
# BI 平台
|
|
check_service "superset" "http://127.0.0.1:8088/health"
|
|
echo ","
|
|
check_service "metabase" "http://127.0.0.1:3030/api/health"
|
|
|
|
echo '},'
|
|
echo "\"timestamp\": \"$(date -Iseconds)\""
|
|
echo '}'
|