是否有可能通过代理监视https站点?

我有一个关于nagios工具的小问题:

是否有可能通过代理监视https站点? 这意味着我想监视我的代理是否可以访问互联网上的一些https资源? 我认为这个命令是没有问题的:

/usr/lib/nagios/plugins/check_http -j CONNECT -u "https://banking.postbank.de" -S 

但我们的nagios服务器没有直接的互联网接入,这个命令不工作..(openssl安装)我认为“-S”选项不工作与代理..:

  /usr/lib/nagios/plugins/check_http -I 10.46.4.200 -p 8080 -j CONNECT -u "https://banking.postbank.de" -S 

所以这里是一个问题:该怎么办? 是德某种check_https? 或类似的东西? 有没有人做过这样的检查?

非常感谢您的帮助,Fake4d

脚本吧! 使用wget或curl编写自己的插件

例如:

 #!/bin/bash wget -t 5 --timeout 30 -O /dev/null -o /dev/null -e http_proxy=your.proxy:port https://www.google.com if [ $? -eq 0 ] ; then echo all ok exit 0 else echo not ok exit 2 fi 

你显然可以扩展它,例如检查返回页面的内容。

check_http当然适用于https网站,'-j CONNECT'是必不可less的,但你也需要一个-H ..而你的代理服务器被设置为通过https

例:

check_http -I PROXYHOST -p PROXYPORT -H FQDN -u RELATIVE-URI -S -j CONNECT -s STRING-TO-MATCH

  • 我已经有更好的结果使用相对uri而不是完整的url..例如:'/ vendors'而不是' http://example.com/vendors '
  • 当然,-s只有当你试图匹配返回的内容中的特定string
  • 最后,还有一些环境中,你最好的select仍然是将wget或curl包装在脚本中

pQd的答案小增强:

 #!/bin/bash URL=$1 RESPONSE_CODE=${2:-200} TIMEOUT=${3:-10} case $RESPONSE_CODE in 401) EXPECTED_RETURN_CODE=6 ;; 200) EXPECTED_RETURN_CODE=0 ;; *) EXPECTED_RETURN_CODE=0 ;; esac start=`date +%s` wget -t 1 --timeout ${TIMEOUT} -O /dev/null -o /dev/null -e http_proxy=PUTYOURPROXYHERE:8080 ${URL} WGET_RETURN_CODE=$? end=`date +%s` PERFDATA="time=$(expr ${end} - ${start})s" if [ ${WGET_RETURN_CODE} -eq ${EXPECTED_RETURN_CODE} ] ; then echo "HTTP OK: HTTP/1.1 ${RESPONSE_CODE} OK for ${URL}|${PERFDATA}" exit 0 else echo "HTTP CRITICAL: Did not receive HTTP/1.1 ${RESPONSE_CODE} for ${URL}|${PERFDATA}" exit 2 fi 

更改代理服务器,并像这样调用它:

 $ bash check_http_proxy.sh https://stackoverflow.com/ 200 3 HTTP OK: HTTP/1.1 200 OK for https://stackoverflow.com/|time=1s or $ bash check_http_proxy.sh http://www.httpwatch.com/httpgallery/authentication/authenticatedimage/default.aspx 401 10 HTTP OK: HTTP/1.1 401 OK for http://www.httpwatch.com/httpgallery/authentication/authenticatedimage/default.aspx|time=0s 

我最近有同样的问题,所以我把wget的方法包装成一个Nagios插件https://github.com/SimpleFinance/nagios-check-http-proxy