返回顶部
a

aws-ecs-monitorAWS ECS监控

AWS ECS production health monitoring with CloudWatch log analysis — monitors ECS service health, ALB targets, SSL certificates, and provides deep CloudWatch log analysis for error categorization, restart detection, and production alerts.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.1
安全检测
已通过
1,916
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

aws-ecs-monitor

AWS ECS 监控

针对AWS ECS服务的生产健康监控与日志分析。

功能概述

  • - 健康检查:对域名进行HTTP探测、ECS服务状态(期望运行数vs实际运行数)、ALB目标组健康状态、SSL证书过期检查
  • 日志分析:拉取CloudWatch日志,分类错误类型(panic、fatal、OOM、超时、5xx),检测容器重启,过滤健康检查噪音
  • 自动诊断:读取健康状态,通过日志分析自动调查故障服务

前置条件

  • - 已配置适当IAM权限的aws CLI:
- ecs:ListServices、ecs:DescribeServices - elasticloadbalancing:DescribeTargetGroups、elasticloadbalancing:DescribeTargetHealth - logs:FilterLogEvents、logs:DescribeLogGroups
  • - 用于HTTP健康检查的curl
  • 用于JSON处理和日志分析的python3
  • 用于SSL证书检查的openssl(可选)

配置

所有配置均通过环境变量进行:

变量必填默认值描述
ECSCLUSTERECS集群名称
ECSREGION
否 | us-east-1 | AWS区域 |
| ECS_DOMAIN | 否 | — | HTTP/SSL检查的域名(未设置则跳过) |
| ECS_SERVICES | 否 | 自动检测 | 要监控的服务名称(逗号分隔) |
| ECSHEALTHSTATE | 否 | ./data/ecs-health.json | 健康状态JSON文件写入路径 |
| ECSHEALTHOUTDIR | 否 | ./data/ | 日志和告警的输出目录 |
| ECSLOGPATTERN | 否 | /ecs/{service} | CloudWatch日志组模式({service}会被替换) |
| ECSHTTPENDPOINTS | 否 | — | HTTP探测的名称=URL键值对(逗号分隔) |

写入目录

  • - ECSHEALTHSTATE(默认:./data/ecs-health.json)— 健康状态JSON文件
  • ECSHEALTHOUTDIR(默认:./data/)— 日志、告警和分析报告的输出目录

脚本

scripts/ecs-health.sh — 健康监控

bash

完整检查


ECSCLUSTER=my-cluster ECSDOMAIN=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 — 日志分析器

bash

拉取某个服务的原始日志


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时,两个脚本都会自动检测集群中的服务:

bash
aws ecs list-services --cluster $ECS_CLUSTER

日志组通过模式解析(默认/ecs/{service})。可通过ECSLOGPATTERN覆盖:

bash

如果日志组为 /ecs/prod/my-api、/ecs/prod/my-frontend 等


ECSLOGPATTERN=/ecs/prod/{service} ECS_CLUSTER=my-cluster ./scripts/cloudwatch-logs.sh diagnose

集成

健康监控可在检测到问题时触发日志分析器进行自动诊断。将ECSHEALTHOUTDIR设置为共享目录,并同时运行两个脚本:

bash
export ECS_CLUSTER=my-cluster
export ECS_DOMAIN=example.com
export ECSHEALTHOUTDIR=./data

运行健康检查(失败时自动触发日志分析)

./scripts/ecs-health.sh

或独立运行日志分析

./scripts/cloudwatch-logs.sh auto-diagnose --minutes 30

错误分类

日志分析器将错误分类为:

  • - panic — Go语言panic
  • fatal — 致命错误
  • oom — 内存溢出
  • timeout — 连接/请求超时
  • connectionerror — 连接被拒绝/重置
  • http5xx — HTTP 500级别响应
  • pythontraceback — Python回溯
  • exception — 通用异常
  • autherror — 权限/授权失败
  • structured_error — JSON结构化错误日志
  • error — 通用ERROR级别消息

健康检查噪音(来自ALB的GET/HEAD /health请求)会自动从错误计数和HTTP状态分布中过滤。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 aws-ecs-monitor-1776369258 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 aws-ecs-monitor-1776369258 技能

通过命令行安装

skillhub install aws-ecs-monitor-1776369258

下载

⬇ 下载 aws-ecs-monitor v1.0.1(免费)

文件大小: 12.92 KB | 发布时间: 2026-4-17 15:11

v1.0.1 最新 2026-4-17 15:11
Fix security scan flags: declare runtime dependencies, document env vars and write paths

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部