CloudWatch ile boş disk alanı (df) miktarı elde etmek mümkün müdür? Öyleyse, hangi disk alanı boş disk alanını temsil eder?
CloudWatch ile boş disk alanı (df) miktarı elde etmek mümkün müdür? Öyleyse, hangi disk alanı boş disk alanını temsil eder?
Yanıtlar:
Bu arada AWS , en azından Linux çalıştıran Amazon EC2 bulut sunucularınızda bellek ve disk alanı kullanımını izlemek için kendi örnek komut dosyalarını sağlar , bkz. Yeni Amazon CloudWatch İzleme Komut Dosyaları :
Bu komut dosyalarını örneklerinizde çalıştırabilir ve bellek ve disk alanı kullanım metriklerini Amazon CloudWatch'a bildirecek şekilde yapılandırabilirsiniz. Metrikler CloudWatch'a gönderildikten sonra CloudWatch konsolunda veya CloudWatch API'sı üzerinden grafikleri görüntüleyebilir, istatistikleri hesaplayabilir ve alarmlar ayarlayabilirsiniz .
[...]
Kurulum, kurulum ve yapılandırma dahil komut dosyalarının nasıl kullanılacağı hakkında daha fazla bilgi edinmek için lütfen Amazon CloudWatch Geliştirici Kılavuzu'ndaki " Linux için Amazon CloudWatch İzleme Komut Dosyaları " sayfasını ziyaret edin .
Bununla birlikte, birçok popüler 3. taraf izleme çözümünün, bellek ve disk alanı kullanımını izlemek için de ilgili örnekleri veya tam teşekküllü çözümleri sunduğunu lütfen unutmayın, bu nedenle genellikle tekerleği yeniden icat etmek gerekmez. AWS tarafından sağlanan komut dosyaları da oldukça iyi ve kapsamlıdır, yani kullanım durumunu çevreleyen komut dosyalarının çoğundan daha ayrıntılı olarak kapsarlar.
Hayır, bu mümkün değil (henüz). Bunun nedenini de kapsayan bellek kullanımı için ilgili soru bulut saatindeki AWS personelinin cevaplarına bakın :
[...] Şu anda, örneğinizi izlemek için AMI'nize herhangi bir şey dağıtmanız gerekmez. Bellek kullanımı ve disk alanı gibi metrikler, örnekte çalışan işletim sistemine bakmamızı gerektirir ve bu nedenle bu değerli metriklere sahip değiliz.
İşletim sisteminize ve uygulamalarınıza daha fazla bilgi vermenin yollarını arıyoruz ve planları hazırlarken daha fazla ayrıntıya sahip olacağız.
Gerekli çapraz platform aracısı işlevselliği zaten özel izleme çözümleri sunan diğer birkaç satıcıdan kolayca elde edilebildiğinden ve bu görev tamamen basit olsa da, bu işlevin her zaman ortaya çıkacağından şüpheliyim - kesinlikle sahip olmak büyük bir kazanç olacaktır Tabii ki doğrudan AWS'de yerleşik destek.
Burada, bir örneğe eklenen birimleri alan ve her birimin kullanımını bildiren aynı komut dosyasının daha iyi bir sürümü.
/ dev / sd için / dev / xvd
ayrıca, ec2-api araçlarına ve bu saatin çalışması için bir sertifika ile birlikte yüklenmiş bulut izleme araçlarına ihtiyacınız olduğunu unutmayın
#!/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
Özel bulut saati metriklerini kullanarak bunu yapmak için bir bash betiği hazırladım
http://aws.typepad.com/aws/2011/05/amazon-cloudwatch-user-defined-metrics.html
XXXX'i kendi değerlerinizle değiştirin
#!/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
bunu bir cron işine koyarsanız, alarm verebileceğiniz bir metrik elde edersiniz. İhtiyaçlarıma uygun olduğu için hacmin kendisini izlemek yerine yüzdeler ve örnek spesifik bağlama noktaları ile gitmeye karar verdim. Örnekleri yeniden başlattığımdan daha fazla yeniden boyutlandırma ve birimler arasında geçiş yapma eğilimindeyim. Kilometreniz değişebilir.
Amazon'un örnek komut dosyalarından veya Perl tabanlı komut satırı araçlarını kullanan çeşitli 3. taraf komut dosyalarından memnun değilseniz , kendi komut dosyamızı Python'da yazdık : aws-cloudwatch-linux-metrics .
Tek bir dosya, bağımlılığı yoktur ve herhangi bir Python yorumlayıcısında çalışır.
Dışarıdan gözlemlenemeyen diğer sistem metriklerine ek olarak verileri doğrudan /proc
dosya sisteminden okur ve disk alanı kullanımını bildirir :
Bu metrikleri hem örnek kimliği hem de resim kimliğiyle ilgili olarak rapor eder.
Soru sorulduktan bir süre sonra AWS, komut dosyalarına disk kullanımını bildirme seçenekleri sağladı.
Kullanılabilir disk alanını CloudWatch'a bildirmek için bu komut dosyasını crontab'da çalıştırabilirsiniz. Disk yolunu eklemeyi unutmayın.
*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/ --from-cron
Dokümanlar , seçeneklerin tam bir listesini ve burada örneği verir .