วิธีรับปริมาณเนื้อที่ว่างบนดิสก์ด้วย CloudWatch


11

เป็นไปได้หรือไม่ที่จะได้รับจำนวนเนื้อที่ว่างบนดิสก์ (df) ด้วย CloudWatch? ถ้าเป็นเช่นนั้นเมตริกใดที่แสดงถึงพื้นที่ว่างในดิสก์

คำตอบ:


7

ปรับปรุง

AWS ในขณะเดียวกันให้สคริปต์ตัวอย่างของตนเองสำหรับการตรวจสอบหน่วยความจำและการใช้พื้นที่ดิสก์บนอินสแตนซ์ Amazon EC2 ของคุณที่ใช้ Linuxอย่างน้อยดูสคริปต์การตรวจสอบ Amazon CloudWatch ใหม่ :

คุณสามารถเรียกใช้สคริปต์เหล่านี้บนอินสแตนซ์ของคุณและกำหนดค่าให้รายงานหน่วยความจำและการใช้พื้นที่ดิสก์เพื่อ Amazon CloudWatch เมื่อเมตริกที่ถูกส่งไปยัง CloudWatch คุณสามารถดูกราฟสถิติการคำนวณและการเตือนภัยชุดที่พวกเขาในคอนโซล CloudWatch หรือผ่านทางCloudWatch API

[ ... ]

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีใช้สคริปต์รวมถึงการติดตั้งการตั้งค่าและการกำหนดค่าโปรดไปที่ " Amazon CloudWatch Monitoring Scripts for Linux " ในคู่มือนักพัฒนา Amazon CloudWatch

โปรดทราบว่าโซลูชันการตรวจสอบบุคคลที่สามที่เป็นที่นิยมจำนวนมากให้ตัวอย่างที่เกี่ยวข้องหรือโซลูชันเต็มรูปแบบสำหรับการตรวจสอบการใช้งานหน่วยความจำและพื้นที่ดิสก์แล้วเช่นกันดังนั้นโดยปกติแล้วหนึ่งไม่จำเป็นต้องบูรณาการล้อ AWS ที่ให้มานั้นมีสคริปที่ค่อนข้างดีและกว้างขวางเช่นกันซึ่งครอบคลุมถึงกรณีการใช้งานอย่างละเอียดมากกว่าสคริปที่กำหนดเองส่วนใหญ่ที่ลอยไปมา


คำตอบเบื้องต้น

ไม่เป็นไปไม่ได้ (ยัง) ดูคำตอบจากเจ้าหน้าที่ AWS เกี่ยวกับcloudwatchคำถามที่เกี่ยวข้องสำหรับการใช้หน่วยความจำซึ่งครอบคลุมเหตุผลนี้เช่นกัน:

[... ] ตอนนี้คุณไม่จำเป็นต้องปรับใช้อะไรใน AMI ของคุณเพื่อตรวจสอบอินสแตนซ์ของคุณ ตัวชี้วัดเช่นการใช้หน่วยความจำและพื้นที่ดิสก์ต้องการให้เรามองเข้าไปในระบบปฏิบัติการที่กำลังทำงานอยู่ในอินสแตนซ์และนั่นคือสาเหตุที่เราไม่มีตัวชี้วัดที่มีค่าเหล่านี้

เรากำลังมองหาวิธีที่จะให้ข้อมูลเชิงลึกเกี่ยวกับระบบปฏิบัติการและแอพพลิเคชั่นของคุณมากขึ้นและจะมีรายละเอียดมากขึ้นเมื่อเราดำเนินการตามแผน

ฉันสงสัยว่าการทำงานนี้จะเกิดขึ้นได้ทุกเวลาในเร็ว ๆ นี้เนื่องจากฟังก์ชั่นตัวแทนข้ามแพลตฟอร์มที่ต้องการนั้นพร้อมใช้งานจากผู้ขายรายอื่น ๆ ที่เสนอโซลูชันการตรวจสอบเฉพาะแล้วและงานนี้ก็ง่าย แต่แน่นอน การสนับสนุนสำหรับสิ่งนี้สร้างขึ้นใน AWS โดยตรงแน่นอน


"แม้ว่าสิ่งนี้จะไม่เปลี่ยนแปลงสิ่งที่ระบุไว้ในคำตอบแรกของฉัน ... " - คำตอบเดิมของคุณบอกว่า AWS ไม่สามารถรายงานการใช้ดิสก์ได้ แต่ตอนนี้สคริปต์ AWS จะรายงานการใช้ดิสก์ ดังนั้นคำตอบของคำถาม OP จึงเปลี่ยนไป
steampowered

3

ต่อไปนี้เป็นเวอร์ชันที่ดีกว่าของสคริปต์เดียวกันที่ดึงข้อมูลโวลุ่มที่แนบมากับอินสแตนซ์และรายงานการใช้งานของแต่ละโวลุ่ม

บันทึก substition ของ / dev / xvd สำหรับ / dev / sd

โปรดทราบว่าคุณต้องการเครื่องมือ ec2-api และเครื่องมือ cloudwatch ที่ติดตั้งพร้อมกับใบรับรองเพื่อให้ใช้งานได้

#!/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

ฉันรวบรวมสคริปต์ทุบตีเพื่อทำสิ่งนี้โดยใช้ตัวชี้วัดคลาวด์วอชที่กำหนดเอง

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

แทนที่ XXXX ด้วยค่าของคุณเอง

#!/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

ใส่สิ่งนี้ในงาน cron และคุณจะมีระบบเมตริกที่คุณสามารถใส่สัญญาณเตือนได้ ฉันตัดสินใจที่จะใช้เปอร์เซ็นต์และจุดยึดเฉพาะแทนการตรวจสอบระดับเสียงของตัวเองเพราะมันเหมาะสมกับความต้องการของฉัน ฉันมักจะปรับขนาดและสลับไปมากับโวลุ่มมากกว่าที่ฉันเริ่มต้นอินสแตนซ์ใหม่ ไมล์สะสมของคุณอาจแตกต่างกันไป


1

ไม่มีความสุขกับสคริปต์ตัวอย่างของ Amazon หรือสคริปต์ของบุคคลที่ 3 ต่าง ๆ ที่ใช้เครื่องมือของพวกเขา Perl ตามบรรทัดคำสั่งที่เราเขียนสคริปต์ของเราเองในหลาม: AWS-CloudWatch-ลินุกซ์ตัวชี้วัด

ไฟล์เดียวไม่มีการพึ่งพาและทำงานกับล่าม Python ใด ๆ

มันอ่านข้อมูลจาก/procระบบไฟล์และรายงานการใช้พื้นที่ดิสก์เพิ่มเติมนอกเหนือจากตัวชี้วัดระบบอื่น ๆ ที่ไม่สามารถสังเกตได้จากภายนอก:

  • โหลด CPU เฉลี่ย
  • การเชื่อมต่อเครือข่าย (TCP และ UDP)
  • การใช้พื้นที่ดิสก์
  • การใช้งานหน่วยความจำ

โดยจะรายงานตัวชี้วัดเหล่านี้เกี่ยวกับรหัสอินสแตนซ์และรหัสรูปภาพ


สวัสดีโครงการ GitHub ของคุณหมดไปแล้ว
Roco CTZ

0

บางครั้งหลังจากถามคำถาม AWS ได้จัดเตรียมสคริปต์พร้อมตัวเลือกเพื่อรายงานการใช้ดิสก์

คุณสามารถเรียกใช้สคริปต์นี้ใน crontab เพื่อรายงานพื้นที่ว่างบน CloudWatch อย่าลืมใส่เส้นทางของดิสก์ด้วย

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

เอกสารให้รายการเต็มรูปแบบของตัวเลือกบวกตัวอย่างที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.