Làm cách nào để có được dung lượng đĩa trống với CloudWatch?


11

Có thể lấy dung lượng đĩa trống (df) bằng CloudWatch không? Nếu vậy, số liệu nào đại diện cho không gian đĩa trống?

Câu trả lời:


7

Cập nhật

Trong khi đó AWS cung cấp các tập lệnh mẫu riêng của họ để theo dõi việc sử dụng bộ nhớ và dung lượng ổ đĩa trên các phiên bản Amazon EC2 của bạn chạy Linux ít nhất, hãy xem Tập lệnh giám sát Amazon CloudWatch mới :

Bạn có thể chạy các tập lệnh này trên các phiên bản của mình và định cấu hình chúng để báo cáo số liệu sử dụng bộ nhớ và dung lượng ổ đĩa cho Amazon CloudWatch. Khi các số liệu được gửi tới CloudWatch, bạn có thể xem biểu đồ, tính toán số liệu thống kê và đặt báo thức cho chúng trong bảng điều khiển CloudWatch hoặc thông qua API CloudWatch .

[...]

Để tìm hiểu thêm về cách sử dụng các tập lệnh, bao gồm cài đặt, thiết lập và cấu hình, vui lòng truy cập " Amazon CloudWatch Giám sát tập lệnh cho Linux " trong Hướng dẫn dành cho nhà phát triển Amazon CloudWatch.

Mặc dù vậy, xin lưu ý rằng nhiều giải pháp giám sát phổ biến của bên thứ 3 cũng cung cấp các mẫu tương ứng hoặc các giải pháp chính thức cho giám sát sử dụng bộ nhớ và dung lượng ổ đĩa, vì vậy người ta thường không cần phải phát minh lại bánh xe. Mặc dù vậy, các kịch bản do AWS cung cấp cũng khá tốt và rộng rãi, tức là chúng bao quát trường hợp sử dụng kỹ lưỡng hơn hầu hết các tập lệnh tắt tùy chỉnh trôi nổi xung quanh.


Trả lời ban đầu

Không, điều này là không thể (chưa). Xem câu trả lời của nhân viên AWS trên cloudwatch câu hỏi liên quan để sử dụng bộ nhớ , bao gồm cả lý do cho việc này:

[...] Ngay bây giờ, bạn không cần phải triển khai bất cứ điều gì trong AMI để theo dõi trường hợp của bạn. Các số liệu như sử dụng bộ nhớ và dung lượng ổ đĩa yêu cầu chúng ta xem xét hệ điều hành đang chạy trong trường hợp đó và đó là lý do tại sao chúng ta không có các số liệu có giá trị này.

Chúng tôi đang xem xét các cách để cung cấp cái nhìn sâu sắc hơn về hệ điều hành và ứng dụng của bạn và sẽ có thêm thông tin chi tiết khi chúng tôi xây dựng kế hoạch.

Tôi nghi ngờ rằng chức năng này sẽ xuất hiện bất cứ lúc nào sớm, vì chức năng đại lý đa nền tảng cần thiết đã có sẵn từ một vài nhà cung cấp khác cung cấp các giải pháp giám sát chuyên dụng, và nhiệm vụ này hoàn toàn đơn giản - đó chắc chắn sẽ là một chiến thắng rất lớn tất nhiên hỗ trợ cho điều này được tích hợp vào AWS.


"Mặc dù điều này không thay đổi những gì đã được nêu trong câu trả lời ban đầu của tôi ..." - câu trả lời ban đầu của bạn cho biết AWS không thể báo cáo việc sử dụng đĩa, nhưng bây giờ các tập lệnh AWS đã báo cáo việc sử dụng đĩa. Vì vậy, câu trả lời cho câu hỏi OP đã thay đổi.
steampowered

3

Đây là phiên bản tốt hơn của cùng một tập lệnh truy xuất các tập được đính kèm vào một thể hiện và báo cáo việc sử dụng từng tập.

lưu ý sự thay thế của / dev / xvd cho / dev / sd

cũng lưu ý rằng bạn cần các công cụ ec2-api và công cụ cloudwatch được cài đặt cùng với chứng chỉ để làm cho các công cụ đó hoạt động

#!/bin/bash

export JAVA_HOME=
export AWS_CREDENTIAL_FILE=
export EC2_CERT=
export EC2_PRIVATE_KEY=
export EC2_HOME=
export AWS_CLOUDWATCH_HOME=

INSTANCE_ID=$(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id)
VOLUME_LIST=$($EC2_HOME/bin/ec2-describe-volumes | grep ${INSTANCE_ID} | awk '{ print $2 ";" $4}')

for VOLUME_LINE in $(echo $VOLUME_LIST); do
        VOLUME_NAME=${VOLUME_LINE%;*}
        DEVICE_NAME=/dev/xvd${VOLUME_LINE#*;/dev/sd}
        USAGE=$(df $DEVICE_NAME | perl -ne 'print "$1" if /(\d+)\%/')
        $AWS_CLOUDWATCH_HOME/bin/mon-put-data -v $USAGE -d "Volume=$VOLUME_NAME" -m UsedStoragePercentage -u Percent -n "NAMESPACE" --show-request
done

2

Tôi kết hợp một tập lệnh bash để thực hiện điều này bằng cách sử dụng số liệu tùy chỉnh trên đám mây

http://aws.typepad.com/aws/2011/05/amazon-cloudwatch-user-dained-metrics.html

thay thế XXXX bằng các giá trị của riêng bạn

#!/bin/sh

export JAVA_HOME=/usr/lib/jvm/java-6-sun
export AWS_CREDENTIAL_FILE=XXXX 
export AWS_CLOUDWATCH_HOME=XXXX

INSTANCE_ID=$(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id)

$AWS_CLOUDWATCH_HOME/bin/mon-put-data -v $(df / | perl -ne 'print "$1" if /(\d+)\%/') -d "InstanceId=$INSTANCE_ID,Volume=root" -u Percent -m UsedStoragePercentage -n "XXXX" --show-request

đặt công việc này trong một công việc định kỳ và bạn sẽ có một số liệu bạn có thể đặt báo thức. Tôi quyết định đi theo tỷ lệ phần trăm và điểm gắn cụ thể thay vì theo dõi âm lượng vì nó phù hợp với nhu cầu của tôi. Tôi có xu hướng thay đổi kích thước và chuyển đổi xung quanh âm lượng nhiều hơn so với các trường hợp tôi đang khởi động lại. Số dặm của bạn có thể thay đổi.


1

Không hài lòng với các tập lệnh mẫu của Amazon hoặc các tập lệnh bên thứ 3 khác nhau sử dụng các công cụ dòng lệnh dựa trên Perl của họ, chúng tôi đã viết tập lệnh của riêng mình bằng Python: aws-cloudwatch-linux-metrics .

Tệp đơn, không có phụ thuộc và chạy trên bất kỳ trình thông dịch Python nào.

Nó đọc dữ liệu ngay từ /prochệ thống tập tin và báo cáo việc sử dụng không gian đĩa bên cạnh các số liệu hệ thống khác không thể quan sát được từ bên ngoài:

  • Tải CPU trung bình
  • Kết nối mạng (TCP và UDP)
  • Sử dụng không gian đĩa
  • Sử dụng bộ nhớ

Nó báo cáo các số liệu này liên quan đến cả id cá thể và id hình ảnh.


Xin chào, dự án github của bạn đã biến mất
Roco CTZ

0

Một thời gian sau khi câu hỏi được hỏi, AWS đã cung cấp các tập lệnh với các tùy chọn để báo cáo việc sử dụng đĩa.

Bạn có thể chạy tập lệnh này trong crontab để báo cáo dung lượng đĩa trống cho CloudWatch. Đừng quên bao gồm đường dẫn đĩa.

*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/ --from-cron

Tài liệu cung cấp một danh sách đầy đủ các tùy chọn cộng với ví dụ ở đây .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.