# Aiuto con configurazione Nagios

## fbcyborg

Salve a tutti, 

vorrei installare nagios su un server ma prima di farlo ho voluto fare qualche esperimento in una macchina virtuale.

Ovviamente ho preso questa guida come riferimento.

Ho subito avuto un problema al codice 2.2, dove dice di inserire in /etc/apache2/modules/99_nagios3.conf (per la verità sarebbe /etc/apache2/modules.d/99_nagios3.conf) le seguenti righe:

```
Order allow,deny

Allow from 127.0.0.1 192.168.1.1/24

```

Ebbene, se lo faccio, mi da subito un errore allo start di apache, dicendo che c'è un errore in riga 1, ovvero che non si può fare un Order lì.

A questo punto ho fatto un po' di ricerche ed ho trovato una pagina su Internet (della quale ora non ritrovo l'URL) dove ho trovato questo codice:

```
<IfDefine NAGIOS>

         ScriptAlias /nagios/cgi-bin/ /usr/lib/nagios/cgi-bin/

         <Directory "/usr/lib/nagios/cgi-bin/">

                AllowOverride AuthConfig

                Options ExecCGI

                Order allow,deny

                Allow from all

        </Directory>

        Alias /nagios /usr/share/nagios/htdocs

        <Directory "/usr/share/nagios/htdocs">

                AllowOverride AuthConfig

                Order allow,deny

                Allow from all

        </Directory>

</IfDefine>

```

Una volta impostato questo contenuto al posto di quello suggerito nel codice 2.2 della guida ufficiale, apache parte senza problemi.

Ora la guida dice di puntare il browser su http://localhost/nagios (dopo aver fatto anche altri passi necessari) ma a questo punto dovrei poter riuscire ad accedere alla configurazione via web. Però ovviamente quell'URL non è raggiungibile. Così ho fatto:

```
ln -s /usr/share/nagios/htdocs/ /var/www/localhost/htdocs/nagios
```

A questo punto se vado su http://localhost/nagios mi viene chiesto username e password ma una volta inseriti i dati corretti la pagina presenta un errore (cod. 500).

Non riesco a capire dove ho sbagliato. Qualcuno ha una vaga idea?

----------

## pierino_89

Dunque, ti avviso che di nagios non ne so una mazza, ma il problema mi sembra puramente legato ad apache.

Prima di tutto: hai guardato cosa dice /var/log/apache2/error_log? Dovrebbe darti i dettagli sull'errore 500.

Facendo un'ipotesi al volo:

- i symlink vengono seguiti solo se hai l'opzione FollowSymLinks abilitata

- /var/www/localhost/htdocs/nagios, ovvero il tuo link, non ha una direttiva directory correlata (o perlomeno non l'hai postata). Di conseguenza eredita la configurazione dal livello superiore, ovvero la radice del webserver. Che di per sé non ha alcuna intenzione di eseguire uno script perché non ha l'opzione ExecCGI.

Comunque, sarei dell'idea di rimuovere il symlink e far funzionare la direttiva alias: dal momento che si trova in una sezione IfDefine, assicurati che la variabile NAGIOS sia settata nel relativo conf. Oppure assicurati che il setup sia a posto, e rimuovi l'IfDefine.

----------

## fbcyborg

Ciao, 

dunque una cosa per volta perché già mi sono un po' confuso.

Per quanto riguarda l'errore 500 me lo da solo quando faccio il symlink da /usr/share/nagios/htdocs/ a /var/www/localhost/htdocs/nagios ovviamente. Altrimenti non se ne parla.

Di FollowSymLinks non c'è traccia in /etc/apache2/httpd.conf, non so ora dove vada inserito. Ad ogni modo non capisco esattamente se devo farlo o no questo symlink, perché comunque la guida non lo dice. O meglio non dice neanche di questi alias. Forse è un po' troppo vecchia questa guida. Inoltre, non cambierei nemmeno la DocumentRoot, visto che magari uso il webserver anche per altre cose.

Non ho capito il discorso non ha una direttiva directory correlata. Forse non so cosa sia  :Sad: 

Grazie per l'aiuto!

----------

## pierino_89

 *fbcyborg wrote:*   

> 
> 
> Per quanto riguarda l'errore 500 me lo da solo quando faccio il symlink da /usr/share/nagios/htdocs/ a /var/www/localhost/htdocs/nagios ovviamente. Altrimenti non se ne parla.
> 
> 

 

Sì, questo l'ho capito. Comunque nel log che ti dicevo ti spiega il vero significato dell'errore 500, che di per sé non significa niente.

 *Quote:*   

> 
> 
> Di FollowSymLinks non c'è traccia in /etc/apache2/httpd.conf, non so ora dove vada inserito.
> 
> 

 

```
<Directory "/usr/lib/nagios/cgi-bin/"> 

                AllowOverride AuthConfig 

                Options ExecCGI 
```

Ad esempio nel codice che hai incollato hai l'opzione ExecCGI. Banalmente, quando vuoi abilitare determinate features in una cartella, location o quel che è scrivi 

```
Options opzione1,opzione2,opzione3,...
```

 *Quote:*   

> 
> 
> Ad ogni modo non capisco esattamente se devo farlo o no questo symlink, perché comunque la guida non lo dice. O meglio non dice neanche di questi alias. Forse è un po' troppo vecchia questa guida.
> 
> 

 

No, il symlink no. Invece l'alias lo definisce eccome:

```
Alias /nagios /usr/share/nagios/htdocs 
```

L'alias sostanzialmente viene interpretato come un link da documentroot/nagios a /usr/share/nagios.

 *Quote:*   

> 
> 
> Inoltre, non cambierei nemmeno la DocumentRoot, visto che magari uso il webserver anche per altre cose.

 

Ma difatti NON devi cambiarla   :Very Happy: 

 *Quote:*   

> 
> 
> Non ho capito il discorso non ha una direttiva directory correlata. Forse non so cosa sia 

 

<Directory>, <Location>, <VirtualHost> e compari vari in gergo di apache si chiamano direttive   :Wink: 

Io ti proporrei di fare così: prima di tutto rimuovi il symlink, poi togli i due tag della direttiva IfDefine. IfDefine sostanzialmente funziona come un if di qualsiasi linguaggio di programmazione, se la condizione è soddisfatta viene applicato il contenuto, altrimenti picche. Dal momento che probabilmente la guida non era per gentoo, quella direttiva non viene soddisfatta quindi ti ritrovi senza alias.

O almeno, dato che di dava un bel 404 mi pare l'ipotesi più probabile.

----------

## fbcyborg

Dunque, ecco l'errore in error_log nel momento in cui tento di fare login (con symlink esistente in /var/www/locahost/htdocs):

```
[Tue May 03 13:36:48 2011] [error] [client 127.0.0.1] (13)Permission denied: Could not open password file: /etc/nagios/auth.users

[Tue May 03 13:36:48 2011] [error] [client 127.0.0.1] File does not exist: /var/www/localhost/htdocs/favicon.ico, referer: http://localhost/nagios
```

Comunque scusami ma non era errore 500, mi sono sbagliato. Dice semplicemente Internal Server Error ed altre informazioni inutili.

Per FollowSymLinks anche aggiungendolo dopo Option ExecCGI, non cambia nulla.

OK, chiuso il capitolo symlinks, vediamo quello dell'alias:

anche se definito allora non funziona(?)   :Confused: 

Infatti non c'è modo di accedere alla conf di nagios via web, con symlink cancellato (ovviamente).

Togliendo la direttiva IfDefine ora mi ha dato errore su FollowSymLinks, che non è corretto messo lì dove l'avevo messo io, ovvero dopo ExecCGI dopo una virgola.

Ora però non mi fa entrare lo stesso, allora forse c'è un problema in auth.users.

Eppure ho seguito quello che diceva la guida...

----------

## pierino_89

 *fbcyborg wrote:*   

> Dunque, ecco l'errore in error_log nel momento in cui tento di fare login (con symlink esistente in /var/www/locahost/htdocs):
> 
> ```
> [Tue May 03 13:36:48 2011] [error] [client 127.0.0.1] (13)Permission denied: Could not open password file: /etc/nagios/auth.users
> 
> ...

 

Ah, è un banalissimo problema di permessi.

Assicurati che l'utente apache abbia il permesso di leggere quel file. Se le password sono cifrate, non dovrebbero esserci particolari problemi a dare il permesso di lettura a tutti. Dopotutto, anche /etc/passwd ce l'ha.

 *Quote:*   

> 
> 
> Comunque scusami ma non era errore 500, mi sono sbagliato. Dice semplicemente Internal Server Error ed altre informazioni inutili.
> 
> 

 

Sono sinonimi.   :Razz: 

http://it.wikipedia.org/wiki/Elenco_dei_codici_di_stato_HTTP#5xx_Server_Error

 *Quote:*   

> 
> 
> Per FollowSymLinks anche aggiungendolo dopo Option ExecCGI, non cambia nulla.
> 
> 

 

Sembra già che possa seguire i symlink. Era solo un problema di permessi. Evidentemente c'è qualche similare per abilitarlo virtualhost-wide.

 *Quote:*   

> 
> 
> OK, chiuso il capitolo symlinks, vediamo quello dell'alias:
> 
> anche se definito allora non funziona(?)  
> ...

 

Esatto. 

La direttiva IfDefine NAGIOS (che onestamente non so neanche se sia corretta) si aspetta che NAGIOS venga settato da qualche parte, evidentemente nel file di conf del modulo che hai abilitato. Ma dato che i moduli di apache su ogni distro sono differenti, probabilmente non troverai quella variabile da nessuna parte.

 *Quote:*   

> 
> 
> Infatti non c'è modo di accedere alla conf di nagios via web, con symlink cancellato (ovviamente).
> 
> Togliendo la direttiva IfDefine ora mi ha dato errore su FollowSymLinks, che non è corretto messo lì dove l'avevo messo io, ovvero dopo ExecCGI dopo una virgola.
> ...

 

Puoi anche toglierla, tanto se hai cancellato il link non serve a niente.

 *Quote:*   

> 
> 
> Ora però non mi fa entrare lo stesso, allora forse c'è un problema in auth.users.
> 
> Eppure ho seguito quello che diceva la guida...

 

Prova fare come sopra. E ricordati che apache su gentoo è molto diverso da apache su debian/ubuntu. Non so su redhat e derivate come sia. Comunque su debian è impostato in maniera molto più sensata, a mio parere.

----------

## fbcyborg

 *pierino_89 wrote:*   

> 
> 
> Ah, è un banalissimo problema di permessi.
> 
> Assicurati che l'utente apache abbia il permesso di leggere quel file. Se le password sono cifrate, non dovrebbero esserci particolari problemi a dare il permesso di lettura a tutti. Dopotutto, anche /etc/passwd ce l'ha.

 

OK, 

Ho aggiunto l'utente apache al gruppo nagios, ma non ha sortito alcun effetto... 

```
# ls -l /etc/nagios/

totale 68

-rw-r--r-- 1 nagios nagios    26  1 mag 12.17 auth.users

-rw-rw-r-- 1 nagios nagios 11399  1 mag 12.01 cgi.cfg

-rw-rw-r-- 1 nagios nagios 43524  1 mag 12.01 nagios.cfg

drwxrwxr-x 2 nagios nagios  4096  1 mag 12.01 objects

-rw-rw---- 1 nagios nagios  1340  1 mag 12.01 resource.cfg
```

O meglio, adesso mi da un'altro errore (di permessi credo):

Forbidden

You don't have permission to access /nagios/ on this server.

Ovvero:

```
[Tue May 03 14:20:13 2011] [error] [client 127.0.0.1] Directory index forbidden by Options directive: /usr/share/nagios/htdocs/

[Tue May 03 14:20:13 2011] [error] [client 127.0.0.1] File does not exist: /var/www/localhost/htdocs/favicon.ico, referer: http://localhost/nagios/
```

Però mi pare che in quel file 99_nagios3.conf ci sia un allow... o non basta?

Poi c'è sta favicon che non si capisce!

----------

## pierino_89

 *fbcyborg wrote:*   

> 
> 
> ```
> [Tue May 03 14:20:13 2011] [error] [client 127.0.0.1] Directory index forbidden by Options directive: /usr/share/nagios/htdocs/
> 
> ...

 

Bene, stiamo facendo passi avanti.

La favicon ignorala pure, si riferisce al fatto che non ci sia nessuna icona da mostrare sul browser.

L'altro errore invece è più insidioso.

Si riferisce al fatto che non ha il permesso per mostrare l'albero delle directory perché se non hai l'opzione Indexes viene restituito un banalissimo errore 403.

E fin qui è assolutamente normale, il problema è che invece di voler mostrare la directory dovrebbe mostrare il file index.qualcosa (probabilmente .pl), ma evidentemente non ha capito come vanno gestiti i file di perl o chi per lui.

Mi confermi che in quella cartella c'è un file index.pl?

----------

## fbcyborg

A quanto pare no!

```
ls /usr/share/nagios/htdocs/

config.inc.php  docs    includes   main.php  robots.txt  ssi

contexthelp     images  index.php  media     side.php    stylesheets
```

 :Sad: 

----------

## pierino_89

 *fbcyborg wrote:*   

> A quanto pare no!
> 
> ```
> ls /usr/share/nagios/htdocs/
> 
> ...

 Ah, è basato su php!

Ero convinto si basasse su perl, data l'opzione ExecCGI (che a questo punto puoi anche togliere)

Hai installato php? Hai la use php abilitata su apache?  :Razz: 

Ma soprattutto: in /etc/conf.d/apache2 hai "-D PHP5" nella variabile APACHE2_OPTS?

P.S.:

Riassumendo la config di apache relativa a nagios, direi che siamo su una cosa tipo:

```
ScriptAlias /nagios/cgi-bin/ /usr/lib/nagios/cgi-bin/ 

<Directory "/usr/lib/nagios/cgi-bin/"> 

                AllowOverride all 

                Order deny,allow 

                Allow from 127.0.0.0/255.0.0.0

                Allow from 192.168.1.0/255.255.255.0

</Directory>

Alias /nagios /usr/share/nagios/htdocs 

<Directory "/usr/share/nagios/htdocs"> 

                AllowOverride all

                Order deny,allow

                Allow from 127.0.0.0/255.0.0.0

                Allow from 192.168.1.0/255.255.255.0

</Directory> 
```

Ti ho aggiunto anche la parte relativa alla restrizione degli accessi che dicevi non funzionare nel primo post.

----------

## fbcyborg

Cavolo! Con tutte queste macchine virtuali e fisiche  :Smile:  mi sono confuso! Effettivamente non avevo installato PHP! Ero convinto di averlo messo!

Ora la web GUI funziona!

Grazie!  :Smile: 

Ora vedo che ci sono degli errori nell'interfaccia:

It appears as though you do not have permission to view information for any of the hosts you requested...

If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI

and check the authorization options in your CGI configuration file.

Ma comunque devo andare avanti nel setup di Nagios, e comunque devo proseguire con la guida.

----------

## fbcyborg

Eccomi di nuovo, 

stavolta con un problema di Nagios, al livello di comunicazione fra client e server.

Devo collegare un centralino Asterisk (con AsteriskNow CentOS based) al server Nagios che è appunto su Gentoo.

Ho seguito anche in questo caso diverse guide, ufficiali e non, compreso anche un vecchio wiki che è negli archivi ma non riesco proprio a vedere il client dall'interfaccia web di Nagios.

Ho installato nrpe a mano, compilandolo ed ho anche modificato dei file di configurazione, ma niente.

Qualcuno mi potrebbe aiutare a fare un controllo generale su server e client per vedere quale sia il problema?

Per ora ho seguito (facendo un po' un mix) le seguenti guide:

Gentoo System Monitoring with Nagios

Gentoo Wiki Archives - HOWTO_Install_Nagios

Installing NRPE (Nagios Client) on CentOS 5

E poi:

Add Linux host to nagios server

How To Monitor Remote Linux Host using Nagios 3.0

Ho installato nagios-nrpe anche sul server (mi pare sia necessario). Però non capisco dove sto sbagliando.

EDIT: rileggendo la guida ufficiale per quanto riguarda la parte client, sono riuscito a collegare il centralino a Nagios.

----------

