Apakah mungkin untuk mendapatkan jumlah ruang disk kosong (df) dengan CloudWatch? Jika demikian, metrik apa yang mewakili ruang disk kosong?
Apakah mungkin untuk mendapatkan jumlah ruang disk kosong (df) dengan CloudWatch? Jika demikian, metrik apa yang mewakili ruang disk kosong?
Jawaban:
Sementara itu AWS menyediakan skrip sampel mereka sendiri untuk memantau memori dan penggunaan ruang disk pada instance Amazon EC2 Anda yang menjalankan Linux setidaknya, lihat Skrip Pemantauan Amazon CloudWatch Baru :
Anda dapat menjalankan skrip ini pada instans Anda dan mengkonfigurasinya untuk melaporkan metrik penggunaan memori dan ruang disk ke Amazon CloudWatch. Setelah metrik dikirimkan ke CloudWatch, Anda dapat melihat grafik, menghitung statistik, dan mengatur alarmnya di konsol CloudWatch atau melalui CloudWatch API .
[...]
Untuk mempelajari lebih lanjut tentang cara menggunakan skrip, termasuk instalasi, pengaturan dan konfigurasi, silakan kunjungi " Script Pemantauan Amazon CloudWatch untuk Linux " di Panduan Pengembang Amazon CloudWatch.
Harap dicatat, bahwa banyak solusi pemantauan pihak ke-3 yang populer menyediakan sampel masing-masing atau solusi lengkap untuk pemantauan penggunaan memori dan ruang disk juga, jadi orang biasanya tidak perlu menemukan kembali roda. Skrip yang disediakan AWS cukup baik dan luas juga, yaitu skrip tersebut mencakup use case yang lebih teliti daripada skrip kustom kebanyakan yang beredar.
Tidak, ini belum memungkinkan. Lihat jawaban staf AWS pada pertanyaan terkait cloudwatch untuk penggunaan memori , yang mencakup alasannya juga:
[...] Saat ini, Anda tidak perlu menggunakan apa pun di dalam Anda AMI untuk memantau instance Anda. Metrik seperti pemanfaatan memori dan ruang disk mengharuskan kita untuk melihat ke dalam OS yang berjalan dalam contoh dan itulah mengapa kita tidak memiliki metrik yang berharga ini.
Kami mencari cara untuk memberikan lebih banyak wawasan tentang OS dan aplikasi Anda dan akan memiliki lebih banyak detail saat kami mengencangkan rencana.
Saya ragu bahwa fungsi ini akan segera muncul dalam waktu dekat, karena fungsi lintas platform agen yang diperlukan sudah tersedia dari beberapa vendor lain yang sudah menawarkan solusi pemantauan khusus, dan tugas ini sangat sederhana - pasti akan menjadi kemenangan besar untuk memiliki dukungan untuk AWS ini secara langsung dibangun tentu saja.
Berikut adalah versi yang lebih baik dari skrip yang sama yang mengambil volume yang dilampirkan ke instance dan melaporkan penggunaan setiap volume.
perhatikan subtitle dari / dev / xvd untuk / dev / sd
juga perhatikan bahwa Anda memerlukan alat ec2-api dan alat cloudwatch diinstal bersama dengan sertifikat untuk membuatnya bekerja
#!/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
Saya mengumpulkan skrip bash untuk melakukan ini menggunakan metrik cloudwatch khusus
http://aws.typepad.com/aws/2011/05/amazon-cloudwatch-user-defined-metrics.html
ganti XXXX dengan nilai Anda sendiri
#!/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
letakkan ini dalam tugas cron, dan Anda akan memiliki metrik yang dapat Anda gunakan untuk mengaktifkan alarm. Saya memutuskan untuk menggunakan persentase dan contoh titik pemasangan khusus alih-alih memantau volume itu sendiri karena cocok dengan kebutuhan saya. Saya cenderung mengubah ukuran dan beralih volume lebih dari saya memulai kembali contoh. Jarak tempuh Anda mungkin beragam.
Tidak puas dengan skrip sampel Amazon atau berbagai skrip pihak ketiga yang menggunakan alat baris perintah berbasis Perl mereka, kami menulis skrip kami sendiri dengan Python: aws-cloudwatch-linux-metrics .
File tunggal, tidak memiliki dependensi, dan berjalan pada interpreter Python apa pun.
Itu membaca data langsung dari sistem /proc
file dan melaporkan pemanfaatan ruang disk di samping metrik sistem lain yang tidak dapat diamati dari luar:
Ini melaporkan metrik ini sehubungan dengan id instance dan id gambar.
Beberapa saat setelah pertanyaan diajukan, AWS memberi skrip opsi untuk melaporkan penggunaan disk.
Anda dapat menjalankan skrip ini di crontab untuk melaporkan ruang disk yang tersedia ke CloudWatch. Jangan lupa untuk memasukkan path disk.
*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/ --from-cron
Dokumen memberikan daftar opsi lengkap dan contoh di sini .