Spaces:
Configuration error
Configuration error
# 聊天应用监控脚本 | |
echo "📊 聊天应用监控面板" | |
echo "====================" | |
echo | |
# 检查Docker服务 | |
echo "🐳 Docker服务状态:" | |
if systemctl is-active --quiet docker; then | |
echo " ✅ Docker服务运行中" | |
else | |
echo " ❌ Docker服务未运行" | |
fi | |
echo | |
# 检查容器状态 | |
echo "📦 容器状态:" | |
if command -v docker-compose >/dev/null 2>&1; then | |
docker-compose ps | |
else | |
docker compose ps | |
fi | |
echo | |
# 检查服务健康状态 | |
echo "🏥 服务健康检查:" | |
# 检查后端API | |
if curl -f -s http://localhost:5000/api/health > /dev/null; then | |
echo " ✅ 后端API (http://localhost:5000)" | |
# 获取健康信息 | |
HEALTH_INFO=$(curl -s http://localhost:5000/api/health) | |
echo " $(echo $HEALTH_INFO | jq -r '.status // "N/A"') - 运行时间: $(echo $HEALTH_INFO | jq -r '.uptime // "N/A"')秒" | |
echo " MongoDB: $(echo $HEALTH_INFO | jq -r '.mongodb // "N/A"')" | |
else | |
echo " ❌ 后端API (http://localhost:5000)" | |
fi | |
# 检查前端 | |
if curl -f -s http://localhost:3000 > /dev/null; then | |
echo " ✅ 前端服务 (http://localhost:3000)" | |
else | |
echo " ❌ 前端服务 (http://localhost:3000)" | |
fi | |
# 检查MongoDB | |
if docker exec chat-mongo mongosh --eval "db.adminCommand('ping')" > /dev/null 2>&1; then | |
echo " ✅ MongoDB数据库" | |
else | |
echo " ❌ MongoDB数据库" | |
fi | |
echo | |
# 系统资源使用情况 | |
echo "💻 系统资源使用:" | |
echo " CPU使用率: $(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | awk -F'%' '{print $1}')%" | |
echo " 内存使用: $(free -h | awk 'NR==2{printf "%.1f%%", $3*100/$2 }')" | |
echo " 磁盘使用: $(df -h / | awk 'NR==2{print $5}')" | |
echo | |
# Docker资源使用 | |
echo "🐳 Docker资源使用:" | |
docker stats --no-stream --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}" | |
echo | |
# 最近的日志 | |
echo "📋 最近的日志 (最后10行):" | |
if command -v docker-compose >/dev/null 2>&1; then | |
docker-compose logs --tail=10 | |
else | |
docker compose logs --tail=10 | |
fi | |
echo | |
# 网络连接 | |
echo "🌐 网络连接:" | |
echo " 端口3000状态: $(netstat -tuln | grep :3000 > /dev/null && echo "✅ 监听中" || echo "❌ 未监听")" | |
echo " 端口5000状态: $(netstat -tuln | grep :5000 > /dev/null && echo "✅ 监听中" || echo "❌ 未监听")" | |
echo " 端口27017状态: $(netstat -tuln | grep :27017 > /dev/null && echo "✅ 监听中" || echo "❌ 未监听")" | |
echo | |
# 数据库统计 | |
echo "📊 数据库统计:" | |
if docker exec chat-mongo mongosh chatapp --eval " | |
print('用户数量: ' + db.users.countDocuments()); | |
print('消息数量: ' + db.messages.countDocuments()); | |
print('今日消息: ' + db.messages.countDocuments({timestamp: {\$gte: new Date(new Date().setHours(0,0,0,0))}})); | |
" 2>/dev/null; then | |
echo " ✅ 数据库统计获取成功" | |
else | |
echo " ❌ 无法获取数据库统计" | |
fi | |
echo | |
echo "🔄 监控完成 - $(date)" | |
echo "💡 提示: 使用 'watch -n 30 ./monitor.sh' 可以每30秒自动刷新监控信息" | |