User Tools

Site Tools


doc:appunti:linux:sa:munin

This is an old revision of the document!


Munin

Installare il pacchetto Debian munin che fornisce le funzioni di nodo Munin master, altri host possono essere semplicemente satelliti (installando il pacchetto munin-node) dell'unico master.

L'installazione predefinita Debian imposta una alias /munin nel web server Apache, ma l'accesso è ristretto a 127.0.0.1. Modificare /etc/munin/apache.conf e allargare i permessi per la directory /var/cache/munin/www e le location /munin-cgi/*.

Plugin

Creare dei link in /etc/munin/plugins/ ai plugin richiesti che risiedono in /usr/share/munin/plugins/. A seconda dei plugin attivi potrebbero essere necessari altri pacchetti, ad esempio:

  • libdbi-per e libdbd-pg-perl per il plugin postgres_streaming_

Permessi

I vari plugin vengono eseguiti solitamente con utenti non privilegiati, questo potrebbe causare dei problemi. Ad esempio il plugin mailman non riesce a leggere i file di log (vedere /var/log/munin/munin-node.log):

Can't open /var/log/mailman/post for reading: Permission denied at /etc/munin/plugins/mailman line 109.

L'utente nobody.munin infatti non può accedere alla directory:

drwxrws--- 2 root list 4096 Jan  4 06:25 /var/log/mailman

Per modificare i permessi è sufficiente creare un file in /etc/munin/plugin-conf.d/local con:

[mailman]
group list

Aggiungere un'interfaccia di rete

Per aggiungere il monitoraggio di una scheda di rete (es. eth2):

cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/if_ if_eth2

C'è uno script che suggerisce quali sono le schede di rete disponibili:

export MUNIN_LIBDIR=/usr/share/munin
/usr/share/munin/plugins/if_ suggest
tun3
eth2
tun2
eth1
tun1
eth0

Dopo il cambiamento riavviare il servizio munin-node.

Monitoraggio latenza

Il pacchetto munin-plugins-core fornisce il plugin /usr/share/munin/plugins/ping_, per attivarlo con le opzioni predefinite e misurare la latenza verso un host remoto è sufficiente creare un link simbolico:

ln -s /usr/share/munin/plugins/ping_ /etc/munin/plugins/ping_remote.server.org

Il plugin è scritto in Bash ed utilizza l'espansione dei parametri con valore predefinito per modificare il proprio comportamento. Ad esempio ping_args contiene gli argomenti passati al comando ping ed ha valore predefinito -c 2. Per passare valori diversi è possibile creare un file di configurazione /etc/munin/plugin-conf.d/ping_ che contiene ad esempio:

[ping_*]
env.ping_args      -c 5

[ping_remote.server.org]
env.ping_args      -c 10

L'utilizzo del carattere jolly consente di impostare dei parametri validi per tutti i plugin che non hanno una configurazione specifica.

Monitoraggio banda con iperf

FIXME ATTENZIONE: Attualmente (Debian Wheezy 7.3) questa soluzione non è usabile! Pare che ci sia un bug con iperf 2.0.5 in modalità daemon: dopo qualche tempo l'utlizzo della CPU sale al 100%, anche se non ci sono client connessi. Il problema è stato riscontrato in modalità TCP. Vedere ad esempio questo post e quest'altro. FIXME

Con iperf è possibile monitorare la larghezza di banda TCP o UDP, con Munin è possibile trasformare queste misure in grafico.

iperf funziona in modalità client/server, normalmente sulla porta 5001/TCP. Lato server, dopo aver installato l'omonimo pacchetto Debian, è necessario far partire il demone. Lo script start/stop non è fornito, ma utilizzando il generico /etc/init.d/skeleton lo si crea facilmente.

Per testare il funzionamento, sul client si può eseguire:

iperf -c test.server.org
------------------------------------------------------------
Client connecting to test.server.org, TCP port 5001
TCP window size: 20.4 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.10 port 39376 connected with 192.168.33.46 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-12.2 sec  1.25 MBytes   860 Kbits/sec

Per agganciare un grafico Munin sul test iperf si crea un plugin apposito, di nome iperf_. Lo script è derivato da quello presente sul sito munin-monitoring.org, ma è stato reso parametrico sulla durata e sulla scalatura del grafico.

Non essendo pacchettizzato Debian lo possiamo salvare in /usr/local/share/munin/plugins/iperf_. Per attivarlo è sufficiente creare questo link simbolico:

ln -s /usr/local/share/munin/plugins/iperf_ /etc/munin/plugins/iperf_test.server.org

ATTENZIONE L'esecuzione del plugin deve avere una durata limitata, altrimenti viene ucciso da Munin e l'output non viene ricevuto nè il grafico generato. Il limite di esecuzione predefinito è 10 secondi, nella configurazione in plugin-conf.d è possibile specificare un valore timeout diverso.

Per configurare il plugin impostando il tempo di esecuzione e la scalatura del grafico si crea /etc/munin/plugin-conf.d/iperf_ con:

[iperf_test.server.org]
env.iperf_time    10
env.upper_limit   1500000
timeout           30

Monitoraggio banda con nuttcp

Considerato il problema di iperf (vedi paragrafo sopra), si è provato con nuttcp. Anche questo funziona in tecnologia client/server, con impostazione predefinita sulla porta 5000 e 5001 TCP.

Sul server si installa l'omonimo pacchetto Debian e si crea uno script start/stop opportuno.

Sul client si configura un plugin per Munin nuttcp_ con link simbolico come visto sopra. Quindi si crea un file di configurazione /etc/munin/plugin-conf.d/nuttcp_:

[nuttcp_test.server.org]
env.nuttcp_time   15
env.upper_limit   1500000
timeout           30

Appunti su monitoraggio traffico rete

Il grafico mostra il traffico:

  • upload traffico trasmesso, positivo (generato dall'interfaccia)
  • download traffico ricevuto, negativo

Il plugin che effettua la misurazione non utilizza snmpd, ma va direttamente a leggere i valori di /sys/class/net/{interface}/statistics/{tx|rx}_bytes.

I dati rrd (byte rx/tx) sono memorizzati nel file /var/lib/munin/localdomain/localhost.localdomain-if_{interface}-{up|down}-d.rrd.

doc/appunti/linux/sa/munin.1412934462.txt.gz · Last modified: 2014/10/10 11:47 by niccolo