Munin: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
3 638 byte aggiunti ,  7 lug 2019
m
template Versioni compatibili (da template Autori e discussione)
Nessun oggetto della modifica
m (template Versioni compatibili (da template Autori e discussione))
 
(28 versioni intermedie di 10 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Debian Etch 4.0<br/>Debian Lenny 5.0<br/>Debian Squeeze<br/>Debian Sid|}}
{{Versioni compatibili|Squeeze|Wheezy|Jessie}}
=Introduzione=
==Introduzione==
Munin è un sistema di monitoraggio di sistema avanzato, facilmente installabile e configurabile che offre una vasta gamma di monitor e supporta la raccolta di informazioni da più macchine.<br/>
Munin è un sistema di monitoraggio di sistema avanzato, facilmente installabile e configurabile che offre una vasta gamma di monitor e supporta la raccolta di informazioni da più macchine.<br/>
(Ringrazio Keltik per avermelo involontariamente mostrato).
(Ringrazio Keltik per avermelo involontariamente mostrato).
Riga 6: Riga 6:
In questa guida vedremo come installarlo, configurandolo per monitorare due macchine: quella su cui è installato il server ed un desktop (in questo caso i dati verranno raccolti solo quando questa macchina sarà accesa).
In questa guida vedremo come installarlo, configurandolo per monitorare due macchine: quella su cui è installato il server ed un desktop (in questo caso i dati verranno raccolti solo quando questa macchina sarà accesa).


=Installazione=
==Installazione==
Il programma è composto da:
Il programma è composto da:
; munin-node : il Client, che gestisce la raccolta di informazioni su una determinata macchina
; munin-node : il Client, che gestisce la raccolta di informazioni su una determinata macchina;
; munin : il Server, che si occupa di elaborare i dati, catalogarli, creare i grafici e le pagine html
; munin : il Server, che si occupa di elaborare i dati, catalogarli, creare i grafici e le pagine HTML.


Per installare il Server (necessario solo sulla macchina che raccoglierà i dati):
Per installare il Server (necessario solo sulla macchina che raccoglierà i dati):
<pre>
<pre>
# apt-get install munin
# apt-get install munin munin-java-plugins munin-libvirt-plugins munin-plugins-extra apache2
</pre>
</pre>


Per installare il client (su tutte le macchine che vogliamo monitorare):
Per installare il client (su tutte le macchine che vogliamo monitorare):
<pre>
<pre>
# apt-get install munin-node
# apt-get install munin-node munin-java-plugins munin-libvirt-plugins munin-plugins-extra
</pre>
</pre>


Durante l'installazione non è richiesto l'intervento dell'utente.
Durante l'installazione non è richiesto l'intervento dell'utente.


==Configurazione==
===Node===
La configurazione dei Client (o ''nodi'') è estremamente semplice ed automatizzata: è presente un comando che controlla la macchina alla ricerca di servizi monitorabili attraverso delle regole predefinite. È d'obbligo evidenziare il numero di monitor presenti, che spaziano dalla statistiche di sistema ''base'' (CPU, Memoria, [[Swap]]) fino a quelle dei servizi (MySql, Postfix, NFS, Apache, ecc).


=Configurazione=
Su ogni ''nodo'' provvediamo a lanciare lo strumento di configurazione automatico, così da rilevare tutti i servizi/parametri di cui è possibile tenere traccia:
==Node==
La configurazione dei Client (o ''nodi'') è estemamente facile ed automatizzata: è presente un comando che controlla la macchina alla ricerca di servizi monitorabili attraverso delle regole predefinite. È d'obbligo evidenziare il numero di monitor presenti, che spaziano dalla statistiche di sistema ''base'' (CPU, Memoria, [[Swap]]) fino a quelle dei servizi (MySql, Postfix, NFS, Apache, ...).
 
Su ogni ''nodo'' provvediamo a lanciare il configuratore automatico, così da rilevare tutti i servizi/parametri di cui è possibile tenere traccia:
<pre>
<pre>
# munin-node-configure
# munin-node-configure
Riga 115: Riga 114:
</pre>
</pre>


Per le macchine diverse da quella che ospita il server, bisogna modificare le impostazioni di accesso per consentire le connessioni da parte di quest'ultimo. Per fare questo apriamo con un editor il file '''/etc/munin/munin-node.conf''', ed aggiungiamo la seguente riga alla fine del file:
Per le macchine diverse da quella che ospita il server, bisogna modificare le impostazioni di accesso per consentire le connessioni da parte di quest'ultimo. Per fare questo apriamo con un editor il file <code>'''/etc/munin/munin-node.conf'''</code>, ed aggiungiamo la seguente riga alla fine del file:
<pre>
<pre>
allow ^192\.168\.0\.1$
allow ^192\.168\.0\.1$
Riga 121: Riga 120:
Il commento poco sopra il punto in cui abbiamo inserito questa stringa ci ricorda che si tratta di espressioni regolari, di conseguenza è necessario anteporre un backslash prima dei punti.
Il commento poco sopra il punto in cui abbiamo inserito questa stringa ci ricorda che si tratta di espressioni regolari, di conseguenza è necessario anteporre un backslash prima dei punti.


Per applicare le modifica apportate, riavviamo ''munin-node'':
Per applicare le modifica apportate, riavviamo <code>munin-node</code>:
<pre>
<pre>
# /etc/init.d/munin-node restart
# /etc/init.d/munin-node restart
</pre>
</pre>


===Moduli===
====Moduli====
Munin sfrutta un' architettura a plug-in per monitorare le varie componenti di sistema. Come abbiamo visto nel paragrafo precedente (vedi l' output di ''munin-node-configure'') ce ne sono a disposizione moltissimi.
Munin sfrutta un'architettura a plug-in per monitorare le varie componenti di sistema. Come abbiamo visto nel paragrafo precedente (vedi l'output di <code>munin-node-configure</code>) ce ne sono a disposizione moltissimi.


Munin-node altro non è che uno script che si preoccupa di lanciare i vari plug-ins presenti all' interno della cartella '''/etc/munin/plugins'''. Notiamo subito che all' interno di questa directory non troviamo i veri e propri moduli, ma del link simbolici ad essi:
Munin-node altro non è che uno script che si preoccupa di lanciare i vari plug-in presenti all'interno della cartella <code>'''/etc/munin/plugins'''</code>. Notiamo subito che all'interno di questa directory non troviamo i veri e propri moduli, ma del link simbolici ad essi:
<pre>
<pre>
# ls -l /etc/munin/plugins |more
# ls -l /etc/munin/plugins |more
Riga 139: Riga 138:
[...]
[...]
</pre>
</pre>
Quindi, per abilitare e/o disabilitare i moduli, è sufficiente creare/cancellare i links simbolici a /usr/share/munin/plugins presenti in /etc/munin/plugins.
Quindi, per abilitare e/o disabilitare i moduli, è sufficiente creare/cancellare i link simbolici a <code>/usr/share/munin/plugins</code> presenti in <code>/etc/munin/plugins</code>.


Se ad esempio voglio abilitare i moduli relativi ad '''apt''', sarà sufficiente il comando:
Se ad esempio voglio abilitare i moduli relativi ad '''apt''', sarà sufficiente il comando:
Riga 145: Riga 144:
# ln -s /usr/share/munin/plugins/apt* /etc/munin/plugins
# ln -s /usr/share/munin/plugins/apt* /etc/munin/plugins
</pre>
</pre>
e, dopo aver creato i links:
e, dopo aver creato i link:
<pre>
<pre>
/etc/init.d/munin-node restart
# /etc/init.d/munin-node restart
</pre>
</pre>


Nel caso si voglia testare l'effettivo funzionamento dei un plugin, si può sfruttare il comando <tt>munin-run</tt> che lancia lo script coi permessi effettivi con cui verrà richiamato da munin.
Nel caso si voglia testare l'effettivo funzionamento di un plugin, si può sfruttare il comando <code>munin-run</code> che lancia lo script coi permessi effettivi con cui verrà richiamato da munin.
Per esempio, si può testare il corretto funzionamento del plugin <tt>postfix_mailstats</tt> con:  
Per esempio, si può testare il corretto funzionamento del plugin <code>postfix_mailstats</code> con:  
<pre>
<pre>
# munin-run postfix_mailstats
# munin-run postfix_mailstats
</pre>
</pre>
Il comando, in questo caso, potrebbe dare errore (o restituire un valore pari a ''U'') per via dei permessi insufficienti: è necessario essere root per poter accedere allo spool di posta e 'contare' i messaggi presenti. Per ovviare a questo problema è sufficiente modificare il file <tt>/etc/munin/plugin-conf.d/plugins.conf</tt> aggiungendo la seguente riga:
Il comando, in questo caso, potrebbe dare errore (o restituire un valore pari a <code>U</code>) per via dei permessi insufficienti: è necessario essere root per poter accedere allo spool di posta e 'contare' i messaggi presenti. Per ovviare a questo problema è sufficiente modificare il file <code>/etc/munin/plugin-conf.d/plugins.conf</code> aggiungendo la seguente riga:
<pre>
<pre>
[postfix_mailstats]
[postfix_mailstats]
Riga 162: Riga 161:
che indica, a munin, di eseguire lo script coi privilegi di root.
che indica, a munin, di eseguire lo script coi privilegi di root.


===Apache, un caso particolare===
====Apache, un caso particolare====
Parliamo un po' più dettagliatamente dei moduli relativi ad Apache: per abilitarli, infatti, non è sufficiente creare i links simbolici, ma abbiamo bisogno anche di metter mano alla configurazione di Apache.
Parliamo un po' più dettagliatamente dei moduli relativi ad Apache: per abilitarli, infatti, non è sufficiente creare i link simbolici, ma abbiamo bisogno anche di metter mano alla configurazione di Apache.


Per monitorare Apache, Munin ha bisogno che mod_status venga caricato da httpd con la direttiva "ExtendedStatus On". In Debian mod_status per Apache viene caricato di default, per cui dobbiamo solo preoccuparci di fare un piccolo aggiustamento alla sezione che lo riguarda.
Per monitorare Apache, Munin ha bisogno che <code>mod_status</code> venga caricato da httpd con la direttiva <code>ExtendedStatus On</code>. In Debian <code>mod_status</code> per Apache viene caricato di default, per cui dobbiamo solo preoccuparci di fare un piccolo aggiustamento alla sezione che lo riguarda.


Ecco come dobbiamo impostare in httpd.conf la sezione di mod_status:
Ecco come dobbiamo impostare in <code>httpd.conf</code> la sezione di <code>mod_status</code>:
<pre>
<pre>
<IfModule mod_status.c>
<IfModule mod_status.c>
Riga 176: Riga 175:
</IfModule>
</IfModule>
</pre>
</pre>
In questo modo munin può interrogare Apache direttamente tramite il protocollo http.
In questo modo munin può interrogare Apache direttamente tramite il protocollo HTTP.


Per verificare che mod_status sia effettivamente in funzione è sufficiente puntare il nostro browser all' indirizzo http://localhost/server-status.
Per verificare che <code>mod_status</code> sia effettivamente in funzione è sufficiente puntare il nostro browser all'indirizzo http://localhost/server-status.


{{box|Nota sulla sicurezza|E' bene aggiungere alcune istruzioni relative alla sicurezza nella nostra configurazione di mod_status, in modo da renderlo accessibile unicamente attraverso il nostro indirizzo ip locale (127.0.0.1). per fare questo possiamo inserire al' interno dei tags <location> e </location>, subito al di sotto di "SetHandler server-status" queste istruzioni:
{{box|Nota sulla sicurezza|È bene aggiungere alcune istruzioni relative alla sicurezza nella nostra configurazione di <code>mod_status</code>, in modo da renderlo accessibile unicamente attraverso il nostro indirizzo IP locale (127.0.0.1). per fare questo possiamo inserire all'interno dei tag <code><location></code> e <code></location></code>, subito al di sotto di <code>SetHandler server-status</code> queste istruzioni:
<pre>
<pre>
Order Deny,Allow
Order Deny,Allow
Riga 186: Riga 185:
     Allow from 127.0.0.1
     Allow from 127.0.0.1
</pre>}}
</pre>}}
Riavviamo apache:
Riavviamo Apache:
<pre>
<pre>
# apachectl graceful
# apachectl graceful
Riga 195: Riga 194:
</pre>
</pre>


==Server==
===Server===
La configurazione di defalut del server è più che sufficiente per un utilizzo normale di questo. Utilizza la directory '''/var/www/munin/''', in cui inserisce tutte le pagine relative ai computer da monitorare. Questa directory, quindi, dovrà essere accessibile in scrittura dall'utente '''munin''', ed in lettura dall'utente '''www-data''' (supponendo l'utilizzo di apache come webserver per visualizzare le statistiche). In particolare controlliamo che la directory '''/var/www''' abbia i permessi di esecuzione per l'utente ''nobody''.
La configurazione di default del server è più che sufficiente per un utilizzo normale di questo. Utilizza la directory <code>'''/var/www/munin/'''</code>, in cui inserisce tutte le pagine relative ai computer da monitorare. Questa directory, quindi, dovrà essere accessibile in scrittura dall'utente '''munin''', ed in lettura dall'utente '''www-data''' (supponendo l'utilizzo di Apache come webserver per visualizzare le statistiche). In particolare controlliamo che la directory <code>'''/var/www'''</code> abbia i permessi di esecuzione per l'utente ''nobody''.
 
==== Debian Squeeze ====
A partire da Debian Squeeze la configurazione di Munin richiede qualche passaggio aggiuntivo.
<br/>
Innanzitutto dobbiamo tenere a mente che la directory utilizzata è diventata <code>'''/var/cache/munin/www'''</code> e che deve avere i corretti permessi:
<pre>
# chown -R munin:www-data /var/cache/munin/www/
</pre>
Se intendiamo visualizzare i grafici di Munin da una macchina diversa da localhost dobbiamo anche modificare il file:
<pre>
# nano /etc/munin/apache.conf
</pre>
e cambiare la sezione
<pre>
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
        Order allow,deny
        Allow from localhost 127.0.0.0/8 ::1
</pre>
in qualcosa di simile a:
<pre>
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
        Order allow,deny
        Allow from localhost 127.0.0.0/8 ::1
        Allow from 192.168.1.0/24
</pre>
dove ovviamente <code>192.168.1.0</code> corrisponde al nostro indirizzo di rete.<br/>
Ricordarsi di eseguire:
<pre># /etc/init.d/apache reload</pre>
per rendere effettive le modifiche.
 
==== Debian Jessie ====
La versione di Apache è la 2.4.x e il controllo degli accessi Rule-Based prevede una configurazione differente.
 
<pre>
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
  Require all granted
    Require ip 192.168.1.0/24
    ..........
</Directory>
</pre>
vedere anche: [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]] e [[Apache2: proteggere directory mediante autenticazione]]


===Aggiunta di Client===
====Aggiunta di Client====
La configurazione del server è gestita tramite un file: '''/etc/munin/munin.conf'''.
La configurazione del server è gestita tramite un file: <code>'''/etc/munin/munin.conf'''</code>.


La sezione che a noi interessa è l'ultima, dove vengono raccolti i dati dei ''nodi'' da monitorare. Ogni blocco rappresentate un ''nodo'', nel file di configurazione, ha la seguente struttura:
La sezione che a noi interessa è l'ultima, dove vengono raccolti i dati dei ''nodi'' da monitorare. Ogni blocco rappresentate un ''nodo'', nel file di configurazione, ha la seguente struttura:
Riga 209: Riga 252:


I parametri e le opzioni descritte hanno il seguente significato:
I parametri e le opzioni descritte hanno il seguente significato:
; nome_del_modulo : indica il nome con cui verrà rappresentato il ''nodo'' (solo se ''use_node_name'' è ''yes''). Munin raccoglie i nodi per domini di secondo livello, in una struttura ad albero.
; <code>nome_del_modulo</code> : indica il nome con cui verrà rappresentato il ''nodo'' (solo se <code>use_node_name</code> è <code>yes</code>). Munin raccoglie i nodi per domini di secondo livello, in una struttura ad albero.
; address <indirizzo_del_nodo> : indica l'indirizzo (IP o URL) tramite il quale raggiungere il ''nodo''.
; <code>address <indirizzo_del_nodo></code> : indica l'indirizzo (IP o URL) tramite il quale raggiungere il ''nodo''.


Riporto un esempio di configurazione per il monitoraggio di due macchine:
Riporto un esempio di configurazione per il monitoraggio di due macchine:
Riga 223: Riga 266:
</pre>
</pre>


I dati contenuti in '''/var/www/munin''' sono aggionati tramite il cron '''/etc/cron.d/munin''', esattamente ogni 5 minuti.
I dati contenuti in <code>'''/var/www/munin'''</code> sono aggiornati tramite il cron <code>'''/etc/cron.d/munin'''</code>, esattamente ogni 5 minuti.


== Autenticazione ==
L'unico problema di Munin è che le nostre statistiche sono visibili a tutti. Occorre quindi prendere qualche precauzione.
<br/>
Abilitiamo innanzitutto il modulo <code>auth_digest</code> di Apache, per gestire le Digest Authentication, un metodo più sicuro che evita di trasmettere in chiaro la password:
<pre>
# a2enmod auth_digest
</pre>
Quindi ricarichiamo la configurazione di Apache:
<pre>
# /etc/init.d/apache2 force-reload
</pre>
Ora che Apache può gestire un'autenticazione sicura dobbiamo impostare un utente e una password per Munin:
<pre>
# htdigest -c /var/cache/munin/www/.htpasswd munin munin
</pre>
Ci verrà richiesta una password per l'utente "munin" appena creato; digitiamola due volte per conferma.<br/>
A questo punto non ci resta che modificare il file che definisce il Virtual Host di Apache per Munin, abilitando l'autenticazione digest:
<pre>
# nano /etc/munin/apache.conf
</pre>
e aggiungendo le righe seguenti tra i TAG <code><Directory />....</Directory></code>:
<pre>
<Directory />
      ...
     
      #Autenticazione
      AuthType Digest
      AuthName "munin"
      AuthUserFile  /var/www/munin/.htpasswd
      require valid-user
</Directory>
</pre>
Infine controlliamo l'attuale configurazione di Apache e riavviamolo:
<pre>
# apache2ctl -t
Syntax OK
# /etc/init.d/apache2 force-reload
</pre>


==Conclusioni==
==Conclusioni==
Riga 230: Riga 311:


==Bookmark==
==Bookmark==
[http://www.linpro.no/projects/munin/ Home Page del progetto]
[http://munin-monitoring.org/ Home Page del progetto]
[[Categoria:Server]][[Categoria:Networking]][[Categoria:Sicurezza]]
<br/>
<br/>
 
 
{{Autori
|Autore = [[Utente:MaXeR|MaXeR]]
|Estesa_da =
:[[Utente:Ferdybassi|Ferdybassi]] 20:55, 4 apr 2011 (CEST)
|Verificata_da=
:[[Utente:porkyhttp|porkyhttp]] 17:04, 06 mag 2012 (CEST)
:People 21:04, 05 mag 2012 (CEST)
:[[Utente:Ferdybassi|Ferdybassi]] 16:19, 21 mag 2012 (CEST)
:[[Utente:nydebianized|nydebianized]] 07:12, 12 set 2015 (CEST)
|Numero_revisori=4
}}
 
[[Categoria:Monitoraggio]]
3 581

contributi

Menu di navigazione