Cung cấp thong tin chi tiết về hoạt động cho Atlassian Opsgenie bằng cách sử dụng DevOps Guru của Amazon

Khi các tổ chức tiếp tục mở rộng và mở rộng ứng dụng của họ, nhu cầu cho các nhóm có khả năng phát hiện các hành vi vận hành bất thường một cách nhanh chóng và tự động trở nên ngày càng quan trọng. Amazon DevOps Guru cung cấp dịch vụ AIOps được quản lý hoàn toàn giúp bạn cải thiện tính sẵn có của ứng dụng và giải quyết các vấn đề vận hành một cách nhanh chóng. DevOps Guru giúp đơn giản hóa quá trình này bằng cách tận dụng các đề xuất được cung cấp bởi máy học (ML) để phát hiện các hiểu biết vận hành, xác định việc tiêu thụ tài nguyên và đề xuất cách khắc phục các vấn đề. Nhiều tổ chức chạy các ứng dụng quan trọng cho kinh doanh sử dụng các công cụ khác nhau để được thông báo về các sự kiện bất thường trong thời gian thực để khắc phục các vấn đề quan trọng. Atlassian là một bộ phần mềm hiện đại về hợp tác và năng suất nhóm giúp các nhóm tổ chức, thảo luận và hoàn thành công việc chung. Bạn có thể gửi những hiểu biết này gần như trong thời gian thực cho các nhóm DevOps bằng cách tích hợp DevOps Guru với Atlassian Opsgenie. Opsgenie là một nền tảng quản lý sự cố hiện đại nhận thông báo từ hệ thống giám sát và các ứng dụng tùy chỉnh của bạn và phân loại mỗi thông báo dựa trên mức quan trọng và thời gian.

Bài đăng trên blog này sẽ hướng dẫn bạn cách tích hợp Amazon DevOps Guru với Atlassian Opsgenie để nhận thông báo về các hiểu biết vận hành mới được phát hiện bởi DevOps Guru một cách linh hoạt hơn và tùy chỉnh hơn bằng cách sử dụng Amazon EventBridge và AWS Lambda. Hàm Lambda sẽ được sử dụng để minh họa cách tùy chỉnh các hiểu biết được gửi đến Opsgenie.

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

Hình 1: Tích hợp Amazon EventBridge với Opsgenie bằng cách sử dụng AWS Lambda

Amazon DevOps Guru tích hợp trực tiếp với Amazon EventBridge để thông báo cho bạn về các sự kiện liên quan đến các hiểu biết được tạo ra và cập nhật các hiểu biết. Để bắt đầu định tuyến các thông báo này đến Opsgenie, bạn có thể cấu hình các quy tắc định tuyến để xác định nơi gửi thông báo. Như được mô tả dưới đây, bạn cũng có thể sử dụng các mẫu DevOps Guru được xác định trước để chỉ gửi thông báo hoặc kích hoạt các hành động phù hợp với mẫu đó. Bạn có thể chọn bất kỳ mẫu trước định nào sau đây để lọc các sự kiện để kích hoạt hành động trong một tài nguyên AWS được hỗ trợ. Dưới đây là các mẫu trước định được hỗ trợ bởi DevOps Guru:

  • DevOps Guru New Insight Open
  • DevOps Guru New Anomaly Association
  • DevOps Guru Insight Severity Upgraded
  • DevOps Guru New Recommendation Created
  • DevOps Guru Insight Closed

Mặc định, các mẫu được tham khảo ở trên đã được kích hoạt, vì vậy chúng tôi sẽ giữ nguyên tất cả các mẫu trong việc triển khai này. Tuy nhiên, bạn có tính linh hoạt để thay đổi xem bạn chọn mẫu nào để gửi đến Opsgenie. Khi EventBridge nhận một sự kiện, quy tắc EventBridge sẽ so khớp với sự kiện đang nhập và gửi nó đến một mục tiêu, chẳng hạn như AWS Lambda, để xử lý và gửi hiểu biết đến Opsgenie.


Yêu cầu tiên quyết

Các yêu cầu tiên quyết sau đây được yêu cầu cho bước hướng dẫn này:

  • Một Tài khoản AWS
  • Một Tài khoản Opsgenie
  • Maven
  • Giao diện dòng lệnh AWS Command Line Interface (CLI)
  • Giao diện dòng lệnh AWS Serverless Application Model (SAM) CLI
  • Tạo một nhóm và thêm thành viên trong Tài khoản Opsgenie của bạn
  • AWS Cloud9 được khuyến nghị để tạo một môi trường để truy cập vào AWS Serverless Application Model (SAM) CLI hoặc AWS Command Line Interface (CLI) từ một terminal bash.

Push Insights using Amazon EventBridge & AWS Lambda

Trong bài hướng dẫn này, bạn sẽ thực hiện các bước sau:

  1. Tạo một tích hợp Opsgenie
  2. Khởi chạy mẫu SAM để triển khai giải pháp
  3. Kiểm tra giải pháp

Tạo một tích hợp Opsgenie

Trong bước này, bạn sẽ di chuyển đến Opsgenie để tạo tích hợp với DevOps Guru và để lấy khóa API và tên nhóm trong tài khoản của bạn. Các tham số này sẽ được sử dụng như đầu vào trong phần sau của bài viết này.

  1. Di chuyển đến Teams (Nhóm), và ghi chú tên nhóm mà bạn có như được hiển thị dưới đây, vì bạn sẽ cần tham số này trong phần sau.

Hình 2: Tên nhóm Opsgenie

  1. Nhấp vào nhóm để tiếp tục và di chuyển đến Integrations (Tích hợp) ở phần cạnh trái. Nhấp vào Thêm tích hợp (Add Integration) và chọn tùy chọn Amazon DevOps Guru.

Hình 3: Tùy chọn tích hợp cho DevOps Guru

  1. Bây giờ, cuộn xuống và ghi chú Khóa API cho tích hợp này và sao chép nó vào ghi chú của bạn vì nó sẽ cần thiết trong phần sau. Nhấp vào Lưu tích hợp (Save Integration) ở cuối trang để tiếp tục.

­­­

Hình 4: Khóa API cho Tích hợp DevOps Guru

  1. Bây giờ, tích hợp Opsgenie đã được tạo và chúng ta đã lấy được khóa API và tên nhóm. Email của bất kỳ thành viên nhóm nào cũng sẽ được sử dụng trong phần tiếp theo.

Xem xét và triển khai mẫu AWS SAM để triển khai giải pháp

Trong bước này, bạn sẽ xem xét và triển khai mẫu AWS SAM. Mẫu sẽ triển khai một hàm AWS Lambda được kích hoạt bởi một quy tắc Amazon EventBridge khi Amazon DevOps Guru tạo ra một sự kiện mới. Hàm Lambda sẽ truy xuất các tham số đã được lấy từ quá trình triển khai và đẩy các sự kiện đến Opsgenie qua một API.

Xem xét mẫu

Dưới đây là mẫu SAM sẽ được triển khai trong bước tiếp theo. Mẫu này khởi chạy một số thành phần quan trọng được xác định trước trong bài viết. Phần Biến đổi (Transform) của mẫu cho phép chúng tôi lấy toàn bộ mẫu được viết bằng cú pháp Mô hình Ứng dụng Không máy chủ (AWS SAM) và biến đổi và mở rộng nó thành một mẫu CloudFormation tuân thủ. Trong phần Tài nguyên (Resources), giải pháp này sẽ triển khai một hàm AWS Lambda sử dụng runtime Java cũng như một Quy tắc/Mẫu Amazon EventBridge. Một khía cạnh quan trọng khác của mẫu là Các Tham số (Parameters). Như được hiển thị dưới đây, ApiKey, Email và TeamName là các tham số chúng tôi sẽ sử dụng cho mẫu CloudFormation này, sau đó chúng sẽ được sử dụng làm biến môi trường cho hàm Lambda của chúng tôi để truyền cho OpsGenie.

Hình 5: Xem xét Mẫu SAM

Triển khai Mẫu

  1. Di chuyển đến thư mục mong muốn trong cửa sổ dòng lệnh và sao chép kho lưu trữ GitHub bằng lệnh sau:

“`

git clone https://github.com/aws-samples/amazon-devops-guru-connector-opsgenie.git

“`

  1. Thay đổi thư mục bằng lệnh dưới đây để di chuyển đến thư mục chứa Mẫu SAM.

“`

cd amazon-devops-guru-connector-opsgenie/OpsGenieServerlessTemplate

“`

  1. Từ dòng lệnh, sử dụng AWS SAM để xây dựng và xử lý tệp mẫu AWS SAM của bạn, mã ứng dụng và bất kỳ tệp và phụ thuộc cụ thể của ngôn ngữ nào (nếu có).

“`

sam build

“`

  1. Từ dòng lệnh, sử dụng AWS SAM để triển khai tài nguyên AWS cho mẫu theo đúng như được chỉ định trong tệp template.yml.

“`

sam deploy –guided

“`

  1. Bây giờ, bạn sẽ được nhắc nhập thông tin sau đây. Sử dụng thông tin lấy từ phần trước để nhập vào các trường Parameter ApiKey, Parameter Email và Parameter TeamName.
  • Tên Stack
  • Khu vực AWS
  • Tham số ApiKey
  • Tham số Email
  • Tham số TeamName
  • Cho phép Tạo Vai trò IAM SAM CLI

Kiểm tra giải pháp

  1. Theo dõi blog này để kích hoạt DevOps Guru và tạo ra một hiểu biết vận hành.
  2. Khi DevOps Guru phát hiện một hiểu biết mới, nó sẽ tạo sự kiện trong EventBridge. Sau đó, EventBridge kích hoạt Lambda và gửi sự kiện đến Opsgenie như được hiển thị dưới đây.

.

Hình 6: Sự kiện Được Xuất bản đến Opsgenie với các chi tiết như nguồn, loại cảnh báo, loại hiểu biết và một liên kết đến hiểu biết trong bảng điều khiển AWS.

Dọn dẹp

Để tránh phát sinh các khoản phí trong tương lai, hãy xóa các tài nguyên.

  1. Xóa tài nguyên được triển khai từ blog này.
  2. Từ dòng lệnh, sử dụng AWS SAM để xóa ứng dụng không máy chủ cùng với các phụ thuộc của nó.

“`

sam delete

“`

Tùy chỉnh Hiểu biết được xuất bản bằng cách sử dụng Amazon EventBridge & AWS Lambda

Nền tảng của tích hợp DevOps Guru và Opsgenie dựa trên Amazon EventBridge và AWS Lambda, cho phép bạn linh hoạt thực hiện nhiều tùy chỉnh. Một ví dụ về điều này là khả năng tạo thông báo Opsgenie khi mức độ hiểu biết DevOps Guru là cao. Một ví dụ khác là khả năng chuyển tiếp các thông báo phù hợp đến nhóm AIOps khi có vấn đề liên quan đến tài nguyên không máy chủ hoặc chuyển tiếp vấn đề liên quan đến tài nguyên cơ sở dữ liệu đến nhóm DBA của bạn. Phần này sẽ hướng dẫn bạn cách thực hiện các tùy chỉnh này.

Tùy chỉnh EventBridge

Quy tắc EventBridge có thể được sử dụng để chọn sự kiện cụ thể bằng cách sử dụng các mẫu sự kiện. Như được chi tiết dưới đây, bạn có thể kích hoạt hàm Lambda chỉ khi một hiểu biết mới được mở và mức độ nghiêm trọng là cao. Ưu điểm của loại tùy chỉnh này là hàm Lambda chỉ được gọi khi cần thiết.

“`

{

  “source”: [

    “aws.devops-guru”

  ],

  “detail-type”: [

    “DevOps Guru New Insight Open”

  ],

  “detail”: {

    “insightSeverity”: [

         “high”

         ]

  }

}

“`

Áp dụng tùy chỉnh EventBridge

  1. Mở tệp template.yaml được xem xét trong phần trước và thực hiện các thay đổi như được làm nổi bật dưới đây trong phần Sự kiện (Events) trong tài nguyên (tệp gốc ở bên trái, các thay đổi ở bên phải).

Hình 7: Tệp mẫu CloudFormation đã thay đổi để quy tắc EventBridge chỉ được kích hoạt khi loại cảnh báo là “DevOps Guru New Insight Open” và mức độ hiểu biết là “cao”.

  1. Lưu các thay đổi và sử dụng lệnh sau để áp dụng các thay đổi

“`

sam deploy –template-file template.yaml

“`

  1. Chấp nhận việc triển khai các thay đổi.

Xác định Nhóm Ops dựa trên loại tài nguyên

Một tùy chỉnh khác sẽ là thay đổi mã Lambda để định tuyến và điều khiển cách cảnh báo sẽ được quản lý. Giả sử bạn muốn liên quan đến nhóm DBA mỗi khi DevOps Guru đưa ra một hiểu biết liên quan đến tài nguyên Amazon RDS. Bạn có thể thay đổi lớp Java AlertType như sau:

  1. Để bắt đầu tùy chỉnh này về mã Lambda, cần phải thực hiện các thay đổi sau trong tệp AlertType.java:
  • Ở đầu tệp, đã nhập các gói tiêu chuẩn java.util.List và java.util.ArrayList
  • Dòng 60: tạo danh sách các không gian tên CloudWatch metrics
  • Dòng 74: Gán dataIdentifiers JsonNode cho biến dataIdentifiersNode
  • Dòng 75: Gán namespace JsonNode cho biến namespaceNode
  • Dòng 77: Thêm namespace vào danh sách cho mỗi Hiểu biết DevOps luôn được đưa ra như một sự kiện EventBridge với cấu trúc detail►anomalies►0►sourceDetails►0►dataIdentifiers►namespace
  • Dòng 88: Gán nhóm phản hồi mặc định cho biến defaultResponderTeam
  • Dòng 89: Tạo danh sách các người phản hồi và gán nó cho biến respondersTeam
  • Dòng 92: Kiểm tra xem có ít nhất một không gian tên AWS/RDS
  • Dòng 93: Gán DBAOps_Team cho biến dbaopsTeam
  • Dòng 93: Bao gồm nhóm DBAOps_Team là một phần của danh sách người phản hồi
  • Dòng 97: Đặt các nhóm yêu cầu OpsGenie để là danh sách người phản hồi

Hình 8: Đã nhập các gói java.util.List và java.util.ArrayList

Hình 9: Lớp Java AlertType tùy chỉnh để bao gồm DBAOps_Team cho các hiểu biết DevOps Guru liên quan đến RDS.

  1. Sau đó, bạn cần tạo tệp jar bằng cách sử dụng lệnh mvn clean package.
  • Hàm cần được cập nhật với:
    • FUNCTION_NAME=$(aws lambda

list-functions –query ‘Functions[?contains(FunctionName, `DevOps-Guru`) ==

`true`].FunctionName’ –output text)

  • aws lambda update-function-code –region

us-east-1 –function-name $FUNCTION_NAME –zip-file fileb://target/Functions-1.0.jar

  1. Kết quả, DBAOps_Team sẽ được gán vào cảnh báo Opsgenie trong trường hợp một Hiểu biết DevOps Guru liên quan đến RDS.

Hình 10: Cảnh báo Opsgenie được gán cho cả DBAOps_Team và AIOps_Team.

Kết luận

Trong bài viết này, bạn đã biết cách Amazon DevOps Guru tích hợp với Amazon EventBridge và xuất bản hiểu biết đến Opsgenie bằng cách sử dụng AWS Lambda. Bằng cách tạo tích hợp Opsgenie với DevOps Guru, bạn có thể tận dụng các ưu điểm của Opsgenie, quản lý sự cố, giao tiếp và cộng tác trong nhóm khi phản ứng với một hiểu biết. Tất cả dữ liệu hiểu biết có thể được xem và xử lý trong Trung tâm Lệnh Sự cố (ICC) của Opsgenie. Bằng cách tùy chỉnh dữ liệu được gửi đến Opsgenie qua Lambda, bạn có thể tăng cường tổ chức của mình hơn nữa bằng cách điều chỉnh và hiển thị dữ liệu phù hợp nhất, từ đó giảm thiểu MTTR (thời gian trung bình để giải quyết) của nhóm phản ứng thực hiện.

Xem bài viết gốc tại: https://aws.amazon.com/vi/blogs/devops/deliver-operational-insights-to-atlassian-opsgenie-using-devops-guru/

Leave a comment