Cấu hình CloudWatch để giám sát dung lượng RAM trên EC2 Linux (Ubuntu)

Bạn cần giám sát dung lượng RAM trên Amazon EC2 Linux và tận dụng những gì sẵn có của AWS. Bài viết này sẽ hướng dẫn bạn cách để cấu hình CloudWatch để giám sát dung lượng RAM trên Amazon EC2 Linux (Ubuntu). #

CloudWatch là gì? #

CloudWatch là một dịch vụ giám sát các nguồn tài nguyên cloud và ứng dụng chạy trên AWS (Amazon Web Services). Bạn có thể sử dụng dịch vụ này để thu thập và theo dõi các số liệu thống kê, giám sát log file, và cài đặt cảnh báo (ví dụ RAM của server đang sử dụng vượt quá ngưỡng 90% thì sẽ thông báo đến 1 email cụ thể nào đó, để người quản trị kịp thời xử lý), giúp người dùng có thể tối ưu hóa hiệu suất ứng dụng, quản lý việc sử dụng tài nguyên và hiểu rõ tình trạng hoạt động của toàn hệ thống. CloudWatch hỗ trợ giám sát Amazon EC2 instance, Amazon DynamoDB table, và Amazon RDS DB instance.

Cấu hình CloudWatch để giám sát RAM của EC2 Linux (Ubuntu) #

Danh sách các dòng EC2 hỗ trợ:

  • Amazon Linux 2
  • Amazon Linux AMI 2014.09.2 +
  • Red Hat Enterprise Linux 6.9 và 7.4
  • SUSE Linux Enterprise Server 12
  • Ubuntu Server 14.04 và 16.04

Danh sách các IAM role mà instance cần được gán:

  • cloudwatch:PutMetricData
  • cloudwatch:GetMetricStatistics
  • cloudwatch:ListMetrics
  • ec2:DescribeTags

Cài đặt script giám sát dung lượng RAM trên EC2 Linux (Ubuntu) #

1. Tạo IAM Role

Để script giám sát có thể gửi dữ liệu của server về cho CloudWatch, người dùng cần tạo IAM role để gửi metric từ EC2 instance đến CloudWatch. Các bước chuẩn bị như sau:

1.1. Truy cập service IAM.

1.2. Chọn “Roles”.

giám sát dung lượng RAM trên EC2

1.3. Chọn “Create Role”.

1.4. Chọn “EC2” ở mục “Choose a use case”, sau đó nhấn “Next: Permission”.

giám sát dung lượng RAM trên EC2

1.5. Chọn policy “CloudWatchAgentServerPolicy”, sau đó nhấn “Next: Tag”.

giám sát dung lượng RAM trên EC2

1.6. Gán giá trị tag cho Policy (nếu muốn), sau đó nhấn “Next: Review”.

giám sát dung lượng RAM trên EC2

1.7. Gán tên cho role ở mục “Role name”, sau đó nhấn “Create role” để hoàn tất quá trình tạo role.

giám sát dung lượng RAM trên EC2

1.8. Truy cập EC2 Dashboard.

1.9. Chọn EC2 sẽ gán IAM role, sau đó nhấn “Action / Instance settings / Modify IAM role”.

giám sát dung lượng RAM trên EC2

1.10. Chọn IAM role đã tạo ở trên, sau đó nhấn “Save”.

giám sát dung lượng RAM trên EC2

2. Cài đặt các package cần thiết 

Đối với một số phiên bản Linux, người dùng cần phải cài đặt thêm một số package Perl để có thể sử dụng script giám sát của CloudWatch.

sudo apt-get update
sudo apt-get install -y unzip libwww-perl libdatetime-perl

3. Cài đặt script giám sát lên EC2

3.1. Tải script giám sát của AWS CloudWatch

curl https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O

3.2. Giải nén tập tin đã tải về

unzip CloudWatchMonitoringScripts-1.2.2.zip && \
rm CloudWatchMonitoringScripts-1.2.2.zip && \
cd aws-scripts-mon

Bên trong thư mục aws-scripts-mon sẽ bao gồm các file:

Tên file Chức năng
CloudWatchClient.pm Module Shared Perl giúp đơn giản hóa việc gọi Amazon CloudWatch từ các script khác.
mon-put-instance-data.pl Thu thập các metric trên Amazon EC2 instance (RAM, swap, disk space utilization) và gửi đến CloudWatch.
mon-get-instance-stats.pl Truy vấn thông tin đã gửi đến CloudWatch và hiển thị thông tin đã thu thập được từ EC2 instance.
awscreds.template Template mẫu để điền thông tin AWS Access key.
LICENSE.txt License Apache 2.0.
NOTICE.txt Thông tin bản quyền.

3.3. Kiểm tra kết nối đến CloudWatch

./mon-put-instance-data.pl --mem-util --verify --verbose

giám sát dung lượng RAM trên EC2

Nếu kết quả hiển thị “Verification completed successfully. No actual metrics sent to CloudWatch.” thì bạn đã thiết lập thành công. Nếu không thì bạn cần kiểm tra lại thông tin IAM role đã tạo đã bao gồm policy “CloudWatchAgentServerPolicy” hay chưa?

3.4. Thiết lập crontab để tự động gửi thông tin đến CloudWatch

3.4.1. Chọn các loại thông tin cần giám sát

Format để gửi thông tin đến CloudWatch sẽ bao gồm:

./mon-put-instance-data.pl <option1> <option2> <option3>

Các option liên quan đến RAM bao gồm:

Option Thông tin 
–mem-util Thu thập và gửi chỉ số RAM đã sử dụng theo tỷ lệ phần trăm. Chỉ số này là tổng phần trăm RAM mà các ứng dụng và hệ điều hành đã sử dụng, bao gồm cả cache và buffer nếu người dùng sử dụng option “–mem-used-incl-cache-buff“.
–mem-used Thu thập và gửi dung lượng RAM đã sử dụng theo đơn vị megabytes. Chỉ số này là tổng dung lượng RAM mà các ứng dụng và hệ điều hành đã sử dụng, bao gồm cả cache và buffer nếu người dùng sử dụng option “–mem-used-incl-cache-buff“.
–mem-avail
Thu thập và gửi dung lượng RAM chưa sử dụng theo đơn vị megabytes. Chỉ số này là tổng dung lượng RAM mà các ứng dụng và hệ điều hành chưa sử dụng đến, bao gồm cả cache và buffer nếu người dùng sử dụng option “–mem-used-incl-cache-buff“.
–mem-used-incl-cache-buff Dung lượng RAM sẽ được tính dựa trên dung lượng các ứng dụng + hệ điều hành + cache + buffer đã sử dụng.
–memory-units=UNITS Đơn vị tính dung lượng, bao gồm: bytes, kilobytes, megabytes, gigabytes. Mặc định sẽ là megabytes.

Ví dụ:

./mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --mem-used --mem-avail

3.4.2. Tạo cronjob để tự động gửi thông tin về CloudWatch

Ví dụ: Cần gửi các chỉ số về dung lượng RAM của EC2 mỗi 5 phút về CloudWatch, bao gồm các chỉ số như: dung lượng RAM đã sử dụng, phần trăm dung lượng RAM đã sử dụng và dung lượng RAM còn trống. Các thông tin này sẽ tính luôn cả cache và buffer.

crontab -l > crontabfile
echo"*/5 * * * * <đường dẫn đến thư mục chứa script>/aws-scripts-mon/mon-put-instance-data.pl \
--mem-used-incl-cache-buff --mem-util --mem-used --mem-avail" >> crontabfile
​crontab crontabfile
rm crontabfile

4. Tạo CloudWatch dashboard để hiển thị thông tin

4.1. Truy câp service CloudWatch trên AWS.

4.2. Chọn “Dashboards / Create dashboard” để tạo mới dashboard dùng để hiển thị thông tin RAM vừa thiết lập ở trên.

giám sát dung lượng RAM trên EC2

4.3. Đặt tên cho dashboard, sau đó nhấn “Create”.giám sát dung lượng RAM trên EC2

4.4. Chọn kiểu dashboard sẽ hiển thị, sau đó nhấn “Next”.

giám sát dung lượng RAM trên EC2

4.5. Chọn “Metrics”, sau đó nhấn “Configure”.

giám sát dung lượng RAM trên EC2

4.6. Điền “Memory” ở mục Filter.

giám sát dung lượng RAM trên EC2

4.7. Chọn “Linux System > InstanceId”.

4.8. Tích chọn các EC2 instance chứa thông tin bạn cần giám sát. Sau đó nhấn “Create widget”.

giám sát dung lượng RAM trên EC2

4.9. Chọn “Save dashboard” để cấu hình dashboard vừa tạo.

Thông tin trên dashboard sẽ được tự động cập nhật sau mỗi 5 phút khi EC2 instance cập nhật thông tin.

giám sát dung lượng RAM trên EC2

Lưu ý: 1 dashboard có thể bao gồm nhiều “widget” hiển thị thông tin, bạn có thể tạo thêm các “widget” để phân chia thông tin hiển thị của các EC2 theo từng phần khác nhau.

giám sát dung lượng RAM trên EC2

 

Chúc bạn thành công!

Nguồn tham khảo:

  1. AWS
  2. Techblog

Trung tâm đào tạo Viễn thông và Công nghệ thông tin TEL4VN (TEL4VN) chuyên đào tạo các khóa học về DevOps như: Docker, Kubernetes, Ansible, Jenkins, Linux…….Ngoài ra, TEL4VN còn là Trung tâm đào tạo duy nhất về VoIP mã nguồn mở.

🌐Website: https://tel4vn.edu.vn/
🔗 Fanpage: https://www.facebook.com/tel4vn

🔗 Youtube: TEL4VN

🏠Địa chỉ: 82/2/9 Đinh Bộ Lĩnh, P.26, Q.Bình Thạnh, TP.HCM
☎️SĐT: 028 3622 0868
📩 Email: tuyensinh@tel4vn.com

Powered by BetterDocs

Để lại bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *