Jak uzyskać ilość wolnego miejsca na dysku dzięki CloudWatch?


Odpowiedzi:


7

Aktualizacja

Tymczasem AWS udostępnia własne przykładowe skrypty do monitorowania użycia pamięci i miejsca na dysku w instancjach Amazon EC2 z systemem Linux przynajmniej, zobacz Nowe skrypty monitorowania Amazon CloudWatch :

Możesz uruchamiać te skrypty w swoich instancjach i konfigurować je tak, aby raportowały dane o zużyciu pamięci i miejsca na dysku do Amazon CloudWatch. Po przesłaniu danych do CloudWatch możesz przeglądać wykresy, obliczać statystyki i ustawiać alarmy w nich w konsoli CloudWatch lub poprzez interfejs API CloudWatch .

[...]

Aby dowiedzieć się więcej na temat korzystania ze skryptów, w tym instalacji, konfiguracji i konfiguracji, odwiedź „ Amazon CloudWatch Monitoring Scripts for Linux ” w Amazon CloudWatch Developer Guide.

Należy jednak pamiętać, że wiele popularnych zewnętrznych rozwiązań monitorujących już udostępnia odpowiednie próbki lub pełnoprawne rozwiązania do monitorowania wykorzystania pamięci i miejsca na dysku, więc zwykle nie trzeba wymyślać koła na nowo. Dostarczone przez AWS skrypty są jednak całkiem przyzwoite i obszerne, tzn. Obejmują bardziej szczegółowy przypadek użycia niż większość niestandardowych skryptów jednorazowych.


Pierwsza odpowiedź

Nie, nie jest to jeszcze możliwe. Zobacz odpowiedzi pracowników AWS na powiązane pytanie chmurowe dotyczące zużycia pamięci , które obejmuje również powód:

[...] W tej chwili nie musisz niczego instalować w swoim interfejsie AMI, aby monitorować instancję. Wskaźniki takie jak wykorzystanie pamięci i miejsce na dysku wymagają od nas spojrzenia na system operacyjny działający w instancji i dlatego nie mamy tych cennych wskaźników.

Szukamy sposobów, aby zapewnić lepszy wgląd w system operacyjny i aplikacje, i będziemy mieli więcej szczegółów w miarę opracowywania planów.

Wątpię, aby ta funkcja pojawiła się w najbliższym czasie, ponieważ wymagana funkcjonalność międzyplatformowego agenta jest łatwo dostępna od kilku innych dostawców oferujących już dedykowane rozwiązania monitorujące, a to zadanie jest prawie proste - z pewnością ogromną wygraną byłoby mieć oczywiście wsparcie dla tego wbudowanego w AWS.


„Chociaż to nie zmienia tego, co powiedziano w mojej pierwotnej odpowiedzi ...” - twoja pierwotna odpowiedź mówiła, że ​​AWS nie może zgłosić użycia dysku, ale teraz skrypty AWS zgłaszają użycie dysku. Tak więc odpowiedź na pytanie PO uległa zmianie.
steampowered

3

Oto lepsza wersja tego samego skryptu, który pobiera woluminy dołączone do instancji i raportuje użycie każdego woluminu.

zwróć uwagę na zastąpienie / dev / xvd dla / dev / sd

Zwróć też uwagę, że potrzebujesz narzędzi ec2-API i Cloudwatch zainstalowanych wraz z certyfikatem, aby działały

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

Przygotowałem skrypt bash, aby to zrobić, korzystając z niestandardowych wskaźników Cloudwatch

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

zastąp XXXX własnymi wartościami

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

włóż to do zadania crona, a będziesz mieć metrykę, w której możesz włączyć alarmy. Postanowiłem zastosować wartości procentowe i punkty montowania specyficzne dla instancji zamiast monitorować sam wolumin, ponieważ odpowiada on moim potrzebom. Zwykle zmieniam rozmiar i zmieniam woluminy bardziej niż restartuję instancje. Twój przebieg może się różnić.


1

Niezadowoleni z przykładowych skryptów Amazon lub różnych skryptów innych firm korzystających z narzędzi wiersza polecenia opartych na Perlu, napisaliśmy własny skrypt w języku Python: aws-cloudwatch-linux-metrics .

Pojedynczy plik, nie ma zależności i działa na dowolnym interpreterze Python.

Odczytuje dane bezpośrednio z /procsystemu plików i raportuje wykorzystanie miejsca na dysku oprócz innych wskaźników systemu, których nie można zaobserwować z zewnątrz:

  • Średnie obciążenie procesora
  • Połączenia sieciowe (TCP i UDP)
  • Wykorzystanie miejsca na dysku
  • Wykorzystanie pamięci

Raportuje te metryki zarówno w odniesieniu do identyfikatora instancji, jak i identyfikatora obrazu.


Cześć, twój projekt github zniknął
Roco CTZ

0

Jakiś czas po zadaniu pytania AWS udostępniło skrypty z opcjami raportowania użycia dysku.

Możesz uruchomić ten skrypt w crontab, aby zgłosić dostępną przestrzeń dyskową do CloudWatch. Nie zapomnij podać ścieżki dysku.

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

Dokumenty zawierają pełną listę opcji oraz przykład tutaj .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.