Como verificar o conteúdo de um URI contendo um Hash usando o check_http do Nagios?

2

Tentativa

check_http -H www.example.com -f follow -p 8080 -u /hello/#/world -s "content"

Resultado

HTTP WARNING: HTTP/1.1 404 Not Found - X bytes in 0.00X second response time |time=0.00XYZ

Análise

Embora várias fontes tenham sido lidas [1 , 2 , 3 , 4 ] e um Wget, ou seja, wget www.example.com:8080/hello/#/world retorna um OK, não está claro se o check_http não funciona.

Talvez o # esteja causando um problema. De acordo com esta documentação , o # é uma âncora, o que significa que se var x that x for #/world , mas isso não ajuda a resolver o problema.

O download de www.example.com usando o wget e, subseqüentemente, a inspeção do botão world indica que esse botão está associado a uma fonte de javascript. Essa descoberta também não ajudou a resolver o problema.

Tentativa de dois

check_http -H www.example.com -f follow -p 8080 -u /hello/\#/world -v

Resultado dois

GET /hello/#/world HTTP/1.1
User-Agent: check_http/vX (nagios-plugins X)
Connection: close
Host: www.example.com:8080


http://www.example.com:8080/hello/#/world is X characters
STATUS: HTTP/1.1 404 Not Found
**** HEADER ****
Server: Apache-Coyote/X
Content-Type: text/html;charset=utf-8
Content-Length: X
Date: Thu, Day Month Year Time GMT
Connection: close
**** CONTENT ****
<html><head><title>ApplicationServer - Error report</title><style></style> </head><body><h1>HTTP Status 404 - /hello/#/world</h1><p><b>type</b> Status report</p><p><b>message</b> <u>/hello/#/world</u></p><p><b>description</b> <u>The requested resource (/hello/#/world) is not available.</u></p><h3>ApplicationServer</h3></body></html>
HTTP WARNING: HTTP/1.1 404 Not Found - X bytes in 0.00X second response time |time=0.00Xs;;;0.000000 size=XB;;;0

Análise dois

Funcional

Se você quiser visualizar o link , é preciso navegar para link e clique no botão world . O conteúdo pode ser visualizado e inspecionado usando o firebug assim que o botão for clicado.

Técnico

O URL é baixado usando o Wget. A página contém várias origens JavaScript que representam os botões, por exemplo:

<script src="button.js"></script>
<script src="world.js"></script>

Existe uma discrepância entre a visão Funcional e Técnica. O conteúdo que pode ser visualizado e inspecionado usando o Firebug é omitido na página baixada usando o Wget.

    
por 030 23.10.2014 / 19:45

2 respostas

1

O plug-in check_http só verá o que o wget / curl mostra, por isso não pode verificar o que você deseja verificar.

Se você quiser uma verificação que possa realmente executar o javascript do lado do cliente, será necessário pesquisar algo como WebInject com < a href="https://labs.consol.de/nagios/check_webinject/"> check_webinject , Selênio com < href="http://exchange.nagios.org/directory/Plugins/Websites,-Forms-and-Transactions/check_selenium/details"> check_selenium (como discutido em este post ), ou talvez Sahi e Sakuli .

    
por 24.10.2014 / 17:20
0

O # está na âncora, está correto. Aqueles devem ser interpretados pelo cliente, não pelo servidor. A âncora é parte do site, então é preciso carregar o site inteiro e procurar a âncora nele.

Você deve usar a seguinte verificação:

check_http -H www.example.com -f follow -p 8080 -u /hello/

Mais tarde, você pode adicionar -s world para pesquisar "world" no conteúdo HTML (se ele estiver lá e não for adicionado por meio de outra camada de JavaScript).

    
por 24.10.2014 / 07:50