Est-il possible d'obtenir la quantité d'espace disque libre (df) avec CloudWatch? Si oui, quelle métrique représente l'espace disque libre?
Est-il possible d'obtenir la quantité d'espace disque libre (df) avec CloudWatch? Si oui, quelle métrique représente l'espace disque libre?
Réponses:
Pendant ce temps, AWS fournit ses propres exemples de scripts pour surveiller l'utilisation de la mémoire et de l'espace disque sur vos instances Amazon EC2 exécutant Linux au moins, consultez Nouveaux scripts de surveillance Amazon CloudWatch :
Vous pouvez exécuter ces scripts sur vos instances et les configurer pour signaler des métriques d'utilisation de la mémoire et de l'espace disque à Amazon CloudWatch. Une fois les métriques soumises à CloudWatch, vous pouvez afficher des graphiques, calculer des statistiques et définir des alarmes sur ceux-ci dans la console CloudWatch ou via l' API CloudWatch .
[...]
Pour en savoir plus sur l'utilisation des scripts, y compris l'installation, la configuration et la configuration, veuillez visiter « Amazon CloudWatch Monitoring Scripts for Linux » dans le Amazon CloudWatch Developer Guide.
Veuillez noter cependant que de nombreuses solutions de surveillance tierces populaires fournissent des échantillons respectifs ou des solutions complètes pour la surveillance de l'utilisation de la mémoire et de l'espace disque, donc il n'est généralement pas nécessaire de réinventer la roue. Les scripts fournis par AWS sont également assez décents et étendus, c'est-à-dire qu'ils couvrent le cas d'utilisation plus en profondeur que la plupart des scripts personnalisés personnalisés flottants.
Non, ce n'est pas encore possible. Consultez les réponses du personnel AWS sur la question connexe cloudwatch pour l'utilisation de la mémoire , qui en explique également la raison:
[...] Pour le moment, vous n'avez pas besoin de déployer quoi que ce soit dans votre AMI pour surveiller votre instance. Des mesures telles que l'utilisation de la mémoire et l'espace disque nous obligent à examiner le système d'exploitation exécuté dans l'instance et c'est pourquoi nous n'avons pas ces précieuses mesures.
Nous cherchons des moyens de fournir plus d'informations sur votre système d'exploitation et vos applications et nous vous fournirons plus de détails au fur et à mesure que nous affermirons les plans.
Je doute que cette fonctionnalité émerge de sitôt, car la fonctionnalité requise de l'agent multiplateforme est déjà disponible auprès de quelques autres fournisseurs offrant déjà des solutions de surveillance dédiées, et cette tâche est tout sauf simple - ce serait certainement une énorme victoire d'avoir bien sûr, la prise en charge de cela intégré à AWS.
Voici une meilleure version du même script qui récupère les volumes attachés à une instance et rapporte l'utilisation de chaque volume.
notez la sous-station de / dev / xvd pour / dev / sd
notez également que vous avez besoin des outils ec2-api et des outils cloudwatch installés avec un certificat pour les faire fonctionner
#!/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
J'ai mis en place un script bash pour ce faire en utilisant les métriques cloudwatch personnalisées
http://aws.typepad.com/aws/2011/05/amazon-cloudwatch-user-defined-metrics.html
remplacez XXXX par vos propres valeurs
#!/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
mettez cela dans un travail cron, et vous aurez une métrique sur laquelle vous pouvez mettre des alarmes. J'ai décidé d'utiliser des pourcentages et des points de montage spécifiques à l'instance au lieu de surveiller le volume lui-même, car cela convenait à mes besoins. J'ai tendance à redimensionner et à changer de volume plus que je ne redémarre les instances. Votre kilométrage peut varier.
Mécontents des exemples de scripts d'Amazon ou des divers scripts tiers utilisant leurs outils de ligne de commande basés sur Perl, nous avons écrit notre propre script en Python: aws-cloudwatch-linux-metrics .
Fichier unique, sans dépendances et s'exécute sur n'importe quel interpréteur Python.
Il lit les données directement à partir du /proc
système de fichiers et signale l'utilisation de l'espace disque en plus d'autres mesures du système qui ne sont pas observables de l'extérieur:
Il rapporte ces mesures en ce qui concerne à la fois l'ID d'instance et l'ID d'image.
Quelque temps après la question, AWS a fourni des scripts avec des options pour signaler l'utilisation du disque.
Vous pouvez exécuter ce script dans crontab pour signaler l'espace disque disponible à CloudWatch. N'oubliez pas d'inclure le chemin du disque.
*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --disk-space-util --disk-path=/ --from-cron
Les documents donnent une liste complète des options et des exemples ici .