关于 aws-resource-health-diagnose
通过 AWS CLI、CloudWatch 指标和日志诊断指定 AWS 资源的健康状况。工作流按严重程度分类问题,并生成分阶段修复计划与报告。
主要功能
- 01发现并评估 AWS 资源
- 02分析 CloudWatch 日志和指标
- 03按严重程度与原因分类问题
- 04生成分阶段修复步骤
- 05输出健康评估报告
适用场景
- 01调查 Lambda 错误率升高或限流
- 02诊断 RDS 容量或延迟问题
- 03检查 ECS、ALB、SQS 或 DynamoDB 状况
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ github/ awesome-copilot --skill aws-resource-health-diagnose安装后在 Claude Code 中输入/aws-resource-health-diagnose确认已加载。
详细介绍
AWS 资源健康与问题诊断
此工作流分析特定 AWS 资源以评估其健康状况,使用 CloudWatch 日志和指标诊断潜在问题,并针对发现的任何问题制定全面的修复计划。
前置条件
- 已配置并完成身份验证的 AWS CLI
- 已确定目标 AWS 资源(名称、类型,以及可选的区域/账户)
- 在目标资源上启用了 CloudWatch 日志记录和指标
工作流步骤
步骤 1:获取 AWS 诊断最佳实践
获取 https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ 以了解监控和故障排除指南,为诊断方法提供依据。
步骤 2:资源发现与识别
使用适合其类型的 AWS CLI 命令定位目标资源:
# EC2
aws ec2 describe-instances --filters "Name=tag:Name,Values=<name>"
# Lambda
aws lambda get-function --function-name <name>
# RDS
aws rds describe-db-instances --db-instance-identifier <name>
# ECS
aws ecs describe-services --cluster <cluster> --services <name>
# ALB
aws elbv2 describe-load-balancers --names <name>
# DynamoDB
aws dynamodb describe-table --table-name <name>
# SQS
aws sqs get-queue-attributes --queue-url <url> --attribute-names All
# API Gateway
aws apigatewayv2 get-apis
如果找到多个匹配项,提示用户指定区域/账户。
步骤 3:健康状况评估
运行特定于服务的健康检查:
# EC2
aws ec2 describe-instance-status --instance-ids <id>
# RDS
aws rds describe-db-instances --db-instance-identifier <name> \
--query 'DBInstances[0].DBInstanceStatus'
# Lambda - error rate over 24h
aws cloudwatch get-metric-statistics --namespace AWS/Lambda \
--metric-name Errors --dimensions Name=FunctionName,Value=<name> \
--start-time $(date -u -d '24 hours ago' +%Y-%m-%dT%H:%M:%SZ) \
--end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \
--period 3600 --statistics Sum
# ECS
aws ecs describe-services --cluster <cluster> --services <name> \
--query 'services[0].[status,runningCount,desiredCount,pendingCount]'
按服务类型划分的关键健康指标:
- Lambda:错误率、限流率、持续时间 P99、并发执行数
- RDS:CPU 利用率、FreeStorageSpace、DatabaseConnections、ReadLatency/WriteLatency
- ECS:运行中任务数与期望任务数、任务停止原因
- ALB:TargetResponseTime、HTTPCode_ELB_5XX_Count、UnHealthyHostCount
- SQS:ApproximateNumberOfMessagesNotVisible、ApproximateAgeOfOldestMessage
- DynamoDB:ConsumedReadCapacityUnits、ThrottledRequests、SuccessfulRequestLatency
步骤 4:日志与指标分析
查找日志组并运行 CloudWatch Logs Insights 查询:
# Find log groups
aws logs describe-log-groups --log-group-name-prefix /aws/<service>/<name>
# Start a query (last 24h errors)
aws logs start-query \
--log-group-name /aws/lambda/<name> \
--start-time $(date -u -d '24 hours ago' +%s) \
--end-time $(date -u +%s) \
--query-string 'filter @message like /ERROR/ | stats count(*) as errorCount by bin(1h)'
# Get results
aws logs get-query-results --query-id <id>
# Lambda cold starts
aws logs start-query \
--log-group-name /aws/lambda/<name> \
--start-time $(date -u -d '24 hours ago' +%s) \
--end-time $(date -u +%s) \
--query-string 'filter @type = "REPORT" | filter @initDuration > 0 | stats count() as coldStarts by bin(1h)'
# RDS Performance Insights (if enabled)
aws pi get-resource-metrics \
--service-type RDS --identifier db:<identifier> \
--metric-queries '[{"Metric":"db.load.avg"}]' \
--start-time $(date -u -d '24 hours ago' +%Y-%m-%dT%H:%M:%SZ) \
--end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \
--period-in-seconds 3600
识别:重复出现的错误模式、与部署的关联(CloudTrail)、性能趋势、依赖项故障。
步骤 5:问题分类与根因分析
严重性:
- 严重:服务不可用、数据丢失、安全事件
- 高:性能下降、错误率 >5%、间歇性故障
- 中:警告、配置欠佳、轻微性能问题
- 低:信息性警报、优化机会
根因类别:
- 配置问题:设置错误、缺少环境变量、IAM 权限被拒
- 资源约束:CPU/内存/磁盘限制、Lambda 限流、RDS 连接耗尽
- 网络问题:安全组规则、VPC 路由、DNS、NACL
- 应用程序问题:代码缺陷、内存泄漏、未处理的异常、慢查询
- 依赖项问题:下游超时、SQS/SNS 故障、外部 API 限制
- 安全问题:KMS 密钥问题、证书过期
步骤 6:生成修复计划
立即行动(严重):
# Lambda throttling — increase reserved concurrency
aws lambda put-reserved-concurrency \
--function-name <name> --reserved-concurrent-executions 100
# RDS connection exhaustion — reboot to reset connections
aws rds reboot-db-instance --db-instance-identifier <name>
短期修复(高/中):配置调整、合理调整规模、改进 CloudWatch 告警、修正 IAM。
长期改进:为提高韧性进行架构变更、预防性监控、通过 EventBridge 启用 AWS Health Dashboard 通知。
步骤 7:报告与用户确认
呈现发现结果:
🏥 AWS Resource Health Assessment
📊 Resource Overview:
• Resource: [Name] ([Type])
• Status: [Healthy/Warning/Critical]
• Region: [Region] | Account: [Account ID]
🚨 Issues Identified:
• Critical: X | High: Y | Medium: Z | Low: N
🔍 Top Issues:
1. [Issue]: [Description] — Impact: [High/Medium/Low]
2. [Issue]: [Description] — Impact: [High/Medium/Low]
🛠️ Remediation: X immediate, Y short-term, Z long-term actions
❓ Proceed with detailed remediation plan? (y/n)
然后生成完整的 markdown 报告,涵盖:健康指标、带有根因分析的问题、包含 AWS CLI 命令的分阶段修复步骤、CloudWatch 告警建议,以及验证清单。
错误处理
- 未找到资源:请用户澄清名称/区域
- 身份验证问题:引导完成
aws configure - 权限不足:列出所需的 IAM 操作(
logs:*、cloudwatch:*、pi:*) - 无可用日志:建议为该资源类型启用 CloudWatch 日志记录
- 查询超时:使用更短的时间窗口
成功标准
- ✅ 在所有关键指标上准确评估资源健康状况
- ✅ 识别所有重要问题并按严重性分类
- ✅ 对主要问题完成根因分析
- ✅ 包含 AWS CLI 命令的可操作修复计划
- ✅ 包含 CloudWatch 监控建议
- ✅ 实施步骤包含验证和回滚流程
评论
支持 Markdown