Tổng quan kiến trúc
Tại sao chọn EventBridge? EventBridge gửi JSON sạch trực tiếp đến webhook của bạn với logic retry tích hợp, dead-letter queue và bảo mật dựa trên IAM. Không cần bắt tay xác nhận subscription (khác với SNS), và không cần Lambda function để chuyển đổi payload.
Điều kiện tiên quyết
- Một tài khoản AWS với quyền tạo EventBridge rule, API destination và connection
- Một CloudWatch alarm đã được cấu hình cho số liệu bạn muốn giám sát
- Một URL webhook CloudThinker (được tạo trong các bước bên dưới)
Hướng dẫn cài đặt
Tạo CloudThinker Webhook
- Trong CloudThinker, vào Deep Response Engine → Settings → Integrations
- Nhấp Connect trên card AWS CloudWatch
- Nhập tên (ví dụ: “Production CloudWatch Alerts”)
- Xem lại các field mapping được cấu hình sẵn — được đặt cho định dạng EventBridge:
| Trường Incident | JSONPath | Trích xuất |
|---|---|---|
| Title | $.detail.alarmName | Tên alarm |
| Description | $.detail.state.reason | Lý do thay đổi trạng thái |
| Severity | $.detail.state.value | Trạng thái alarm (ALARM, OK, INSUFFICIENT_DATA) |
| Services | $.detail.configuration.metrics[0].metricStat.metric.namespace | Namespace dịch vụ AWS (ví dụ: AWS/EC2) |
- Phương thức xác thực mặc định là API Key với header
x-api-key— phù hợp với cài đặt EventBridge connection - Cấu hình severity mapping và cài đặt auto-trigger nếu cần
- Nhấp Create và lưu Secret Key — bạn sẽ cần nó cho EventBridge connection
Tạo EventBridge Connection
- Trong AWS Console, vào Amazon EventBridge → Integration → Connections
- Nhấp Create connection
- Cấu hình connection:
- Name:
cloudthinker-webhook - Authorization type: API Key
- API key name:
x-api-key - API key value: Dán Secret Key từ hộp thoại tạo webhook CloudThinker
- Name:
Tạo API Destination
- Vào Amazon EventBridge → Integration → API destinations
- Nhấp Create API destination
- Cấu hình:
- Name:
cloudthinker-incidents - API destination endpoint: Dán URL webhook CloudThinker của bạn
- HTTP method:
POST - Connection: Chọn connection
cloudthinker-webhookđã tạo ở trên - Invocation rate limit:
100mỗi giây (điều chỉnh nếu cần)
- Name:
Tạo EventBridge Rule
- Vào Amazon EventBridge → Rules
- Chọn event bus default
- Nhấp Create rule
-
Cấu hình:
- Name:
cloudwatch-alarms-to-cloudthinker - Description: Route CloudWatch alarm state changes to CloudThinker
- Event bus: default
- Rule type: Rule with an event pattern
- Name:
- Định nghĩa event pattern:
-
Chọn target:
- Target type: EventBridge API destination
- API destination: Chọn
cloudthinker-incidents - Execution role: Tạo role mới hoặc dùng role hiện có có quyền
events:InvokeApiDestination
- Nhấp Create rule
Payload sự kiện
EventBridge gửi sự kiện CloudWatch alarm theo định dạng sau. Các field mapping của CloudThinker tự động trích xuất dữ liệu incident từ cấu trúc này.Severity mapping
Các trạng thái CloudWatch alarm được ánh xạ sang mức severity của CloudThinker. Ánh xạ mặc định là:| Trạng thái CloudWatch | Severity CloudThinker |
|---|---|
ALARM | Critical |
INSUFFICIENT_DATA | Medium |
OK | Info |
Lọc alarm
Bạn có thể kiểm soát alarm nào kích hoạt incident bằng cách tinh chỉnh event pattern của EventBridge rule. Theo tiền tố tên alarm:Cài đặt đa vùng
Sự kiện CloudWatch theo vùng — alarm chỉ phát ra sự kiện đến EventBridge bus trong vùng của chúng. Để giám sát đa vùng:- Tùy chọn A: Chuyển tiếp sự kiện cross-region — Tạo một EventBridge rule trong mỗi vùng nguồn để chuyển tiếp sự kiện CloudWatch alarm đến event bus của vùng trung tâm, sau đó định tuyến từ đó đến CloudThinker.
- Tùy chọn B: Rule theo vùng — Tạo API destination và rule trong mỗi vùng trỏ đến cùng URL webhook CloudThinker. Cách này đơn giản hơn nhưng yêu cầu duy trì rule trên nhiều vùng.
Xử lý sự cố
Không có incident nào được tạo
Không có incident nào được tạo
- Kiểm tra EventBridge rule — Vào EventBridge → Rules → chọn rule của bạn → tab Monitoring. Xác minh rule đang khớp sự kiện (số liệu
Invocations> 0) - Kiểm tra API destination — Vào API destinations → chọn của bạn → xác minh URL endpoint khớp với URL webhook CloudThinker
- Kiểm tra log CloudThinker — Vào Deep Response Engine → Settings → Integrations → chọn webhook → tab Logs để xem lịch sử gửi
- Kiểm tra bằng CLI — Chạy
aws cloudwatch set-alarm-stateđể mô phỏng alarm và xác minh toàn bộ chuỗi
Sự kiện được nhận nhưng thiếu trường
Sự kiện được nhận nhưng thiếu trường
Xác minh field mapping khớp với định dạng sự kiện EventBridge. Sự kiện CloudWatch được định tuyến qua EventBridge dùng tiền tố
$.detail.*:- Title:
$.detail.alarmName(không phải$.AlarmName) - Severity:
$.detail.state.value(không phải$.NewStateValue) - Description:
$.detail.state.reason(không phải$.NewStateReason)
Rule không khớp sự kiện nào
Rule không khớp sự kiện nào
- Đảm bảo event pattern dùng
"detail-type": ["CloudWatch Alarm State Change"](chuỗi chính xác, phân biệt hoa thường) - Đảm bảo rule nằm trên event bus default — CloudWatch gửi sự kiện đến bus default
- Xác minh alarm nằm trong cùng vùng với EventBridge rule
API destination trả về lỗi
API destination trả về lỗi
- 401/403: Xác minh giá trị API key của EventBridge connection khớp với secret key của webhook, và tên key là
x-api-key - 422: Định dạng payload có thể không khớp với field mapping mong đợi — kiểm tra cấu trúc payload sự kiện
- 429: Bạn đã vượt quá giới hạn tốc độ webhook — tăng giới hạn tốc độ trong cài đặt webhook CloudThinker
Thay thế: Tuyến đường SNS
CloudThinker cũng hỗ trợ nhận CloudWatch alarm qua SNS. Đường dẫn này hữu ích nếu bạn đã có SNS topic được cấu hình cho alarm của mình.- Xác nhận subscription SNS (không cần xác nhận thủ công)
- Mở gói notification SNS để trích xuất payload alarm
Tuyến đường EventBridge được đề xuất hơn SNS vì nó cung cấp định dạng sự kiện sạch hơn, lọc gốc và không yêu cầu bắt tay subscription.
Liên quan
Webhook Integrations Overview
Tìm hiểu về tất cả nền tảng được hỗ trợ và cấu hình webhook chung.
Root Cause Analysis
Cấu hình điều tra tự động được hỗ trợ bởi AI cho CloudWatch incident.