rwadurian/backend/services/identity-service/scripts/health-check.sh

68 lines
1.6 KiB
Bash

#!/bin/bash
# 健康检查脚本 - 检查所有依赖服务是否正常
set -e
echo "🏥 开始健康检查..."
echo ""
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
# 检查计数
PASS=0
FAIL=0
# 检查函数
check_service() {
local service_name=$1
local check_command=$2
echo -n "Checking $service_name ... "
if eval "$check_command" > /dev/null 2>&1; then
echo -e "${GREEN}✓ OK${NC}"
PASS=$((PASS + 1))
else
echo -e "${RED}✗ FAIL${NC}"
FAIL=$((FAIL + 1))
fi
}
# 检查 PostgreSQL
echo -e "${YELLOW}=== 数据库服务 ===${NC}"
check_service "PostgreSQL" "pg_isready -h localhost -p 5432"
# 检查 Redis
echo -e "${YELLOW}=== 缓存服务 ===${NC}"
check_service "Redis" "redis-cli -h localhost -p 6379 ping"
# 检查 Kafka
echo -e "${YELLOW}=== 消息队列服务 ===${NC}"
check_service "Kafka" "nc -zv localhost 9092"
# 检查应用服务
echo -e "${YELLOW}=== 应用服务 ===${NC}"
check_service "Identity Service" "curl -f http://localhost:3000/health"
# 检查 Swagger 文档
echo -e "${YELLOW}=== API 文档 ===${NC}"
check_service "Swagger UI" "curl -f http://localhost:3000/api"
echo ""
echo -e "${YELLOW}======================================${NC}"
echo -e "${YELLOW}健康检查完成!${NC}"
echo -e "${GREEN}正常: $PASS${NC}"
echo -e "${RED}异常: $FAIL${NC}"
echo -e "${YELLOW}======================================${NC}"
if [ $FAIL -eq 0 ]; then
echo -e "${GREEN}✓ 所有服务正常!${NC}"
exit 0
else
echo -e "${RED}✗ 存在异常的服务!${NC}"
exit 1
fi