2016-10-19 1 views
-1

J'essaye de configurer le script aws cloudwatch pour surveiller la mémoire etc. Pendant l'exécution du script nous obtenons l'erreur ci-dessous et j'ai mis à jour le paquet perl la version LWP est également la dernière comme 6 mais le script échoue avec l'erreur ci-dessous.LWP :: Protocole :: https :: Socket: connect: erreur timeout

J'ai essayé de définir des variables d'environnement comme PERL_LWP_ENV_PROXY=1 et PERL_LWP_SSL_VERIFY_HOSTNAME=0 mais j'échoue toujours. S'il vous plaît aider à ce sujet.

[[email protected] aws-scripts-mon]$ sudo ./mon-put-instance-data.pl --mem-util --mem-used --mem-avail --aws-credential-file=./awscreds.template

ERROR: Failed to call CloudWatch: HTTP 500. Message: Can't connect to monitoring.ap-southeast-1.amazonaws.com:443 (timeout)

LWP::Protocol::https::Socket: connect: timeout at /usr/local/share/perl5/LWP/Protocol/http.pm line 47.

For more information, run 'mon-put-instance-data.pl --help'

+0

Pour référence, la les scripts sont disponibles ici: http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitor ing/mon-scripts.html FWIW, je ne vois rien dans les modules de stock et les scripts qui forcent l'utilisation de 'Crypt :: SSLeay'. Rappelez-vous, même en installant l'actuel 'Crypt :: SSLeay' vous opte pour utiliser' IO :: Socket :: SSL' (et, par extension, 'Net :: SSLeay'). Voir https://www.nu42.com/2014/04/does-your-code-really-depend-on.html –

Répondre

1

PERL_LWP_ENV_PROXY=1

Je suppose que cela signifie aussi que vous avez l'ensemble variable d'environnement http_proxy à un proxy, il doit utiliser et qu'il n'y a aucun moyen de la cible, sauf en utilisant cette procuration. Appeler quelque chose en utilisant sudo l'exécutera avec différents privilèges. Pour des raisons de sécurité, les variables d'environnement sont fortement nettoyées avant par sudo avant d'appeler le programme, ce qui signifie probablement que http_proxy est vide pour le programme exécuté par sudo. Cela signifie à nouveau qu'il essayera d'atteindre le site cible directement au lieu d'utiliser un proxy et expirera sur la connexion puisque le site ne peut être atteint en utilisant le proxy.

+0

J'ai essayé d'exécuter le script en tant que root après avoir exporté PERL_LWP_ENV_PROXY = 1 et j'obtiens l'erreur ci-dessous. – Keeplearning

+0

[racine @ ip-10-175-82-195 aws-scripts-mon] # ./mon-put-instance-data.pl --mem-util --mem-utilisé --mem-avail -aws- credential-file =/root/.aws/awscreds ERREUR: Echec de l'appel de CloudWatch: HTTP 500. Message: Échec de la négociation SSL: à /usr/local/share/perl5/LWP/Protocol/http.pm ligne 27. à /usr/local/share/perl5/LWP/Protocol/http.pm ligne 27. ; à /usr/local/share/perl5/LWP/Protocol/http.pm ligne 27. ; /usr/local/share/perl5/LWP/Protocol/http.pm ligne 27. Pour plus d'informations, exécutez 'mon-put-instance-data.pl --help' – Keeplearning

+0

@Keeplearning: Ceci est un problème différent et celui d'origine (timeout) est évidemment fixé car il a réussi à établir une connexion TCP avec le serveur et n'a échoué que dans la négociation SSL. Par conséquent s'il vous plaît poser une nouvelle question et inclure les détails nécessaires pour aider avec cette nouvelle question (c.-à-code, sortie de débogage lorsqu'il est exécuté avec '-MIO :: Socket :: SSL = debug4', ...) –

0

Il semble être build-essentiel n'est pas installé. Veuillez installer l'essentiel de la construction. J'ai fait face au même problème. Une fois que build-essential est installé, installez tous les modules cpan associés.

sudo apt-get install build-essential

Merci Amit

0

Effectuez les opérations suivantes:

yum install openssl openssl-devel 
perl -MCPAN -e 'install LWP::Protocol::https' 

Si le problème persiste, essayez

perl -MCPAN -e 'install Bundle::CPAN' 
perl -MCPAN -e 'install Bundle::LWP5_837'