web-dev-qa-db-fra.com

Utilisation de la mémoire pour le groupe de redimensionnement automatique AWS

Je suis en train de configurer AWS autoscaling, et lors de la définition de la stratégie de dimensionnement, j'ai rencontré ce problème.

Je voulais utiliser la mémoire en tant que paramètre, j'ai donc installé le script de CLoudwatch pour la surveillance de la mémoire à partir du lien ci-dessous.

http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html

Lorsque je l'utilise pour une instance simple, cela fonctionne bien. mais quand je le fais pour l'auto-achat avec la commande ci-dessous comme suggéré dans la doc ci-dessus, il donne une erreur

Commander 

./mon-put-instance-data.pl --mem-util --mem-used --mem-avail --auto-scaling = seulement

Erreur: 

AVERTISSEMENT: les mesures Auto Scaling ne seront pas rapportées cette fois.

quand je vérifie cette erreur sur Internet, peu de gens disent qu'il peut s'agir d'une erreur d'instance-id dans/var/tmp/aws-mon.

Toute aide est appréciée.

11
amit singh

eh bien, j’ai fait la chose la plus stupide possible dans ce scénario, j’affiche ceci comme une réponse pour pouvoir aider les autres. J'essayais sur l'instance qui n'était membre d'aucun groupe de mise à l'échelle automatique. 

4
amit singh

Ici est un lien vers le support AWS avec la même question.

Ici est un lien vers le code source du script Perl. Je ne sais pas si cela peut être publié ici, alors ouvrez le fichier Zip, allez à mon-put-instance-data.pl et cherchez reported. Il semble que l'erreur se produise si vous n'avez pas fourni verify, ni le nom du groupe de mise à l'échelle automatique. Puisque le premier est seulement pour les tests - nous avons le gagnant. Veuillez fournir le paramètre de nom de groupe de mise à l'échelle automatique ... 

Eh bien, il n’existe pas ce paramètre, mais si vous regardez de plus près, vous pouvez voir que certaines lignes précédant reported à partir de find, il existe une requête pour cela. Alors ... votre instance n'a pas d'accès. 

Googler avec CloudWatchClient::get_auto_scaling_group donne ce résultat . À partir de là, vous pouvez lire que vous devez accorder à votre instance le droit de publier des données sur CloudWatch ...

Si vous avez d'autres questions, s'il vous plaît - demander. Je vais modifier cette réponse pour que nous ayons quelque chose de plus ou de moins complet - pas seulement pour moi.

5

Solution de travail si votre instance appartient au groupe Mise à l'échelle automatique.

rm -rf /var/tmp/aws-mon/

Puis courez,

./mon-put-instance-data.pl --mem-util --auto-scaling=only

Lorsque le script de surveillance s'exécute, il met en cache l'occurrence_id avec /var/tmp/aws-mon.
L'un des filtres qu'il utilise lors de l'obtention du nom du groupe de mise à l'échelle automatique est l'ID d'instance. Le TTL sur cette opération est de 6 heures. Si votre AMI dispose de ce cache, la requête utilisera le mauvais identificateur d'instance jusqu'à 6 heures après la création de l'instance. nom de groupe.

REF: https://forums.aws.Amazon.com/thread.jspa?threadID=117783

3
SAB

Je faisais face au même défi, mais la réponse correcte à cette question est que vous avez peut-être oublié les conditions préalables mentionnées à l'adresse suivante: 

https://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html#mon-scripts- Perl_prereq

Cette erreur de compilation indique en fait qu'il manque certains packages, nécessaires pour exécuter le script Perl. 

Si vous utilisez l'instance EC2 Linux pour exécuter ces scripts, vous avez probablement manqué l'exécution de la commande suivante:

Sudo yum install -y Perl-Switch Perl-DateTime Perl-Sys-Syslog Perl-LWP-Protocol-https Perl-Digest-SHA.x86_64

Une fois que vous exécutez cette commande, votre script devrait fonctionner correctement sans erreur. 

J'espère que cela pourra aider. :)

0
Ajay Sodhi