Amazon CloudWatch - 1 cái nhìn tổng thể về công cụ giám sát của Amazon
Bài đăng này đã không được cập nhật trong 4 năm
Trong thời kì công nghệ phát triển như hiện tại, càng ngày càng nhiều công ty, tổ chức đã và đang chuyển dịch hệ thống kinh doanh, quản lý của họ lên các nền tảng điện toán đám mây. Mặc dù điều này hết sức bình thưởng tuy nhiên lại đưa ra một vấn đề khá phức tạp cho bộ phận IT chịu trách nhiệm cung cấp các dịch vụ đám mây một cách hiệu quả nhất có thể vì kinh doanh của công ty tổ chức có thể bị ảnh hưởng lớn nếu các dịch vụ này gặp vấn đề hoặc không hiệu quả. Vậy làm thế nào để họ có thể đảm bảo cho những vấn đề này không xảy đến với những dịch vụ này? Câu trả lời đơn giản là: Amazon CloudWatch
In this blog, we will be discussing one such versatile monitoring tool called Amazon CloudWatch. The topics which I will be covering in this blog are as follows:
Trong bài viết này, chúng ta sẽ bàn về một công cụ theo dõi siêu đa dạng mang tên Amazon CloudWatch. Các topic mình sẽ đề cập tới sẽ được liệt kê ở menu phụ lục bên phải, bạn có thể click vào từng tiêu đề để đi đến topic mong muốn.
Mình sẽ sử dụng tiếng anh để gọi một số cụm từ chuyên ngành để các bạn ko bị hiểu nhầm và dễ research qua Google hơn (bow)
Vì sao chúng ta lại cần sử dụng công cụ Cloud monitoring
Cloud monitoring bao gồm monitor website và các ứng dụng cloud, infrastructure, network, nền tảng, ứng dụng cũng như là micro-service. Việc theo dõi này đóng vai trò thiết yếu trong việc đảm bảo tất cả các dịch vụ bạn đang sử dụng trên cloud đều chạy mượt mà và hiệu quả.
Để ví dụ về lý do vì sao chúng ta cần sử dụng Cloud monitoring, sau đấy mình sẽ đứa ra hai trường hợp:
Trường hợp 1: Team của bạn có phát triển và deploy một website lên Cloud và bạn có một số câu hỏi như sau:
- Băng thông trung bình một ngày mà hệ thống sử dụng là bao nhiều?
- Tình trạng traffic của website như thế nào?
- Hiệu suất của website trên cloud có ổn không?
- Người dùng có hài lòng với website không hay bạn có phải cải thiện điều gì không?
Tuy nhiên bạn sẽ không có câu trả lời nào cho những câu hỏi trên vì bạn không hề sử dụng một công cụ monitor nào hết. Do đó bạn chẳng biết là website của mình cần cải thiện cái gì, dẫn đến lượng sale và doanh thu của website bị giảm nhanh.
Trường hợp 2: Vẫn là website ấy, vẫn là những câu hỏi ấy. Tuy nhiên bạn đã sử dụng 1 công cụ monitor để theo dõi sức khoẻ của website.
Do đó bạn có thể biết được website đó chạy như thế nào trên Cloud. Bây giờ thì bạn đã dễ dàng để tìm ra những vấn đề , những nghẽn cổ chai của hệ thống, tăng được uptime và hiệu suất của hệ thống. Điều này ủng hộ người dùng gắn bó với website của bạn.
Chỉ thêm bước monitor hệ thống thôi đã có thể giúp website phát triển hơn, dẫn đến kinh doanh của bạn phát triển.
Trong khi chúng ta hoàn toàn có thể tự xây dựng một công cụ monitor xịn xò cho môi trường AWS của chúng ta, tuy nhiên việc hệ thống lớn dần cũng mang lại nhiều khó khăn cho công cụ monitor thủ công của chúng ta. Chính vì vậy nên Amazon đã cung cấp một công cụ monitor đa dạng mang tên Amazon CloudWatch, nó giúp chúng ta có thể theo dõi AWS Infrastructure một cách đầy đủ và chi tiết nhất có thể. Vậy Amazon CloudWatch là gì?
Amazon CloudWatch là gì?
Amazon CloudWatch là một phần của Amazon Web Services cung cấp việc theo dõi real-time các tài nguyên của AWS cũng như các ứng dụng của khách hàng chạy trên cơ cở hạ tầng của Amazon.
Biểu đồ phiá dưới biểu thị các tài nguyên của AWS được Amazon CloudWatch monitor như thế nào:
Amazon CloudWatch giúp người quản trị có thể đễ dàng monitor nhiều instance và tài nguyên khác nhau chỉ với một console bằng cách thực hiện những công việc sau:
- Theo dõi tài nguyên:
- Các instance được host trên Amazon EC2
- Các database nằm ở Amazon RDS
- Dữ liệu lưu trong Amazon S3
- Elastic Load Balancer (ELB)
- Auto-Scaling Groups
- Các tài nguyên khác
- Theo dõi, lưu trữ và cung cấp khả năng truy xuất vào các file logs của hệ thống và ứng dụng.
- Cung cấp các báo cáo để phân tích trend và hiệu suất của hệ thống.
- Cung cấp công cụ thông báo/ cảnh báo khi có thay đổi hay lỗi của trong các tài nguyên của AWS.
- Thu thập và cung cấp biểu đồ dữ liệu real-time của những metric chính như tài nguyên CPU, RAM, Ổ cứng, ...
Cách Amazon CloudWatch hoạt động
Trước khi tìm hiểu cách thức Amazon CloudWatch hoạt động thì chúng ta cần hiểu một chút về các khái niêm cơ bản của Amazon CloudWatch sau:
Metric
Metric là một khái niệm cơ bản trong CloudWatch. Một metric biểu thị một tập hợp các data point được sắp xếp theo thời gian được cung cấp cho CloudWatch. Một metric có thể hiểu như một biến để theo dõi và các data point đại diện cho giá trị của biến đó theo thời gian. Ví dụ: CPU usage của một instance EC2 chính là một metric do Amazon EC2 cung cấp. Các data point có thể đến từ bất kỳ ứng dụng hoặc hoạt động nào mà bạn thu thập dữ liệu.
Dimension
- Một Dimension là một cặp key/value xác định tính độc nhất của một metric. Chúng dùng để miêu tả đặc điểm và tính chất của một metric/
- CloudWatch coi mỗi tập hợp dimension là một metric riêng biệt, ngay cả khi chúng có tên metric giống nhau.
VD:
Dimensions: Server=PRODUCTION, Domain=Admin, ...
Dimensions: Server=STAGING, Domain=Admin, ...
Dimensions: Server=PRODUCTION, Domain=User, ...
Dimensions: Server=STAGING, Domain=User, ...
Statistic
Statistic là dữ liệu của một metric được thu thập trong một khoảng thời gian cụ thể. CloudWatch cung cấp những thống kê này dựa trên nhưng data point của metric được cung cấp bởi các dịch vụ của AWS tới CloudWatch. Việc tổng hợp này phụ thuộc vào namespace, tên metric, dimension và đơn vị đo lường của data point trong khoảng thời gian mà bạn quy định. Đây là một số statistic bạn có thể dùng:
Statistic | Nội dung |
---|---|
Minimum | Giá trị thấp nhất trong khoảng thời gian đã chọn, bạn có thể dùng giá trị này để nắm được thời điểm hệ thống có mức hoạt động thấp |
Maximum | Giá trị cao nhất trong khoảng thời gian đã chọn, bạn có thể dùng giá trị này để nắm được thời điểm hệ thống có mức hoạt động cao |
Sum | Tổng các giá trị của metric trong thời gian đã chọn |
Average | Giá trị trung bình Sum / SampleCount trong khoảng thời gian đã chọn |
SampleCount | Tổng số data point được dùng trong việc thống kê |
pNN.NN | Giá trị của một phân vị cụ thể (VD p95.45) |
Alarm
- Một alarm có thể được dùng để tự động thực hiện những action thay bạn.
- Nó sẽ theo dõi một metric trong một khoảng thời gian nhất định và sẽ thực thi một hoặc nhiều action cụ thể.
- Action ở đây là gửi notification về Amazon SNS topic
Biểu đồ dưới đây miêu tả luồng hoạt động của CloudWatch:
Amazon CloudWatch có khả năng theo dõi các tài nguyên và ứng dụng AWS của bạn trên toàn hệ thống. Nó sẽ giám sát các tệp tài nguyên của bạn và tạo các key metric dựa trên log ứng dụng của bạn. Các key metric này bao gồm CPU usage, CPU latency, network traffic, disk storage, v.v. Dựa trên các metric này, CloudWatch cung cấp một bản tóm tắt thời gian thực về hoạt động của hệ thống và các tài nguyên riêng lẻ.
CloudWatch cũng cung cấp cái nhìn tổng quan về cơ sở hạ tầng AWS để theo dõi hiệu suất ứng dụng, giúp tìm ra xu hướng và khắc phục sự cố. Ngoài ra, Amazon CloudWatch có high-resolution alarm chứa đầy đủ thông tin và gửi thông báo theo thời gian thực trong trường hợp có thay đổi đột ngột trên môi trường AWS.
Bây giờ bạn đã quen thuộc với các khái niệm Amazon CloudWatch và hoạt động của nó, hãy xem cách để bạn có thể sử dụng Amazon CloudWatch để theo dõi instance Amazon EC2.
Use Case: Thiết lập cho Amazon CloudWatch gửi thông báo khi CPU Utilization của một instance thấp hơn 15%
Các bước thực hiện sẽ như sau:
Bước 1: Tạo metric cho CPU Utilization
- Vào màn hình quản lý Amazon CloudWatch và chọn Metrics ở thanh điều hướng.
- Ở trang Metrics, nhập "CPU Utilization" ở thanh tìm kiếm.
- Chọn instance bạn muốn tạo metric trong danh sách instance hiện có
Bước 2 : Tạo một alarm để thông báo khi metric CPU Utilization của instance đạt ngưỡng thấp hơn 15%
- Chọn option Graphed Metrics ở trang hiện tại, sau đó chọn khoảng thời gian bạn mong muốn. Sau đó click vào icon alarm nằm bên cạnh instance đã chọn.
- Config cho alarm ở modal Create Alarm. Đặt tên, mô tả và Threshold cho nó
- Chọn option New List nếu bạn muốn thêm email để AWS thông báo khi có alarm hoặc chọn Enter List và điền tên SNS topic. Thông báo này sẽ được gửi qua Amazon SNS Topic
- Click Create Alarm.
Chúc mừng nha, bạn đã tạo thành công Alarm mới để theo dõi instance của bạn. Bất cứ khi nào Metric này đạt ngưỡng dưới 15% thì CloudWatch sẽ gửi một email qua mail-id bạn đã quy định khi config alarm.
Sau đây chúng ta sẽ cùng nói tới 2 phần quan trọng của Amazon CloudWatch, đó là:
- Amazon CloudWatch Events
- Amazon CloudWatch Logs
Amazon CloudWatch Events
Amazon CloudWatch Events cho phép bạn tạo một bộ rules ứng với mỗi event nhất định. Sau đó, bạn có thể chuyển hướng các event này tới Lambda Function, SNS Topic, v.v. Bất cứ khi nào có thay đổi về hoạt động ở môi trường AWS, CloudWatch Events sẽ nắm bắt các thay đổi này và thực hiện các actions như gửi thông báo, kích hoạt các Lambda function, v.v.
Một số khái niệm liên quan đến CloudWatch Events:
Event:
Một event ứng với một thay đổi về hoạt động trong AWS. Các tài nguyên AWS sẽ tạo ra các event khi trạng thái (state) của chúng thay đổi. Amazon cho phép bạn tự tạo các event ở tầng Application và public chúng lên CloudWatch Events.
Rules
Rules về cơ bản là ràng buộc, chúng phân tích mọi event và đánh giá xem có xảy ra trường hợp không bình thường hay không. Nếu có thì event đó sẽ được chuyển hướng tới target để xử lý. 1 rule có thể định hướng đến nhiều target khác nhau và được xử lý song song với nhau.
Targets
Target là nơi xử lý các events, target có thể bao gồm Amazon EC2 instance, AWS Lambda function, Kinesis stream, Amazon ECS task, Amazon SNS topic, Amazon SQS queue, ... các target nhận event dưới dạng JSON.
Amazon CloudWatch Logs
Amazon CloudWatch Logs được dùng để giám sát, theo dõi, truy vấn và lưu log của tài nguyên AWS như Amazon EC2 instance, Amazon CloudTrail, Route53, ...
Sau đây là 1 vài khái niệm của Amazon CloudWatch Logs:
Log Events | Log Event là bản ghi log giám sát của ứng dụng hoặc tài nguyên |
---|---|
Log Streams | Một log stream là một chuỗi các bản ghi log đến chung từ một nguồn |
Log Groups | Một log group là một tập hợp các log streamcó chung config. Một stream bắt buộc phải thuộc 1 group nhất định |
Với Amazon CloudWatch, bạn có thể khắc phục các lỗi hệ thống của mình và tự động duy trì và lưu trữ các file log tương ứng. Bạn có thể cấu hình để Amazon gửi thông báo về cho bạn khi có lỗi xảy ra trong log . Sau đó, bạn có thể khắc phục các lỗi đó trong vài phút bằng cách điều tra log được lưu ở CloudWatch. Hơn nữa, bạn có thể sử dụng Amazon CloudWatch Log để:
- Lưu log trong bộ lưu trữ có độ bền cao.
- Theo dõi các log ứng dụng của bạn trong thời gian thực để biết các thông tin cụ thể.
- Log các query DNS mà Route 53 nhận được
- Điều chỉnh thời gian lưu log một ngày lên đến 10 năm.
Lợi ích của Amazon CloudWatch
- Amazon CloudWatch cho phép bạn truy cập tất cả dữ liệu của mình từ một nền tảng duy nhất. Nó hiện được tích hợp với hơn 70 dịch vụ AWS.
- Cung cấp thông tin chi tiết theo thời gian thực để bạn có thể tối ưu hóa chi phí vận hành và tài nguyên AWS.
- Cung cấp khả năng theo dõi sâu rộng trên các ứng dụng, cơ sở hạ tầng và dịch vụ AWS của bạn.
Trên đây là khái niệm, cách hoạt động, cách sử dụng và lợi ích của Amazon CloudWatch. Cảm ơn bạn đã đọc bài viết, hẹn gặp lại!
Nguồn:
All rights reserved