Cách Tự Động Hóa Giải Quyết Sự Cố với PagerDuty và AWS Systems Manager Incident Manager

Ứng phó với sự cố là một yếu tố quan trọng cho các tổ chức phát triển và là một phần không thể thiếu trong AWS Cloud Adoption Framework (AWS CAF). Giải quyết sự cố một cách nhanh chóng có thể giảm tác động của sự cố đó. Tự động hóa giải quyết sự cố sẽ giúp bạn mở rộng khả năng, tăng tốc thời gian khôi phục và giảm bớt công việc lặp đi lặp lại của nhóm hoạt động dịch vụ đám mây của bạn.

Trong bài viết này, tôi sẽ hướng dẫn cách sử dụng Incident Manager, một tính năng của AWS Systems Manager, để xây dựng một giải pháp tự động hóa và quản lý sự cố bằng cách tích hợp với PagerDuty.

Bài viết giới thiệu ba hoạt động quan trọng trong quản lý sự cố với AWS Incident Manager. Các hoạt động này bao gồm tạo kế hoạch phản hồi cho sự cố, bắt đầu và kết thúc sự cố, và tiến hành phân tích sau sự cố.

  • Kế hoạch phản hồi cho sự cố: Tạo một kế hoạch cho sự cố trước khi nó xảy ra. Điều này bao gồm cấu hình cảnh báo và tương tác để cải thiện nhận thức về sự cố trong ứng dụng của bạn. Bạn cũng cần biết về các tích hợp bên thứ ba như PagerDuty để sử dụng các tài nguyên của người dùng, kênh trò chuyện và báo cáo tự động.
  • Bắt đầu và kết thúc sự cố: Sử dụng AWS Incident Manager để quản lý và phản hồi nhanh chóng với sự cố. Bạn có thể tạo sự cố bằng tay trên danh sách sự cố và quan sát cảnh báo từ PagerDuty. Bạn cũng có thể sử dụng hành động StartIncident API từ AWS CLI hoặc AWS SDK.
  • Tiến hành Phân Tích sau Sự Cố: Khi hệ thống gặp sự cố, Quản Lý Sự Cố sẽ tự động thu thập thông tin về các tài nguyên AWS liên quan đến vấn đề và thêm chúng vào tab “Mục Liên Quan”. Trong bài viết blog này, tôi sẽ sử dụng Phân Tích Sau Sự Cố để hướng dẫn bạn xác định những cải tiến cho phản ứng với sự cố của mình, bao gồm thời gian phát hiện và giảm thiểu sự cố. Phân tích cũng có thể giúp bạn hiểu nguyên nhân gốc rễ của sự cố. Quản Lý Sự Cố sẽ tạo ra các mục hành động đề xuất để cải thiện phản ứng sự cố của bạn.

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

Nếu đây là lần đầu tiên bạn sử dụng Incident Manager, hãy làm theo các bước hướng dẫn ban đầu trong phần Chuẩn bị với Incident Manager.

Đối với hướng dẫn này, bạn nên có các điều kiện tiên quyết sau:

  • AWS account và quyền AWS Identity Access and Management (IAM) để truy cập Systems Manager, Incident Manager, KMS, và Secrets Manager. Người dùng hoặc vai trò IAM của bạn cũng phải có quyền iam:CreateServiceLinkedRole. Incident Manager sử dụng quyền này để tạo service-linked role.
  • Dịch vụ bên thứ ba PagerDuty và API Create Permissions để tạo key sẽ được lưu trữ bằng AWS Secrets Manager để giao tiếp an toàn với PagerDuty.

Tổng quan về giải pháp

Bài blog này sẽ hướng dẫn bạn về việc sử dụng Incident Manager để tích hợp với kế hoạch cảnh báo hiện tại của PagerDuty. Việc nhập cảnh báo Response Plan từ Incident Manager sẽ giúp PagerDuty tiếp tục là mối quan hệ trung tâm trong quá trình quản lý sự cố và AIOps. Incident Manager cung cấp khả năng lưu trữ tập trung và tự động hoá các quy trình, giúp bạn sử dụng tài nguyên hiệu quả hơn, giảm thời gian và nỗ lực cho những người trả lời sự cố, giảm chi phí cho chủ sở hữu doanh nghiệp và tăng tính khả dụng cho khách hàng. Tất cả những điều này sẽ góp phần xây dựng uy tín và độ tin cậy của sản phẩm trên thị trường.

Hình 1. Tích hợp Incident Manager với PagerDuty

Hướng dẫn

Trong bài blog này, chúng ta sẽ tìm hiểu ba hoạt động phổ biến liên quan đến AWS và cách sử dụng Incident Manager để tự động hóa AWS Response Plan với dịch vụ PagerDuty.

Để tích hợp Incident Manager với PagerDuty, trước tiên bạn phải tạo một API Key trong bảng điều khiển của PagerDuty. API Key này sẽ được lưu trữ bằng AWS Secrets Manager và cung cấp thông tin xác thực an toàn cho Incident Manager để giao tiếp với dịch vụ PagerDuty. Sau đó, bạn sẽ tạo một Response Plan trong Incident Manager và chọn PagerDuty làm tích hợp bên thứ ba. Khi một Response Plan được kích hoạt, Incident Manager sẽ sử dụng cấu trúc phân trang, danh mục người dùng, nhóm và chính sách leo thang của PagerDuty để gọi.

Tạo PagerDuty API Key

Trước khi tích hợp Incident Manager với PagerDuty, bạn cần tạo một “API Access Key” trong PagerDuty Console. Sau đó, key này sẽ được dùng để tạo một “secret” trong AWS Secrets Manager chứa thông tin đăng nhập của bạn tại PagerDuty. Cuối cùng, bạn có thể thêm dịch vụ PagerDuty vào kế hoạch phản hồi trong Incident Manager.

  1. Truy cập PagerDuty Console
  2. Chọn Integrations từ PagerDuty Console Menu
  3. Chọn Developer Tools
  4. Chọn API Access Keys
  5. Chọn “+Create New API Key”
  6. Nhập API Key Description và chọn “Create Key”

Hình 2. PagerDuty Developer Tools Menu

Để lưu trữ thông tin đăng nhập truy cập PagerDuty trong secrets AWS Secrets Manager, hãy làm theo các bước trong Tạo secrets AWS Secrets Manager trong Hướng dẫn sử dụng AWS Secrets Manager.

Mở Secrets Manager consolet https://console.aws.amazon.com/secretsmanager/

Chọn Store a new secret.

  1. Đối với Secret type, hãy Other type of secret.
  2. Chọn Plaintext tab
  3. Thay thế nội dung mặc định của hộp bằng cấu trúc JSON sau:
  1. Mã hóa Key, hãy chọn key do khách hàng quản lý mà bạn đã tạo đáp ứng các yêu cầu được liệt kê trong phần Điều kiện tiên quyết trước đó.
  2. Đối với Resource permissions, hãy làm như sau:

Mở rộng Resource permissions.

Chọn Edit permissions.

Thay thế nội dung mặc định của hộp chính sách bằng cấu trúc JSON sau:

Chọn Save.

Trên trang Review, hãy xem lại các chi tiết secrets của bạn, sau đó chọn Store.

Secrets Manager quay lại danh sách các secrets. Nếu secrets mới của bạn không xuất hiện, hãy chọn nút refresh. Secrets này sẽ được sử dụng trong quá trình thiết lập Response Plan.

Tạo một Incident Manager Response Plan

Một kế hoạch phản hồi liên kết các contacts, escalation plan, và runbook với nhau. Khi một sự cố xảy ra, một Response Plan sẽ xác định ai sẽ tham gia, cách thức tham gia, bắt đầu danh sách chạy nào và chỉ số nào cần theo dõi. Bằng cách tạo một Response Plan được xác định rõ ràng, bạn có thể tiết kiệm thời gian cho nhóm bảo mật của mình.

Tạo một Response Plan

Khi bạn đã tạo API Key, Secret và contacts của mình, bạn có thể tạo Response Plan để xác định cách ứng phó với sự cố và định cấu hình tích hợp PagerDuty. Tham khảo Best Practices for Response Plans.

Lưu ý: (Tùy chọn) Bạn cũng có thể tạo thêm các liên hệ và kế hoạch báo cáo cho phép bạn xác định thêm và tự động cảnh báo các chuyên gia về chủ đề liền kề và các kế hoạch báo cáo cho các liên hệ của bạn. Bạn có thể tìm hiểu thêm trong Add ContactsCreate an escalation plan.

Để tạo một Response Plan

  1. Mở Incident Manager console và chọn Response plans trong ngăn điều hướng bên trái.
  2. Chọn Create response plan.
  3. Nhập một tên duy nhất và có thể nhận dạng cho kế hoạch phản hồi của bạn.
  4. Nhập tiêu đề sự cố. Tiêu đề sự cố giúp xác định sự cố trên trang chủ sự cố.
  5. Chọn một appropriate Impact dựa trên phạm vi tiềm ẩn của sự cố.
  6. Chọn hộp tích hợp Bên thứ ba với PagerDuty
    1. Lưu ý: Tên dịch vụ tích hợp PagerDuty sẽ tự động điền trong Hình 7

Hình 5: Response Plan

Hình 6. Chọn mức độ tác động của bạn

Hình 7: Lựa chọn Tích hợp dịch vụ PagerDuty và AWS Secret

  1. (Tùy chọn) Bạn cũng có thể tạo runbook có thể thúc đẩy giảm thiểu và ứng phó sự cố. Để biết thêm thông tin, hãy tham khảo Runbooks và tự động hóa.
  2. Trong Execution permissions, hãy chọn Create an IAM role using a template. Trong Role name, hãy chọn vai trò IAM mà bạn đã tạo trong các điều kiện tiên quyết cho phép Incident Manager chạy tài liệu tự động hóa SSM, sau đó chọn Create response plan.

Start Incident

Response Plan của Incident Manager có thể được gọi ngay lập tức và kế hoạch tương tác với các liên hệ của bạn sẽ bắt đầu thông báo cho PagerDuty. PagerDuty sẽ tận dụng các thư mục người dùng hiện có, luồng báo cáo và cảnh báo để thông báo cho các nhóm trực.

Start Incident

  1. Chọn Start Incident trong bảng điều khiển Incident Manager
  2. Chỉ định Response Plan
  3. (Tùy chọn) Ghi đè Tiêu đề để mô tả sự cố dễ dàng hơn
  4. (Tùy chọn) Ghi đè tác động của Sự cố
  5. Chọn Start (bắt đầu)
  6. (Tùy chọn) Mở Incident (Sự cố) và chọn tab “Related items (Các mục có liên quan)” để hỗ trợ nhóm phản hồi với các hiện vật bổ sung liên quan đến sự cố

Hình 8. Incident Manager đưa ra cảnh báo cho PagerDuty

Xác minh Cảnh báo và Thông báo trong PagerDuty bằng cách đăng nhập vào PagerDuty Console. Nhóm PagerDuty trong cuộc gọi sẽ được thông báo bằng các chính sách hiện có. Incident Manager cũng xuất bản các sự kiện dòng thời gian dưới dạng ghi chú cho sự cố trong PagerDuty và cho phép bạn giải quyết các sự cố PagerDuty khi bạn giải quyết sự cố liên quan trong Incident Manager.

Hình 9. Xác minh các cảnh báo bên trong PagerDuty Console

Hình 10. Lịch sử dòng thời gian trong PagerDuty

Khi sự cố tiến triển thông qua quá trình phân tích và giải quyết, tab mục liên quan có thể được sử dụng để tự động cảnh báo cho nhóm đang trực PagerDuty về các thành phần lạ liền kề, chẳng hạn như JIRA ticket hoặc log file bằng cách cung cấp URL, ARN hoặc liên kết đến đối tượng S3. Sau đó, các mục liên quan được hiển thị tự động dưới dạng “Notes” bên trong bảng điều khiển PagerDuty, hợp lý hóa hơn nữa hoạt động liên lạc

Hình 11. Tự động chia sẻ Related Items với PagerDuty

Giải quyết sự cố

Phân tích sau sự cố hướng dẫn bạn thông qua việc xác định các cải tiến đối với phản ứng sự cố của bạn, bao gồm cả thời gian để phát hiện và giảm thiểu. Một phân tích cũng có thể giúp bạn hiểu nguyên nhân gốc rễ của các sự cố. Incident Manager tạo các mục hành động được đề xuất để cải thiện phản ứng sự cố của bạn.

Tiến hành phân tích sau sự cố

  1. Chọn Incident Manager
  2. Chọn Incident cần giải quyết
  3. Chọn Resolve Incident (Giải quyết sự cố)
  4. Chọn Create Analysis (Tạo phân tích)

Hình 12. Giải quyết sự cố

Hình 13. Sự cố đã được giải quyết

Sau khi sự cố kết thúc, bạn có thể xác minh trong PagerDuty rằng sự cố đã được xác nhận và giải quyết. Điều này cho phép PagerDuty tập trung hóa và theo dõi hiệu suất SLA trên toàn doanh nghiệp giữa các nhóm theo yêu cầu khác nhau.

  1. Thảo luận về sự cố với nhóm bị ảnh hưởng bằng cách điền thông tin tổng quan, dòng thời gian, số liệu, câu hỏi và mục hành động trước khi hoàn thành phân tích.

Hình 14. Tạo bản phân tích hậu sự cố

  1. Chọn Complete để lưu bản ghi về sự cố nhằm cải tiến liên tục chia sẻ các bài học trong tổ chức của bạn.

Để tránh phát sinh phí trong tương lai, hãy xóa tài nguyên. Chi phí thực hiện các bước này tùy theo mức sử dụng của tất cả các dịch vụ được đề cập, hãy tham khảo chi phí của Incident Manager.

Kết luận

Trong bài viết này, tôi sẽ hướng dẫn bạn về cách sử dụng AWS Systems Manager Incident Manager để lưu trữ các kế hoạch ứng phụ khi sự cố xảy ra, cấu hình PagerDuty và thực hiện phân tích sau sự cố. Tôi sẽ giới thiệu cách bạn có thể tạo kế hoạch ứng phụ và quản lý sự cố để đảm bảo rằng bạn đang sử dụng đầy đủ các tính năng của cloud để tạo ra hệ thống tự động hóa và giảm thiểu sự cố một cách kịp thời. Để biết thêm chi tiết về AWS Systems Manager Incident Manager, vui lòng xem tài liệu “What is AWS Systems Manager Incident Manager” của AWS.

Bài được dịch từ bài viết trên AWS Blogs, bạn có thể xem bài viết gốc tại đây.