Ot Aiops
支持多协议工业设备数据采集与智能诊断,具备高风险写入防护机制。
监控AWS ECS服务健康状态及CloudWatch日志,自动分析错误与重启事件。
openclaw skills install @briancolinger/aws-ecs-monitor命令、参数、文件名以原文为准
用于 AWS ECS 服务的生产环境健康监控与日志分析。
aws CLI 并具备相应 IAM 权限: - ecs:ListServices, ecs:DescribeServices
- elasticloadbalancing:DescribeTargetGroups, elasticloadbalancing:DescribeTargetHealth
- logs:FilterLogEvents, logs:DescribeLogGroups
curl 用于 HTTP 健康检查python3 用于 JSON 处理和日志分析openssl 用于 SSL 证书检查所有配置通过环境变量完成:
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
ECS_CLUSTER | 是 | — | ECS 集群名称 |
ECS_REGION | 否 | us-east-1 | AWS 区域 |
ECS_DOMAIN | 否 | — | 用于 HTTP/SSL 检查的域名(未设置则跳过) |
ECS_SERVICES | 否 | 自动探测 | 要监控的服务名列表,用逗号分隔 |
ECS_HEALTH_STATE | 否 | ./data/ecs-health.json | 写入健康状态的 JSON 文件路径 |
ECS_HEALTH_OUTDIR | 否 | ./data/ | 输出目录,存放日志、告警和分析报告 |
ECS_LOG_PATTERN | 否 | /ecs/{service} | CloudWatch 日志组匹配模式({service} 会被替换) |
ECS_HTTP_ENDPOINTS | 否 | — | 用逗号分隔的 name=url 对,用于自定义 HTTP 探测 |
ECS_HEALTH_STATE**(默认:./data/ecs-health.json)—— 健康状态 JSON 文件ECS_HEALTH_OUTDIR**(默认:./data/)—— 输出目录,存放日志、告警和分析报告scripts/ecs-health.sh — 健康监控脚本# 执行完整检查
ECS_CLUSTER=my-cluster ECS_DOMAIN=example.com ./scripts/ecs-health.sh
# 仅输出 JSON 格式结果
ECS_CLUSTER=my-cluster ./scripts/ecs-health.sh --json
# 静默模式(不发送告警,仅更新状态文件)
ECS_CLUSTER=my-cluster ./scripts/ecs-health.sh --quiet退出码说明:0 = 健康,1 = 不健康/降级,2 = 脚本错误
scripts/cloudwatch-logs.sh — 日志分析脚本# 从指定服务拉取原始日志
ECS_CLUSTER=my-cluster ./scripts/cloudwatch-logs.sh pull my-api --minutes 30
# 显示所有服务的错误汇总
ECS_CLUSTER=my-cluster ./scripts/cloudwatch-logs.sh errors all --minutes 120
# 深度分析并分类错误
ECS_CLUSTER=my-cluster ./scripts/cloudwatch-logs.sh diagnose --minutes 60
# 检测容器重启情况
ECS_CLUSTER=my-cluster ./scripts/cloudwatch-logs.sh restarts my-api
# 从健康状态文件自动诊断
ECS_CLUSTER=my-cluster ./scripts/cloudwatch-logs.sh auto-diagnose
# 跨所有服务生成摘要报告
ECS_CLUSTER=my-cluster ./scripts/cloudwatch-logs.sh summary --minutes 120支持选项:--minutes N(默认:60),--json,--limit N(默认:200),--verbose
当未设置 ECS_SERVICES 时,两个脚本会自动从集群中探测服务:
aws ecs list-services --cluster $ECS_CLUSTER日志组路径根据模式解析(默认为 /ecs/{service})。可通过 ECS_LOG_PATTERN 自定义:
# 若日志组路径为 /ecs/prod/my-api, /ecs/prod/my-frontend 等
ECS_LOG_PATTERN="/ecs/prod/{service}" ECS_CLUSTER=my-cluster ./scripts/cloudwatch-logs.sh diagnose健康监控脚本可在检测到问题时自动触发日志分析。将 ECS_HEALTH_OUTDIR 设置为共享目录,并联合运行两个脚本:
export ECS_CLUSTER=my-cluster
export ECS_DOMAIN=example.com
export ECS_HEALTH_OUTDIR=./data
# 运行健康检查(失败时自动触发日志分析)
./scripts/ecs-health.sh
# 或独立运行日志分析
./scripts/cloudwatch-logs.sh auto-diagnose --minutes 30日志分析器将错误分为以下类别:
panic — Go 崩溃fatal — 致命错误oom — 内存溢出timeout — 连接或请求超时connection_error — 连接被拒绝或重置http_5xx — HTTP 500 系列响应python_traceback — Python 堆栈跟踪exception — 通用异常auth_error — 权限或授权失败structured_error — 结构化格式的错误日志(如 JSON)error — 通用 ERROR 级别消息健康检查产生的噪音(如 ALB 发起的 GET/HEAD /health 请求)会自动从错误统计和 HTTP 状态分布中过滤。
已收录 2 个 Skill