CloudWatch ile boş disk alanı nasıl elde edilir?


Yanıtlar:


7

Güncelleme

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.


İlk Yanıt

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.


"Bu benim ilk cevabımda belirtilenleri değiştirmese de ..." - orijinal cevabınız AWS'nin disk kullanımını bildiremediğini, ancak şimdi AWS betiklerinin disk kullanımını bildirdiğini söyledi. OP sorusunun cevabı değişti.
steampowered

3

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

2

Ö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.


1

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 /procdosya sisteminden okur ve disk alanı kullanımını bildirir :

  • CPU yük ortalaması
  • Ağ bağlantıları (TCP ve UDP)
  • Disk alanı kullanımı
  • Bellek kullanımı

Bu metrikleri hem örnek kimliği hem de resim kimliğiyle ilgili olarak rapor eder.


Merhaba, github projeniz gitti
Roco CTZ

0

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 .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.