AWS Centos磁盤和內存監控腳本

centos上使用AWS官方的硬盤和內存監控腳本,會發現腳本出錯,無法正常工作,這是因爲aws的官方文檔中提到該腳本沒有在centos上做過測試,並不能保證腳本能正常使用 那麼該如何解決呢,需要安裝以下軟件:

yum install -y perl-CPAN
     
exportPERL_MM_USE_DEFAULT=1
# setup defaultconfig
perl -MCPAN -e shell #進入MCPAN Shell,自動生成默認配置,並退出
     
# 類似於yum,下載安裝各種包,需要花點時間
perl -MCPAN -e'CPAN::Shell->rematein("notest", "install","Bundle::CPAN")'
perl -MCPAN -e'CPAN::Shell->rematein("notest", "install","CPAN")'
perl -MCPAN -e'CPAN::Shell->rematein("notest", "install","Bundle::LWP")'
perl -MCPAN -e 'CPAN::Shell->rematein("notest","install", "LWP")'
perl -MCPAN -e'CPAN::Shell->rematein("notest", "install","LWP::Protocol::https")'
perl -MCPAN -e'CPAN::Shell->rematein("notest", "install","Crypt::SSLeay")'
perl -MCPAN -e'CPAN::Shell->rematein("notest", "install","Switch")'

安裝完成後,可能仍然會出現問題:

Can't locate object method "new" via package "LWP::Protocol::https::Socket"

需要再次安裝:

cpan>
install Net::HTTPS
install Net::SSL
install IO::Socket::SSL

但是仍然報錯:

[root@serveraws-scripts-mon1]# perl mon-put-instance-data.pl  --mem-util
ERROR: Failed tocall CloudWatch: HTTP 500. Message: Can't connect to monitoring.us-east-1.amazonaws.com:443
(Crypt-SSLeay can't verify hostnames) Net::SSL fromCrypt-SSLeay can't verify hostnames; 
either install IO::Socket::SSL or turn offverification by setting the PERL_LWP_SSL_VERIFY_HOSTNAME 
environment variableto 0 at /usr/local/share/perl5/LWP/Protocol/http.pm line 46.

提示IO::Socket::SSL沒安裝,但確實是安裝了;不過,根據錯誤提示可以設置環境變量得以解決

[root@pa01aws-scripts-mon]# export PERL_LWP_SSL_VERIFY_HOSTNAME=0
[root@pa01aws-scripts-mon]# perl mon-put-instance-data.pl --mem-util
 Successfullyreported metrics to CloudWatch. Reference Id:cab2a044-1515-11e7-9631-9fb8068ec2cc

再次執行就成功了;但是,注意監控腳本一般是放在crontab中執行的,因此crontab中還需要加入環境變量

*/5 * * * * export PERL_LWP_SSL_VERIFY_HOSTNAME=0 && perl /opt/alarm/aws-scripts-mon/mon-put-instance-data.pl --mem-util--mem-avail --mem-used --swap-used --swap-util





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章