Trong bài viết này, tôi sẽ chỉ cho bạn các lệnh aws-cli để quản lý Cloudwatch từ terminal. Hướng dẫn này sẽ giúp bạn bắt đầu sử dụng aws-cli để tạo, quản lý cảnh báo Cloudwatch. Chúng ta sẽ thấy các lệnh để tạo, quản lý, xóa cảnh báo giám sát CPU EC2. Giả sử bạn đã quen thuộc với các dịch vụ AWS EC2, Cloudwatch.
Sau đây là các lệnh aws-cli dành cho Cloudwatch mà chúng ta sẽ thấy trong bài viết này.
Lấy quyền truy cập người dùng AWS IAM và khóa bí mật của bạn và xuất chúng vào thiết bị đầu cuối của bạn.
Kiểm tra danh tính của các khóa bạn đã xuất.
Bạn sẽ thấy các khóa của tôi trong ảnh chụp màn hình ở trên, bạn sẽ không thể sử dụng chúng vì chúng không còn hoạt động nữa. Ngoài ra, hãy lưu ý rằng bạn không bao giờ chia sẻ khóa của mình với bất kỳ ai.
Lấy danh sách các chủ đề SNS hiện có trong tài khoản của bạn.
Lấy ID của các phiên bản để tạo cảnh báo cho bất kỳ phiên bản nào.
Giữ nguyên ID phiên bản và ARN SNS. Có sẵn Checkmetrics cho các phiên bản EC2.
Bây giờ, hãy tạo một cảnh báo có tên "cpu-mon" sẽ được kích hoạt khi mức sử dụng CPU vượt quá "70 phần trăm" trong "300 giây" đối với Phiên bản đã chỉ định. Khi cảnh báo được kích hoạt, thông báo sẽ được gửi đến SNS đã chỉ định.
Mô tả báo động mà chúng ta vừa tạo và xem thông tin chi tiết của nó.
Bạn có thể thay đổi trạng thái của báo động. Để kích hoạt nó cho mục đích thử nghiệm, hãy thay đổi trạng thái thành "ALARM". Thao tác này sẽ thay đổi trạng thái báo động thành "ALARM" và một thông báo sẽ được gửi đến Chủ đề SNS.
Kiểm tra lịch sử trạng thái báo động.
Khi bạn không cần báo động đã tạo nữa, bạn có thể xóa báo động đó bằng lệnh sau.
Xác minh xem báo động đã bị xóa chưa.
Sau đây là các lệnh aws-cli dành cho Cloudwatch mà chúng ta sẽ thấy trong bài viết này.
- list-metrics: Lệnh này liệt kê các số liệu đã chỉ định.
- put-metric-alarm: Bạn có thể tạo và cập nhật báo động bằng lệnh này.
- describe-alarms: Nhận thông tin chi tiết về báo động đã chỉ định.
- set-alarm-state: Thay đổi trạng thái của báo động tạm thời cho mục đích thử nghiệm bằng lệnh này.
- describe-alarm-history: Kiểm tra lịch sử của báo động đã chỉ định bằng lệnh này.
- delete-alarms: sử dụng lệnh này để xóa một báo động cụ thể.
Điều kiện tiên quyết
- Tài khoản AWS (Tạonếu bạn chưa có).
- Hiểu biết cơ bản về phiên bản EC2 (Nhấp vào đây để tìm hiểu cách tạo phiên bản EC2).
- Hiểu biết cơ bản về Cloudwatch (Nhấp vào đây để tìm hiểu cách tạo Báo động cho phiên bản EC2 từ AWS Console).
- Người dùng AWS IAM có AdministratorAccesschính sách được đính kèm vào chính sách đó cùng với khóa truy cập và khóa bí mật của chính sách đó (Nhấp vào đây để tìm hiểu cách tạo Người dùng IAM).
- AWS CLI được cài đặt trên máy cục bộ của bạn.
- Chủ đề SNS (Nhấp vào đây để tìm hiểu cách tạo chủ đề SNS bằng Cloudformation).
Chúng ta sẽ làm gì?
- Kiểm tra aws cli và xuất AWS access & khóa bí mật trên máy cục bộ của bạn.
- Quản lý Cloudwatch bằng aws-cli
Kiểm tra aws cli và xuất AWS access & khóa bí mật trên máy cục bộ của bạn.
Trước khi tiếp tục, hãy đảm bảo rằng bạn đã cài đặt aws-cli trên máy cục bộ của mình.
Mã:
aws --verson #aws-cli/2.0.0 Python/3.8.2 Darwin/19.2.0 botocore/2.0.0dev7
Mã:
export AWS_ACCESS_KEY_ID=
Mã:
export AWS_SECRET_ACCESS_KEY=
Mã:
aws sts get-caller-identity
Bạn sẽ thấy các khóa của tôi trong ảnh chụp màn hình ở trên, bạn sẽ không thể sử dụng chúng vì chúng không còn hoạt động nữa. Ngoài ra, hãy lưu ý rằng bạn không bao giờ chia sẻ khóa của mình với bất kỳ ai.
Quản lý Cloudwatch bằng aws-cli
Việc tạo báo thức sẽ vô ích nếu thông báo không đến được với chúng ta khi báo thức được kích hoạt. Để gửi cảnh báo, chúng ta cần một Chủ đề SNS có đăng ký vào chủ đề đó. Tôi đã có một số chủ đề SNS có đăng ký email cho một trong số chúng. Tôi sẽ sử dụng nó cho mục đích demo. Nếu bạn không có chủ đề SNS, hãy tạo chủ đề trước khi tiếp tục.Lấy danh sách các chủ đề SNS hiện có trong tài khoản của bạn.
Mã:
aws sns list-topics
Mã:
aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId"
Giữ nguyên ID phiên bản và ARN SNS. Có sẵn Checkmetrics cho các phiên bản EC2.
Mã:
aws cloudwatch list-metrics --namespace "AWS/EC2"
Mã:
aws cloudwatch put-metric-alarm --alarm-name cpu-mon --alarm-description "Kiểm tra cảnh báo khi CPU vượt quá 70 phần trăm" --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 70 --comparison-operator GreaterThanThreshold --dimensions "Name=InstanceId,Value=[B][/b]" --evaluation-periods 2 --alarm-actions [B][/b]--unit Phần trăm
Mô tả báo động mà chúng ta vừa tạo và xem thông tin chi tiết của nó.
Mã:
aws cloudwatch describe-alarms --alarm-names cpu-mon
Mã:
aws cloudwatch set-alarm-state --alarm-name "cpu-mon" --state-value ALARM --state-reason "testing purposes"
Mã:
aws cloudwatch describe-alarm-history --alarm-name "cpu-mon" --history-item-type StateUpdate
Khi bạn không cần báo động đã tạo nữa, bạn có thể xóa báo động đó bằng lệnh sau.
Mã:
aws cloudwatch delete-alarms --alarm-names cpu-mon
Mã:
aws cloudwatch describe-alarms