Perl LWP::协议::https::套接字:连接:超时错误
我正在尝试配置aws cloudwatch的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
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
)。看见