Nagios check_http fornece 'HTTP / 1.0 503 Serviço não disponível' para o site HAProxy'd

3

Eu perguntei isso no stackoverflow, mas acho que é mais adequado para isso aqui.

Não consigo descobrir isso!

OS: CentOS 6.6 (atualizado)

Eu recebo o seguinte erro 503 ao usar meu nagios check_http check (ou curl) para consultar um site SSL servido via HAProxy 1.5.

[root@nagios ~]# /usr/local/nagios/libexec/check_http -v -H example.com -S1
GET / HTTP/1.1
User-Agent: check_http/v2.0 (nagios-plugins 2.0)
Connection: close
Host: example.com


https://example.com:443/ is 212 characters
STATUS: HTTP/1.0 503 Service Unavailable
**** HEADER ****
Cache-Control: no-cache
Connection: close
Content-Type: text/html
**** CONTENT ****
<html><body><h1>503 Service Unavailable</h1>
No server is available to handle this request.
</body></html>

HTTP CRITICAL: HTTP/1.0 503 Service Unavailable - 212 bytes in 1.076 second response time |time=1.075766s;;;0.000000 size=212B;;;0
[root@nagios ~]# curl -I https://example.com
HTTP/1.0 503 Service Unavailable
Cache-Control: no-cache
Connection: close
Content-Type: text/html

No entanto. Eu posso acessar o site bem através de qualquer navegador; (200 OK) e também curl -I https://example.com de outro servidor:

root@localhost:~# curl -I https://example.com
HTTP/1.1 200 OK
Date: Wed, 18 Feb 2015 14:36:51 GMT
Server: Apache/2.4.6
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
Last-Modified: Wed, 18 Feb 2015 14:36:52 GMT
Content-Type: text/html; charset=UTF-8
Strict-Transport-Security: max-age=31536000;

O servidor HAProxy está executando no pfSense 2.2.

Eu vejo que o HAProxy retorna um HTTP / 1.0 para nagios e HTTP / 1.1 de outro lugar. Então, é o meu check_http plugin causando isso ou é curl ?

O meu servidor não está enviando o cabeçalho HOST? Se sim, como posso resolver isso?

    
por Elijah Paul 20.02.2015 / 13:26

3 respostas

0

Você tentou colocar a opção "-u" para o URL? Eu também usei o endereço IP e o nome do host. Eu também tenho um HAProxy e a mesma mensagem que você no início.

Eu usei o comando:

./check_http -H example.com -I 8.8.8.8 -p 80 -u http://example.com/

E agora é um trabalho!

    
por 14.10.2015 / 17:30
0

Aqui está como consertar isso!

Você precisa editar o /usr/local/nagios/etc/objects/commands.cfg e alterar o https arument "- I" para "-H"

Isto irá dizer-lhe para procurar o nome do host em vez de um endereço dip especificado no seu bloco http_check na configuração do servidor: /usr/local/nagios/etc/servers/yourserver.cfg

de:

    # 'check_http' command definition
define command{
        command_name    check_http
        command_line    $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
        }

Para:

    # 'check_http' command definition
define command{
        command_name    check_http
        command_line    $USER1$/check_http -H $HOSTADDRESS$ $ARG1$
        }
    
por 03.03.2016 / 14:42
0

check_http tem uma opção chamada --sni

Você precisa usar essa opção

    
por 10.08.2018 / 13:22