Perl LWP::协议::https::套接字:连接:超时错误

Perl LWP::协议::https::套接字:连接:超时错误,perl,amazon-web-services,ssl,amazon-cloudwatch,cloudwatch,Perl,Amazon Web Services,Ssl,Amazon Cloudwatch,Cloudwatch,我正在尝试配置aws cloudwatch的script以监控内存等。在执行脚本时,我们得到以下错误,我升级了perl包LWP版本也是最新版本,为6,但脚本仍然失败,错误如下 我尝试将env变量设置为PERL\u LWP\u env\u PROXY=1和PERL\u LWP\u SSL\u VERIFY\u HOSTNAME=0,但仍然失败。请帮忙 [ec2-user@ip-10-175-82-195 aws脚本mon]$sudo ./mon-put-instance-data.pl--mem

我正在尝试配置aws cloudwatch的
script以监控内存等。在执行脚本时,我们得到以下错误,我升级了
perl
包LWP版本也是最新版本,为6,但脚本仍然失败,错误如下

我尝试将env变量设置为
PERL\u LWP\u env\u PROXY=1
PERL\u LWP\u SSL\u VERIFY\u HOSTNAME=0
,但仍然失败。请帮忙

[ec2-user@ip-10-175-82-195 aws脚本mon]$sudo ./mon-put-instance-data.pl--mem util--mem used--mem avail --aws凭证文件=./awscreds.template

错误:调用CloudWatch:HTTP 500失败。消息:无法连接到 monitoring.ap-southest-1.amazonaws.com:443(超时)

LWP::Protocol::https::Socket:连接:超时时间 /usr/local/share/perl5/LWP/Protocol/http.pm第47行

有关详细信息,请运行“mon-put-instance-data.pl--help”

PERL\u LWP\u ENV\u PROXY=1

我猜这也意味着将
http\u proxy
环境变量设置为它应该使用的代理,并且除了使用此代理之外,没有其他方法可以到达目标

$sudo./mon put instance data.pl


使用sudo调用某个对象将以不同的权限运行它。出于安全原因,sudo在调用程序之前会大量清除环境变量,这可能意味着对于sudo运行的程序而言,
http\u proxy
为空。这同样意味着它将尝试直接到达目标站点,而不是使用代理,并且在连接时将超时,因为只能使用代理到达该站点。

似乎没有安装build essential。 请安装构建软件包。我也面临同样的问题。安装build-essential后,安装所有相关的cpan模块

sudo-apt-get-install-build-essential

谢谢 Amit

尝试以下操作:

yum install openssl openssl-devel
perl -MCPAN -e 'install LWP::Protocol::https'
如果问题仍然存在,请重试

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

在导出PERL_LWP_ENV_PROXY=1之后,我尝试以root用户身份运行脚本,结果出现以下错误[root@ip-10-175-82-195 aws脚本mon]#./mon-put-instance-data.pl--mem util--mem used--mem avail--aws凭证文件=/root/.aws/awscreds错误:调用CloudWatch:HTTP 500失败。消息:SSL协商失败:at/usr/local/share/perl5/LWP/Protocol/http.pm第27行。在/usr/local/share/perl5/LWP/Protocol/http.pm第27行;在/usr/local/share/perl5/LWP/Protocol/http.pm第27行;在/usr/local/share/perl5/LWP/Protocol/http.pm第27行。有关详细信息,请运行“mon-put-instance-data.pl--help”@Keeplearning:这是一个不同的问题,原始问题(超时)显然已修复,因为它成功地建立了与服务器的TCP连接,并且仅在SSL握手中失败。因此,请提出一个新问题,并包括帮助解决此新问题所需的详细信息(即代码,使用
-MIO::Socket::SSL=debug4运行时的调试输出,…)好的,我将创建一个新的question@Keeplearning:别忘了接受问题的正确答案。此处提供的脚本仅供参考:FWIW,我在股票模块和脚本中没有看到任何强制使用
Crypt::SSLeay
。请记住,即使安装当前的
Crypt::SSLeay
也会选择使用
IO::Socket::SSL
(并且扩展为
Net::SSLeay
)。看见