2012-10-22 16 views
7

Mam ponad 400 węzłów instalacji munin-1.4.x, którą chciałbym zaktualizować do munin-2.x, aby skorzystać z generowania treści opartej na CGI (html & wykresów) na serwerze głównym munin . Przeszedłem przez oficjalny dox (http://munin-monitoring.org/wiki/CgiHowto2), a po prostu nie działa. Obejmuje tylko VirtualHost (http://munin.example.com), który nie jest moją konfiguracją, ale próbowałem użyć go jako punktu wyjścia.jak skonfigurować Munin-2.0.x do generowania zawartości za pomocą CGI (tylko) w Fedorze?

szczególności chcę & trzeba http://example.com/munin być podstawowy adres URL, który dynamicznie generuje zawartość HTML z listą wszystkich węzłów wraz z linkami do poszczególnych stron węzeł (które następnie dynamicznie generowanych/zaktualizowany po kliknięciu na). Dodałem, że robię to na Fedorze (16), a ogromna większość poradników, które znalazłem, zakłada, że ​​Debian/Ubuntu (lub zakładają generowanie non-cgi statycznej zawartości przez cron).

Oficjalna pakietu Munin Fedora instaluje następujące:

  • munin katalogiem jest/var/www/html/munin
  • munin statyczny direcotry jest/var/www/html/munin/statyczne
  • skryptów CGI (Munin Munin-CG-graph & munin-CG-html) znajdują się w katalogu/var/www/html/munin/cgi

Co zrobiłem do tej pory: * Ustaw „html_strate gy cgi”i "cgiurl_graph/munin/cgi/munin-cgi-html" w /etc/munin/munin.conf * Dodano następujące do /etc/httpd/conf/httpd.conf:

# Rewrites 
RewriteEngine On 
Alias /static /var/www/html/munin/static 
Alias /munin /var/www/html/munin 
# HTML 
RewriteCond %{REQUEST_URI} !^/static 
RewriteCond %{REQUEST_URI} .html$ [or] 
RewriteCond %{REQUEST_URI} =/ 
RewriteRule ^/(.*)   /var/www/html/munin/cgi/munin-cgi-html/$1 [L] 
# Images 
# - remove path to munin-cgi-graph, if present 
RewriteRule ^/munin/cgi/munin-cgi-graph/(.*) /$1 
RewriteCond %{REQUEST_URI}     !^/static 
RewriteCond %{REQUEST_URI}     .png$ 
RewriteRule ^/(.*) /var/www/html/munin/cgi/munin-cgi-graph/$1 [L] 
ScriptAlias /munin/cgi/munin-cgi-graph /var/www/html/munin/cgi/munin-cgi-graph 
<Location /munin/cgi/munin-cgi-graph> 
     Options +ExecCGI FollowSymLinks 
     <IfModule mod_fcgid.c> 
       SetHandler fcgi-script 
     </IfModule> 
     <IfModule !mod_fcgid.c> 
       SetHandler cgi-script 
     </IfModule> 
</Location> 
ScriptAlias /munin/cgi/munin-cgi-html /var/www/html/munin/cgi/munin-cgi-html 
<Location /munin/cgi/munin-cgi-html> 
     Options +ExecCGI FollowSymLinks 
     <IfModule mod_fcgid.c> 
       SetHandler fcgi-script 
     </IfModule> 
     <IfModule !mod_fcgid.c> 
       SetHandler cgi-script 
     </IfModule> 
</Location> 

jednak po wykonaniu wszystkich, że (i ponownym uruchomieniu apache), kiedy idę do http://example.com/munin, pojawia się błąd 404, aw apache dzienniku błędów widzę:

File does not exist: /var/www/html/munin/cgi/munin-cgi-html/munin/index.html 

mam nadzieję, że jestem po prostu brakuje coś oczywistego, ale teraz jestem całkowicie pozbawiony tego, co jeszcze może wymagać dostosowania, aby to zadziałało. dzięki.

Odpowiedz

1

Problemem jest to, że w przypadku korzystania z konfiguracji w „miejscu” setup na podstawie (zamiast w VirtualHost "), flaga dla RewriteRule jest źle

Zgodnie mod_rewrite doku.

L Stop the rewriting process immediately and don't apply any more rules. 

jednak w przypadku, gdy chcesz/munin/cgi/munin-cgi-html być przekazywane tak, że ScriptAlias ​​rzeczywiście wyzwala ten sposób.

PT Forces the resulting URI to be passed back to the URL mapping engine for 
    processing of other URI-to-filename translators, such as Alias or Redirect 

Jeśli zmienić swoje zasady należy przeczytać

RewriteRule ^/(.*) /munin/cgi/munin-cgi-html/$1 [PT] 
.... 
RewriteRule ^/(.*) /munin/cgi/munin-cgi-graph/$1 [PT] 

Zwróć uwagę na ścieżkę względną, ponieważ w przeciwnym razie skrypt nie będzie działał.

1

Miałem dokładnie ten sam problem i przez chwilę miałem problemy, ale w końcu wymyśliłem następującą konfigurację, która powinna zrobić dokładnie to, co chcesz.

Mój system to Ubuntu Server 12.10. Z jakiegoś powodu moje pliki statyczne znajdują się w/var/cache/munin/www, nie jestem pewien, czy jest to standard w Ubuntu, czy było spowodowane przez moje ostatnie uaktualnienie z Ubuntu 12.04.

RewriteEngine On 

    # HTML 
    RewriteRule ^/munin/(.*\.html)?$ /munin/munin-cgi/munin-cgi-html/$1 [PT] 

    # Images 
    RewriteRule ^/munin/munin-cgi/munin-cgi-graph/(.*) /munin/$1 
    RewriteCond %{REQUEST_URI} !^/static 
    RewriteRule ^/munin/(.*.png)$ /munin/munin-cgi/munin-cgi-graph/$1 [L,PT] 

    <Directory /var/cache/munin/www/> 
      Order deny,allow 
      Allow from all 
    </Directory> 

    # Ensure we can run (fast)cgi scripts 
    ScriptAlias /munin/munin-cgi/munin-cgi-graph /usr/lib/cgi-bin/munin-cgi-graph 
    <Location /munin/munin-cgi/munin-cgi-graph> 
      Options +ExecCGI 
      SetHandler fcgid-script 
      Allow from all 
    </Location> 

    ScriptAlias /munin/munin-cgi/munin-cgi-html /usr/lib/cgi-bin/munin-cgi-html 
    <Location /munin/munin-cgi/munin-cgi-html> 
      Options +ExecCGI 
      SetHandler fcgid-script 
      Allow from all 
    </Location> 
0

Upewnij się, że zainstalowano munin-cgi i zależności: mod_fcgid.

CentOS 7, żadne specjalne parametry nie zostały dodane do konfiguracji pliku znajdującej się w /etc/httpd/conf.d/munin.conf.

Pozdrawiam.