0
0
Lập trình
TT

Tự động cài đặt CloudWatch Agent trên EC2 với Terraform và SSM

Đăng vào 3 tuần trước

• 4 phút đọc

Tự động cài đặt CloudWatch Agent trên EC2 với Terraform và AWS SSM

Quản lý các agent giám sát trên các phiên bản EC2 có thể gặp nhiều khó khăn, nhưng AWS Systems Manager (SSM) giúp đơn giản hóa điều này bằng cách tự động hóa một cách mượt mà. Bài viết này sẽ hướng dẫn cách sử dụng Terraform để tự động triển khai CloudWatch Agent trên các phiên bản EC2 được gán thẻ cho việc giám sát, hỗ trợ cả cấu hình cho Linux và Windows.

Nội dung chính trong cấu hình Terraform

Cấu hình Terraform này thiết lập AWS Systems Manager (SSM) để tự động cài đặt và cấu hình CloudWatch Agent trên các phiên bản EC2 được gán thẻ cho việc giám sát, hỗ trợ cả Linux và Windows. Nó bao gồm:

  • IAM Role và Instance Profile
    Tạo một IAM role với các quyền cho EC2 sử dụng SSM và CloudWatch và gán các policy quản lý AWS AmazonSSMManagedInstanceCoreCloudWatchAgentServerPolicy. Một instance profile được tạo ra để các phiên bản EC2 có thể sử dụng role này.

  • CloudWatch Log Groups
    Các nhóm log riêng biệt cho Linux (/aws/ec2/var/log/messages) và Windows (/aws/ec2/windows/logs) với thời gian lưu trữ 14 ngày. Những nhóm này được sử dụng để thu thập log từ các phiên bản được giám sát.

  • SSM Parameters cho cấu hình CloudWatch Agent
    Lưu trữ các cấu hình JSON cho CloudWatch agent. Linux và Windows sử dụng các tham số khác nhau chỉ định các chỉ số cần thu thập như CPU, bộ nhớ, đĩa, mạng và sự kiện hệ thống, tuân thủ các thực hành tốt nhất và hướng dẫn của AWS.

  • S3 Bucket cho log SSM
    Một S3 bucket đã được phiên bản hóa và mã hóa với các quy tắc vòng đời để lưu trữ và quản lý log từ các liên kết SSM, đảm bảo log được giữ an toàn và được dọn dẹp sau 30 ngày.

  • CloudWatch Dashboard
    Một dashboard hiển thị các chỉ số về CPU, bộ nhớ và mức sử dụng đĩa cho các phiên bản EC2 được giám sát bởi CloudWatch agent, giúp nhanh chóng hình dung tình trạng sức khỏe.

  • SSM Associations
    Ba liên kết tự động hóa quá trình cài đặt và cấu hình CloudWatch Agent:

    • install_cloudwatch_agent: Cài đặt agent trên các phiên bản EC2 có thẻ cloudwatch=enabled.
    • configure_cloudwatch_agent_linux: Sử dụng tham số cấu hình cho Linux để cấu hình agent trên các phiên bản Linux.
    • configure_cloudwatch_agent_windows: Sử dụng tham số cấu hình cho Windows để cấu hình agent trên các phiên bản Windows.

Cách sử dụng thiết lập này

  1. Gán thẻ cho các phiên bản EC2 của bạn với cloudwatch=enabled os=Linux hoặc os=Windows.
    Điều này đảm bảo rằng chỉ các phiên bản mục tiêu nhận được cài đặt và cấu hình CloudWatch agent.

  2. Gán IAM instance profile mà Terraform tạo ra cho các phiên bản EC2 của bạn. Ví dụ:
    iam_instance_profile_name sẽ chứa tên profile để sử dụng.

  3. Triển khai cấu hình Terraform. Điều này sẽ tạo tất cả các tài nguyên, bao gồm IAM roles, log groups, SSM parameters, S3 bucket, dashboards và associations.

  4. SSM sẽ chạy các associations theo lịch (mỗi 30–40 phút) để đảm bảo CloudWatch agent được cài đặt và cấu hình tự động.

  5. Giám sát bằng dashboard CloudWatch đã tạo để hình dung các chỉ số chính.

Lợi ích của cách tiếp cận này

  • Cài đặt và cấu hình tự động mà không cần can thiệp thủ công vào từng phiên bản.
  • Quản lý tập trung các cấu hình giám sát thông qua SSM parameters.
  • Quản lý log hiệu quả về chi phí với các chính sách vòng đời trên S3.
  • Hỗ trợ cả phiên bản Linux và Windows với việc thu thập chỉ số được điều chỉnh.
  • Dễ dàng mở rộng bằng cách gán thêm nhiều phiên bản.

Thực hành tốt nhất

  • Luôn gán thẻ đúng cho EC2 để tránh cài đặt không cần thiết.
  • Theo dõi chi phí và điều chỉnh chính sách lưu trữ log để tiết kiệm chi phí.
  • Sử dụng CloudWatch Alarms để nhận thông báo về các chỉ số quan trọng.

Các cạm bẫy phổ biến

  • Không gán thẻ đúng cho EC2 có thể dẫn đến việc không cài đặt hoặc cấu hình CloudWatch agent.
  • Thiếu quyền IAM có thể gây ra lỗi trong quá trình cài đặt.

Mẹo hiệu suất

  • Sử dụng các tham số tối ưu hóa để giảm thiểu mức sử dụng tài nguyên trong quá trình giám sát.
  • Kiểm tra định kỳ hiệu suất của các phiên bản EC2 để điều chỉnh cấu hình nếu cần.

Giải quyết sự cố

  • Nếu CloudWatch agent không hiển thị dữ liệu, kiểm tra các log trong CloudWatch Log Groups để tìm nguyên nhân.
  • Đảm bảo rằng IAM role và policy được gán đúng cho EC2.

Kho lưu trữ GitHub

Mã Terraform này được đẩy lên và duy trì trong một kho GitHub để dễ dàng truy cập và quản lý phiên bản. Bạn có thể clone, tùy chỉnh hoặc đóng góp cải tiến khi cần thiết.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào