Giám sát các sự kiện Amazon ECS bằng tính năng lọc của Amazon EventBridge

Tác giả: Israel T, Henrique Santana, and Nataizya Sikasote
Ngày phát hành: 22 JAN 2026
Chuyên mục: Advanced (300), Amazon CloudWatch, Amazon Elastic Container Service, Amazon EventBridge, AWS Fargate, Technical How-to

Amazon Elastic Container Service (Amazon ECS) hiện cung cấp tính năng thu thập sự kiện và truy vấn lịch sử chỉ với một cú nhấp chuột trực tiếp trong AWS Management Console, mang lại khả năng hiển thị tức thì về các hoạt động vùng chứa của bạn. Chỉ với một cú nhấp chuột, bạn có thể tạo một quy tắc Amazon EventBridge và một nhóm Amazon CloudWatch Logs để thu thập tất cả các sự kiện Amazon ECS cho cụm của bạn. Nhưng nếu bạn muốn kiểm soát nhiều hơn thì sao? Đối với các môi trường sản xuất có khối lượng sự kiện cao, bạn cần lọc bỏ nhiễu và tập trung vào những gì quan trọng. Tính năng lọc của EventBridge giúp bạn nhắm mục tiêu chính xác các sự kiện cụ thể, từ đó giảm chi phí lưu trữ và cải thiện khả năng khắc phục sự cố.

Trong bài đăng này, chúng tôi trình bày cách thu thập các sự kiện Amazon ECS cụ thể bằng cách sử dụng các quy tắc EventBridge để tăng cường giám sát và khắc phục sự cố cho các ứng dụng vùng chứa của bạn. Chúng tôi sẽ chỉ cho bạn cách tùy chỉnh các mẫu lọc của EventBridge để thu thập các sự kiện Amazon ECS cụ thể quan trọng cho nhu cầu khắc phục sự cố và giám sát của bạn. Điều này giúp giảm nhiễu, giảm chi phí và cung cấp thông tin chi tiết có mục tiêu.

Tổng quan giải pháp

Giải pháp của chúng tôi sử dụng các quy tắc EventBridge với các mẫu lọc chính xác để thu thập các sự kiện Amazon ECS quan trọng đối với bạn và lưu trữ chúng trong CloudWatch Logs. Giải pháp này mang lại những lợi ích sau:

  • Giám sát sự kiện theo thời gian thực khi các sự kiện xảy ra trong môi trường vùng chứa của bạn
  • Khả năng lưu giữ dữ liệu lịch sử có thể cấu hình dài hạn trong CloudWatch Logs
  • Khả năng lọc nâng cao để giảm nhiễu và tập trung vào các sự kiện quan trọng
  • Giám sát hiệu quả về chi phí mà không cần triển khai hoặc quản lý thêm tài nguyên tính toán
  • Chi phí vận hành thấp vì không có tác nhân hoặc sidecar nào để cài đặt và bảo trì

Điều kiện tiên quyết

Trước khi triển khai giải pháp này, hãy đảm bảo rằng bạn có các điều kiện tiên quyết sau:

  • Một tài khoản AWS với các quyền thích hợp
  • Một hoặc nhiều cụm ECS với các dịch vụ đang chạy
  • AWS Command Line Interface (AWS CLI) (phiên bản 2.0 trở lên) đã được cài đặt và cấu hình
  • Kiến thức cơ bản về các khái niệm dịch vụ Amazon ECS và các mẫu sự kiện EventBridge

Các quyền AWS Identity and Access Management (IAM) cần thiết:

  • events:PutRule
  • events:PutTargets
  • logs:CreateLogGroup
  • logs:CreateLogStream
  • logs:PutLogEvents
  • ecs:DescribeServices
  • ecs:UpdateService
  • ecs:DescribeClusters

Theo thông lệ tốt nhất, chúng tôi khuyên bạn nên tuân thủ nguyên tắc đặc quyền tối thiểu với bất kỳ vai trò/người dùng nào. Để kiểm soát quyền truy cập vào các nhóm CloudWatch Log, hãy làm theo các bước này. Đối với các chính sách dựa trên tài nguyên Amazon ECS, hãy xem các ví dụ trong hướng dẫn dành cho nhà phát triển này.

Hiểu về các sự kiện Amazon ECS trong EventBridge

Trước khi triển khai tính năng lọc sự kiện, bạn phải hiểu các loại sự kiện mà Amazon ECS tạo ra và cách chúng truyền qua EventBridge. Amazon ECS tự động phát ra các sự kiện chi tiết cung cấp thông tin chi tiết về vòng đời và trạng thái hoạt động của các vùng chứa, tác vụ và dịch vụ của bạn. Khi Amazon ECS phát ra các sự kiện đến EventBridge, có thể đặt các đích khác nhau mà EventBridge có thể chuyển tiếp sự kiện đến, chẳng hạn như CloudWatch Logs.


Hình 1: Luồng sự kiện Amazon ECS từ Amazon ECS đến CloudWatch Logs thông qua EventBridge

Các sự kiện Amazon ECS thuộc một số danh mục chính giúp bạn giám sát các khía cạnh khác nhau của hoạt động vùng chứa của mình. Trong phần sau, chúng tôi sẽ xem xét các loại sự kiện chính mà bạn có thể giám sát.

Các sự kiện thay đổi trạng thái triển khai và hành động dịch vụ Amazon ECS

Các sự kiện này cung cấp cho bạn khả năng hiển thị về các hoạt động cấp dịch vụ quan trọng. Ví dụ, bạn có thể biết ngay lập tức khi:

  • Một triển khai dịch vụ thất bại
  • Một dịch vụ không thể khởi động các tác vụ một cách nhất quán
  • Các hoạt động mở rộng quy mô dịch vụ xảy ra
  • Các hoạt động tự động mở rộng quy mô diễn ra

Những thông tin chi tiết này giúp bạn nhanh chóng phát hiện và khắc phục sự cố cấp dịch vụ trước khi chúng ảnh hưởng đến người dùng của bạn. Để tham khảo đầy đủ, hãy xem tài liệu về các sự kiện hành động dịch vụ Amazon ECS.

Các sự kiện thay đổi trạng thái tác vụ Amazon ECS

Các sự kiện này cung cấp thông tin chi tiết về vòng đời tác vụ. Nếu bạn muốn thu thập các sự kiện lỗi tác vụ cụ thể hoặc các sự kiện lỗi tác vụ nói chung, thì bạn có thể làm như vậy với các sự kiện thay đổi trạng thái tác vụ Amazon ECS.

Các mẫu lọc của EventBridge

Các quy tắc EventBridge cho phép lọc sự kiện chính xác bằng cách sử dụng các mẫu JSON. Bạn có thể sử dụng tính năng lọc sự kiện chính xác để giảm chi phí lưu trữ CloudWatch Logs bằng cách chỉ thu thập các sự kiện mà bạn quan tâm.

Để tạo một quy tắc EventBridge và bắt đầu thu thập các sự kiện trong CloudWatch Logs, bạn có thể bật tính năng thu thập sự kiện và lịch sử sự kiện chỉ với một cú nhấp chuột trong Console. Điều này cho phép giám sát cơ bản toàn cụm với mẫu sự kiện:

{
"source": ["aws.ecs"],
"detail": {
"clusterArn": ["arn:aws:ecs:us-west-2:123456789012:cluster/my-cluster"]
}
}

Tuy nhiên, nếu cần lọc phạm vi hẹp hơn (ví dụ: để giảm chi phí CloudWatch Log), thì mẫu có thể được thu hẹp hơn nữa.

Giám sát theo dịch vụ cụ thể

Hơn nữa, ngoài việc giới hạn phạm vi ở cấp cụm, bạn cũng có thể giới hạn phạm vi bộ lọc sự kiện hơn nữa chỉ cho một tập hợp các dịch vụ Amazon ECS trong một cụm:

{
"source": ["aws.ecs"],
"resources": ["arn:aws:ecs:us-west-2:123456789012:service/my-cluster/my-service"],
"detail": {
"clusterArn": ["arn:aws:ecs:us-west-2:123456789012:cluster/my-cluster"]
}
}

Thay thế ID tài khoản, AWS Region, và tên cụm của bạn cho phù hợp.

Giám sát tập trung vào lỗi

Khi bạn đang giám sát và khắc phục sự cố môi trường vùng chứa và bạn phải thu thập các lỗi đặt tác vụ, lỗi triển khai và các vấn đề cụ thể về tính khả dụng của tài nguyên. Sau đó, quy tắc sự kiện có thể được cấu hình để lọc theo lý do và tên sự kiện để đảm bảo rằng các lỗi cần thiết được thu thập.

Ví dụ, trong sự kiện sau, các sự kiện được tạo ra cho bất kỳ lỗi đặt tác vụ và lỗi triển khai nào. Các sự kiện này được giới hạn hơn nữa để chỉ thu thập các lý do cụ thể giới hạn ở các phiên bản vùng chứa không khả dụng trong cụm (RESOURCE:INSTANCE), không đủ CPU/Bộ nhớ (RESOURCE:CPU, RESOURCE:MEMORY) cho các tác vụ cần được lên lịch, hoặc không có dung lượng Fargate Spot cho các tác vụ Fargate của bạn (RESOURCE:FARGATE). Thông tin chi tiết hơn về các sự kiện có thể được sử dụng có thể được tìm thấy trong tài liệu.

{
"source": ["aws.ecs"],
"resources": [
"arn:aws:ecs:us-west-2:123456789012:service/my-cluster/my-service",
"arn:aws:ecs:us-west-2:123456789012:service/my-cluster/my-service2"],
"detail": {
"clusterArn": ["arn:aws:ecs:us-west-2:123456789012:cluster/my-cluster"],
"eventName": ["SERVICE_TASK_PLACEMENT_FAILURE", "SERVICE_DEPLOYMENT_FAILED"],
"reason": ["RESOURCE:INSTANCE", "RESOURCE:CPU", "RESOURCE:FARGATE", "RESOURCE:MEMORY"]
}
}

Thay thế ID tài khoản, AWS Region, và tên cụm của bạn cho phù hợp.

Lọc theo lý do dừng tác vụ

Đối với các tác vụ Amazon ECS và giám sát các lý do dừng cụ thể, ví dụ khi một ứng dụng trong một tác vụ bị lỗi, quy tắc sự kiện có thể được giới hạn hơn nữa để thu thập trạng thái tác vụ STOPPED với stoppedReason cụ thể, ví dụ Essential container in task exited.

{
"source": ["aws.ecs"],
"detail": {
"clusterArn": ["arn:aws:ecs:us-west-2:123456789012:cluster/my-cluster"],
"lastStatus": ["STOPPED"],
"stoppedReason": ["Essential container in task exited"]
}
}

Thay thế ID tài khoản, AWS Region, và tên cụm của bạn cho phù hợp.

Hướng dẫn thực hiện

Trong phần này, bạn sẽ tạo một quy tắc EventBridge tùy chỉnh để thu thập các sự kiện Amazon ECS cụ thể. Nếu bạn đã sử dụng tính năng thu thập sự kiện chỉ với một cú nhấp chuột trong Console, thì bạn có thể sửa đổi quy tắc hiện có thay vì tạo mới.

  1. Mở EventBridge console và chọn Rules.
  2. Chọn Create rule.
  3. Nhập tên cho quy tắc của bạn (ví dụ: “ECS-MemoryFailures”), thêm mô tả tùy chọn và chọn bus sự kiện mặc định.
  4. Trong Rule type, chọn Rule with an event pattern.


Hình 2: Các trường chi tiết của quy tắc EventBridge

  1. Chọn Next.
  2. Trên trang Build event pattern, cuộn xuống và chọn Custom pattern (JSON editor).
  3. Dán mẫu sự kiện đã lọc của bạn vào trình chỉnh sửa. Ví dụ, để chỉ thu thập các lỗi đặt tác vụ liên quan đến bộ nhớ:
{
"source": ["aws.ecs"],
"detail": {
"clusterArn": ["arn:aws:ecs:us-west-2:123456789012:cluster/my-cluster"],
"eventName": ["SERVICE_TASK_PLACEMENT_FAILURE"],
"reason": ["RESOURCE:MEMORY"]
}
}

Thay thế ID tài khoản, AWS Region, và tên cụm của bạn cho phù hợp.


Hình 3: Mẫu sự kiện EventBridge cho các sự kiện cụm ECS

  1. Chọn Next.
  2. Chọn AWS Service làm loại đích và chọn CloudWatch log group từ danh sách thả xuống. Bạn có thể tạo một nhóm nhật ký mới hoặc sử dụng một nhóm nhật ký hiện có (ví dụ: “/aws/events/ecs-memory-failures”).
  3. Chọn Next, thêm bất kỳ thẻ nào mong muốn, sau đó chọn Next một lần nữa.
  4. Xem lại cấu hình của bạn và chọn Create rule.

Để kiểm tra quy tắc, bạn có thể tạo một cụm có một phiên bản vùng chứa với 1 GB bộ nhớ và khởi động một tác vụ cần 3 GB bộ nhớ. Điều này gây ra lỗi đặt tác vụ vì phiên bản vùng chứa trong cụm không có đủ tài nguyên để hỗ trợ tác vụ.

Nhìn vào CloudWatch, bạn có thể quan sát thấy sự kiện đã được thu thập trong nhóm nhật ký, như được hiển thị trong hình sau.


Hình 4: Sự kiện lỗi đặt tác vụ bộ nhớ Amazon ECS trong CloudWatch Logs

Như được hiển thị trong sự kiện, bạn có thông tin chi tiết về lý do tác vụ không thể được đặt RESOURCE:MEMORY và các chi tiết cụm và dịch vụ cụ thể cho lỗi đặt tác vụ đã cho.

Các yếu tố chi phí

Để hiểu các yếu tố chi phí của giải pháp này, hãy tham khảo giá của CloudWatch Logs. EventBridge không tính thêm phí cho các sự kiện dịch vụ AWS.

Dọn dẹp tài nguyên

Để tắt các quy tắc EventBridge và ngăn các sự kiện Amazon ECS được chuyển tiếp đến nhóm CloudWatch Log của bạn, hãy tắt hoặc xóa quy tắc EventBridge. Để tắt quy tắc bằng CLI:

$ aws events disable-rule --name "your-rule-name" --region <your-region>

Để xóa quy tắc, trước tiên hãy xóa các đích. Bạn phải xác định quy tắc đích trước:

$ aws events list-targets-by-rule --rule "your-rule-name" --region <your-region>

Sau đó, sử dụng ID đích trong lệnh RemoveTargets:

$ aws events remove-targets --rule "your-rule-name" --ids "<target-id>" --region <your-region>

Xóa quy tắc:

$ aws events delete-rule --name "your-rule-name" --region <your-region>

Khi quy tắc đã bị tắt/xóa, bạn có thể xóa nhóm nhật ký:

$ aws logs delete-log-group --log-group-name my-logs --region <your-region>

Kết luận

Tính năng lọc của EventBridge thay đổi cách bạn giám sát môi trường Amazon ECS bằng cách tập trung vào các sự kiện thực sự quan trọng. Cách tiếp cận có mục tiêu này giúp bạn nhanh chóng xác định và giải quyết các vấn đề bằng cách lọc sự kiện chính xác, giảm nhiễu và chi phí lưu trữ thông qua việc thu thập sự kiện tùy chỉnh, tạo quy trình khắc phục sự cố toàn diện và nhật ký kiểm tra, đồng thời xây dựng cơ sở dữ liệu lịch sử về các hoạt động vùng chứa để phân tích xu hướng. Bạn có thể sử dụng giải pháp này để phân tích các mẫu triển khai, khắc phục sự cố từ nhiều tuần trước và duy trì các bản ghi chi tiết cho các yêu cầu khắc phục sự cố của bạn—tất cả trong khi vẫn kiểm soát được chi phí.

Nâng cao khả năng giám sát Amazon ECS của bạn lên một tầm cao mới với nhiều cải tiến hơn cho việc triển khai của bạn. Triển khai phân tích nâng cao bằng cách sử dụng Amazon CloudWatch Logs Insights để phân tích các sự kiện vòng đời Amazon ECS của bạn với khả năng truy vấn mạnh mẽ giúp bạn trích xuất các mẫu và thông tin chi tiết từ dữ liệu sự kiện của mình. Tạo cảnh báo chủ động bằng cách thiết lập các cảnh báo CloudWatch kích hoạt khi các mẫu cụ thể xuất hiện trong các sự kiện của bạn, chẳng hạn như lỗi tác vụ lặp lại hoặc hạn chế tài nguyên. Cân nhắc tích hợp với các quy trình vận hành bằng cách chuyển tiếp các sự kiện quan trọng đến các chủ đề Amazon Simple Notification Service (Amazon SNS), các hàm Lambda hoặc hệ thống quản lý vé để tự động hóa phản hồi của bạn đối với các vấn đề về vùng chứa và giảm thời gian trung bình để giải quyết. Cuối cùng, xây dựng các bảng điều khiển trực quan toàn diện hiển thị các chỉ số sự kiện Amazon ECS của bạn cùng với dữ liệu hiệu suất để có khả năng hiển thị hoạt động hoàn chỉnh trên toàn bộ cơ sở hạ tầng vùng chứa của bạn. Mỗi bước này giúp bạn sử dụng hiệu quả hơn dữ liệu sự kiện mà bạn hiện đang thu thập.

Để đảm bảo có khả năng hiển thị và cảnh báo về chi phí của nhiều nhật ký CloudWatch hơn, các cảnh báo thanh toán CloudWatch có thể được thiết lập để phát hiện bất kỳ sự tăng đột biến không mong muốn nào trong việc nhập nhật ký có thể cho thấy cấu hình sai hoặc hoạt động độc hại. Trước khi triển khai giải pháp này trong môi trường sản xuất, bạn phải tiến hành đánh giá bảo mật kỹ lưỡng và triển khai thêm các biện pháp kiểm soát bảo mật phù hợp với khối lượng công việc của bạn. Chúng tôi cũng khuyên bạn nên xem xét và tuân thủ các chính sách bảo mật của tổ chức mình và tham khảo ý kiến của nhóm bảo mật để tăng cường bảo mật cho môi trường sản xuất.


Về tác giả


Israel T. là Chuyên gia về Amazon ECS (SME) đam mê giúp khách hàng tối ưu hóa môi trường vùng chứa của họ. Với chuyên môn sâu về các dịch vụ vùng chứa của AWS (đặc biệt là Amazon ECS, Amazon EKS và AWS Batch), anh chuyên đi sâu vào các vấn đề thành phần dịch vụ để tìm giải pháp cho các điểm khó khăn của khách hàng. Bạn cũng sẽ thấy anh chia sẻ các mẹo thực tế về tối ưu hóa đám mây và cố vấn cho thế hệ kỹ sư đám mây tiếp theo.


Nataizya Sikasote có niềm đam mê mạnh mẽ với các vùng chứa (đặc biệt là Amazon ECS và Kubernetes) và kinh nghiệm phát triển thực tế bằng Python và cơ sở hạ tầng dưới dạng mã bằng AWS CloudFormation và AWS CDK. Anh mang đến sự hiểu biết toàn diện về cả khía cạnh kỹ thuật và vận hành của các nền tảng vùng chứa hiện đại. Nataizya thích giúp khách hàng xây dựng, triển khai và mở rộng quy mô các ứng dụng vùng chứa một cách hiệu quả trên AWS.


Henrique Santana là một chuyên gia về vùng chứa, giúp các tổ chức hiện đại hóa ngăn xếp công nghệ của họ thông qua việc áp dụng vùng chứa và các giải pháp điều phối. Anh đã hướng dẫn nhiều doanh nghiệp vượt qua các thách thức về vùng chứa, dẫn đến cải thiện hiệu quả hoạt động và tăng tốc thời gian đưa sản phẩm ra thị trường. Khi không tối ưu hóa môi trường vùng chứa, Henrique chia sẻ những hiểu biết sâu sắc từ tiền tuyến cơ sở hạ tầng để giúp các doanh nghiệp điều hướng hành trình đám mây gốc của họ.