Назад | Перейти на главную страницу

Lighttpd отправляет вывод командной строки Nagios вместо веб-интерфейса

Недавно я установил Nagios на инстанс EC2 под управлением AmazonLinux (который, насколько я понимаю, в основном SuSe). я использую lighttpd и mod_cgi для обслуживания веб-интерфейса.

Когда я перехожу на страницу, вместо получения фактического содержимого я получаю следующее:

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.

Похоже, это справочный документ для версии для командной строки. Вот соответствующая часть моего 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"
                )
        )
}

Что я делаю не так?

Я понял. Людям, которые находят это в Google или где-то еще:

По какой-то причине каталог cgi-bin фактически установлен в /usr/lib64/nagios/. Я указывал lighttpd на фактический исполняемый файл Nagios, поэтому он выплевывал справочную документацию.

Это раздел, который нужно изменить:

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