2012-10-22 15 views
7

Ho un'installazione munin-1.4.x di oltre 400 nodi, che vorrei aggiornare a munin-2.x, per sfruttare la generazione di contenuti basati su CGI (grafici html &) sul server principale munin . Ho esaminato il dox ufficiale (http://munin-monitoring.org/wiki/CgiHowto2) e semplicemente non funziona. Copre solo un VirtualHost (http://munin.example.com), che non è la mia configurazione, ma ho provato a usarlo come punto di partenza.come configurare Munin-2.0.x per generare contenuti con CGI (solo) su Fedora?

In particolare, voglio & bisogno http://example.com/munin di essere l'URL di base che genera dinamicamente il contenuto HTML che elenca tutti i nodi, con i link alle singole pagine dei nodi (che poi vengono generate in modo dinamico/aggiornati quando si fa clic su). Il trucco aggiunto è che sto facendo questo su Fedora (16), e la maggior parte di howto che ho trovato presuppone Debian/Ubuntu (o presuppone la generazione di contenuto statico non-cgi tramite cron).

Il pacchetto ufficiale Munin Fedora installa i seguenti: directory di base

  • Munin è/var/www/html/munin
  • Munin statica contenuti direcotry è/var/www/html/munin/static
  • script CGI (Munin Munin-cg-grafico & munin-cg-html) sono in/var/www/html/munin/cgi

Quello che ho fatto finora: * set "html_strate gy cgi" e "cgiurl_graph/munin/cgi/munin-cgi-html" in /etc/munin/munin.conf * aggiunto il testo seguente /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> 

Tuttavia, dopo aver fatto tutto ciò che (e il riavvio apache), quando vado a http://example.com/munin, ottengo un errore 404, e nel log degli errori apache vedo:

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

Spero che io sono solo manca qualcosa di ovvio, ma in questo momento sono completamente a corto di cos'altro potrebbe essere necessario aggiustare per fare questo lavoro. Grazie.

risposta

1

Il problema è che, se si utilizza la configurazione in un "luogo" di setup basato (piuttosto che in un VirtualHost "), la bandiera per il RewriteRule è sbagliato

Secondo mod_rewrite docu:.

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

Tuttavia, nel caso in cui si desidera/munin/cgi/munin-cgi-html per essere trasmesso in modo che i ScriptAlias ​​in realtà innesca così:.

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 

Se si modificano le regole leggere

Prendere nota del percorso relativo, altrimenti ScriptAlias ​​non funziona.

1

Ho avuto esattamente lo stesso problema e ho faticato per un po ', ma alla fine ho trovato la seguente configurazione che dovrebbe fare esattamente quello che vuoi.

Il mio sistema è Ubuntu Server 12.10. Per alcuni motivi i miei file statici si trovano in/var/cache/munin/www, non sono sicuro se questo è standard su Ubuntu o è stato causato dal mio recente aggiornamento da Ubuntu 12.04.

0

Verificare che munin-cgi sia installato e le dipendenze: mod_fcgid.

CentOS 7, nessun parametro speciale aggiunto alla configurazione del file situato in /etc/httpd/conf.d/munin.conf.

Saluti.

Problemi correlati