Lighttpd envia a saída da linha de comando do Nagios em vez da interface da web

2

Instalei recentemente o Nagios em uma instância do EC2 executando o AmazonLinux (que é basicamente o SuSe, no meu entender). Estou usando lighttpd e mod_cgi para servir a interface da web.

Quando navego para uma página, em vez de obter o conteúdo real, obtenho isto:

Nagios Core 3.3.1
Copyright (c) 2009-2011 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 07-25-2011
License: GPL

Website: http://www.nagios.org
Usage: /usr/sbin/nagios [options] 

Options:

  -v, --verify-config          Verify all configuration data
  -s, --test-scheduling        Shows projected/recommended check scheduling and other
                               diagnostic info based on the current configuration files.
  -x, --dont-verify-paths      Don't check for circular object paths - USE WITH CAUTION!
  -p, --precache-objects       Precache object configuration - use with -v or -s options
  -u, --use-precached-objects  Use precached object config file
  -d, --daemon                 Starts Nagios in daemon mode, instead of as a foreground process

Visit the Nagios website at http://www.nagios.org/ for bug fixes, new
releases, online documentation, FAQs, information on subscribing to
the mailing lists, and commercial support options for Nagios.

Qual parece ser o documento de ajuda para a versão da linha de comando. Aqui está o bit relevante do meu lighttpd.conf :

alias.url = (
                "/nagios/cgi-bin" => "/usr/sbin/nagios",
                "/nagios" => "/usr/share/nagios/html"
)

$HTTP["url"] =~ "^/nagios/cgi-bin" {
        cgi.assign = ( "" => "" )
}

$HTTP["url"] =~ "^/nagios/cgi-bin" {
        auth.backend = "htpasswd"
        auth.backend.htpasswd.userfile = "/etc/nagios/passwd"
        auth.require = ( "" => (
                "method" => "basic",
                "realm" => "Nagios Access",
                "require" => "user=nagiosadmin"
                )
        )
}

$HTTP["url"] =~ "^/nagios" {
        auth.backend = "htpasswd"
        auth.backend.htpasswd.userfile = "/etc/nagios/passwd"
        auth.require = ( "" => (
                "method" => "basic",
                "realm" => "Nagios Access",
                "require" => "user=nagiosadmin"
                )
        )
}

O que estou fazendo de errado?

    
por Chris 08.08.2012 / 07:19

1 resposta

1

Eu percebi isso. Para as pessoas que encontram isso no Google ou qualquer outra coisa:

Por alguma razão, o diretório cgi-bin está realmente instalado em /usr/lib64/nagios/ . Eu estava apontando lighttpd para o executável real para o Nagios, e foi por isso que ele estava cuspindo seu documento de ajuda.

Esta é a seção que precisa ser alterada:

alias.url = (
                "/nagios/cgi-bin" => "/usr/lib64/nagios/cgi-bin",
                "/nagios" => "/usr/share/nagios/html"
)
    
por 08.08.2012 / 20:19