====== 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/*''**. Per la visualizzazione dei grafici è necessario installare il pacchetto **libcgi-fast-perl**, che non risulta come dipendenza di munin nel pacchetto Debian 12 Bookworm (è solo raccomandato). ===== 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-perl** 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 ===== Appunti su monitoraggio traffico rete ===== Il grafico **network traffic** 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 da **''/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''**. ===== 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 [[http://www.linuxquestions.org/questions/linux-software-2/iperf-cpu-usage-at-100-a-747813/|post]] e [[http://osdir.com/ml/network.iperf.user/2008-05/msg00001.html|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_.txt|iperf_}}**. Lo script è derivato da quello presente sul sito [[http://munin-monitoring.org/browser/munin-contrib/plugins/network/iperf_|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 [[http://munin-monitoring.org/wiki/plugin-conf.d|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_.txt|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 ===== Monitoraggio servizio Apache ===== Munin fornisce tre plugin per monitorare un processo web server Apache: **apache_accesses**, **apache_processes** e **apache_volume**. Questi sono inclusi nel pacchetto Debian **munin-plugins-core**. Tuttavia Debian (almeno nella versione 11.8 Bullseye) non installa automaticamente la dipendenza dalla libreria Perl **LWP::UserAgent** fornita dal pacchetto **libwww-perl**, che va quindi installato manualmente. Una volta installato il tutto è sufficiente creare i link simbolici: ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume Per verificare se Apache è configurato correttamente per dare accesso alle statistiche, provare ad accedere all'URL specifico, ad esempio con wget: wget -O status.txt "http://localhost/server-status?auto" Per verificare che il plugin funzioni, è sufficiente eseguirlo da riga di comando: /usr/share/munin/plugins/apache_accesses accesses80.value 21617