Existe a possibilidade de monitorar sites https em nagios através de um proxy?

2

eu tenho uma pequena pergunta sobre a ferramenta nagios:

Existe a possibilidade de monitorar sites https em nagios através de um proxy? O que significa que eu quero monitorar se meu proxy pode alcançar alguns recursos de https na internet? Eu acho que não seria problema com este comando:

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

Mas o nosso servidor nagios não tem acesso direto à Internet e este comando não funciona .. (openssl está instalado) Eu acho que a opção "-S" não funciona com o proxy ..:

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

Então, aqui está a pergunta: o que fazer? É algum tipo de check_https? ou algo assim? Alguém fez um cheque assim?

Muito obrigado pela ajuda. Fake4d

    
por Fake4d 31.05.2011 / 07:42

4 respostas

6

script isso! escreva seu próprio plugin usando wget ou enrole

por exemplo:

#!/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

você pode, obviamente, estendê-lo, por exemplo, para verificar o conteúdo da página retornada.

    
por 31.05.2011 / 08:20
1

check_http certamente funciona para sites https, e '-j CONNECT' é essencial como você já tem, mas você também precisará de um -H .. E seu servidor proxy está configurado para passar https

exemplo:

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

  • Tive melhores resultados usando o uri relativo do que o URL completo. Por exemplo: '/ vendors' em vez de ' link '
  • É claro que o -s é apenas se você estiver tentando corresponder uma string específica no conteúdo retornado
  • Por fim, há ambientes em que sua melhor aposta ainda seria envolver o wget ou o curl em um script
por 30.09.2013 / 13:18
1

Pequeno aprimoramento da resposta do 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

Altere o servidor proxy e chame-o assim:

$ 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
    
por 04.02.2015 / 14:32
-2

Eu recentemente tive o mesmo problema, então coloquei a abordagem wget em um plugin do Nagios link

    
por 15.07.2012 / 21:08