Differences between revisions 3 and 4
Revision 3 as of 2022-07-11 15:15:56
Size: 9417
Editor: Kurgan
Comment:
Revision 4 as of 2022-07-12 10:26:58
Size: 9670
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 164: Line 164:



=== Plugin per Apcupsd ===

Il plugin per apcupsd esiste ma non viene riconosciuto di default. Per attivarlo è sufficiente eseguire:

 {{{
ln -s /usr/share/munin/plugins/apc_nis /etc/munin/plugins/apc_nis
}}}

E poi riavviare munin-node

Munin

Munin e` un sistema di monitoraggio "a lungo termine". Non e` realtime, legge i suoi valori ogni 5 minuti, e quindi non e` detto che sia adatto a ogni necessita`. La sua forza e` che permette, sul lungo termine (ore o giorni) di visualizzare l'andamento di moltissimi parametri delle macchine monitorate, permettendo cosi` di vedere se ci sono dei pattern riconoscibili.

Munin e` composto di un "server", ovvero il computer che raccoglie e visualizza i dati (su una pagina web), e di uno o piu` "nodi", ovvero i computer che vengono monitorati. Per monitorare un singolo computer e` possibile (e necessario) installare il server e il nodo sullo stesso computer.

Come purtroppo capita fin troppo spesso, la documentazione di Munin non e` proprio il massimo.

Questa guida e` basata su Debian 11 Bullseye

Installazione di un server e di un nodo sullo stesso host

  • Installiamo Munin (completo) con il comando
    aptinstall munin
  • Oppure, per l'ultima versione, usiamo i backports:
    apt -t bullseye-backports install munin
  • Installiamo apache2 con i moduli necessari a Munin:
    apt install apache2 libcgi-fast-perl libapache2-mod-fcgid

Configurazione di Munin per generare pagine web dinamiche

La configurazione che vi mostro qui e` fatta per generare dinamicamente i grafici e le pagine web. Qui ci sta una piccola spiegazione: Munin puo` generare delle pagine web (e relativi grafici) ogni 5 minuti a mezzo di uno script in cron, oppure puo` limitarsi a raccogliere i dati ogni 5 minuti, e generare le pagine web e i grafici dinamicamente quando si accede alle pagine web stesse per visualizzarle. E` logico che nel primo caso la visualizzazione delle pagine web sara` istantanea, a scapito pero` di dover consumare tempo macchina per rigenerare i grafici ogni 5 minuti anche se nessuno li visualizzera` per giorni o mesi. Nel secondo caso invece la visualizzazione delle pagine richiedera` risorse, pero` ridurremo il carico nel processo di raccolta dei dati che gira ogni 5 minuti. Quale delle due soluzioni sia la migliore non lo so, sinceramente.

La configurazione base di Munin (/etc/munin/munin.conf) è quasi tutta commentata. La lasciamo stare così com'è e creiamo delle config dentro a /etc/munin/munin.conf.d per fare le nostre modifiche.

  • Creare un file dentro /etc/munin/munin.conf.d con un nome che vogliamo noi, tipo, che so, "munin-local.conf" e ci mettiamo dentro le nostre configurazioni:

    # attivo la parte CGI per generare i grafici solo quando si visita la pagina web
    html_strategy cgi
    graph_strategy cgi
    
    # contatti email, ovvero "a chi mando le mail se ci sono problemi"
    contacts kurgan
    contact.kurgan.command mail -s "Munin notification ${var:host}" il_mio_indirizzo@dominio.it
    contact.kurgan.always_send critical

Configurazione di Apache

Apache può servire le pagine di Munin in modo dinamico o statico. La configurazione cambia di poco, e le modifiche vanno fatte dentro al file /etc/munin/apache24.conf.

In questo file occorre modificare un paio di cose: prima di tutto da quali host possiamo accedere (di default solo localhost) e poi se vogliamo usare la generazione in cron oppure dinamica delle pagine. Quest'ultima config andrà ovviamente di pari passo con quello che abbiamo scelto in munin.conf e in munin.conf.d prima.

* Per abilitare l'accesso per esempio dalla rete 10.1.1.0/24 dovremo sostituire le due occorrenze di Require local con Require ip 10.1.1.0/24 * Per passare dalla modalità cron a quella CGI dinamica andiamo in fondo e scambiamo i commenti sulle righe #Alias /munin /var/cache/munin/www e ScriptAlias /munin /usr/lib/munin/cgi/munin-cgi-html (commentiamo la prima e scommentiamo la seconda) * Diciamo ad Apache di leggere la config di Munin, facendo un link come segue: ln -s /etc/munin/apache24.conf /etc/apache2/sites-enabled/munin.conf * Facciamo poi un restart di Munin e di Apache

Fatta questa configurazione, si puo` accedere alla pagine web di Munin all'indirizzo http://hostname/munin/

Vale la pena di notare che non supportiamo https in questa configurazione molto di base, e che se avete Apache con altre config piu` o meno complesse può essere che dobbiate modificare le cose per incastrare tutto assieme.

Aggiungere un host al server Munin

Per default il server dove abbiamo appena installa Munin provvede a monitorare sè stesso, usando la config che si trova in /etc/munin/munin.conf, in particolare il pezzo che dice:

  • [localhost.localdomain]
        address 127.0.0.1
        use_node_name yes

Ovviamente noi possiamo (e dobbiamo?) creare nuovi host nella config, dopo aver installato il "munin-node" sui medesimi. La cosa sensata è creare le config dentro a /etc/munin/munin.conf.d, una per host. (o anche una per gruppo di host, dipende quanti ne abbiamo)

Questo è un esempio di config per due host:

  • # I miei host.
    # Il primo e` localhost, di fatto, pero` e` indicato con il nome e non come localhost, per mia comodita`.
    [test.kurgan.org]
        address 10.1.1.123
        df._dev_md2.warning 97
        df._dev_md2.critical 99
        exim_mailstats.graph_period minute
    #    apcupsd_ww.timeleft.warning 0:30
    #    apcupsd_ww.timeleft.critical 0:30
    
    # Questo, che e` commentato, e` un altro host (remoto) che posso aggiungere al mio server in modo che venga
    # monitorato anche esso.
    #[calimero.kurgan.org]
    #    address calimero.kurgan.org
    #    exim_mailstats.graph_period minute

Configurazione di un host remoto che vogliamo monitorare

  • Installiamo sul nostro host da monitorare il pacchetto munin-node

    apt -t bullseye-backports install munin-node
  • Configuriamo il nodo per accettare le connessioni dal nostro server, modificando /etc/munin/munin-node.conf e indicando l' indirizzo ip del server alla voce "allow" oppure "cidr_allow", come e` spiegato nei commenti del file stesso. Ovviamente occorre ricordarsi di aprire la porta 4949/tcp sul firewall del nodo.

    allow ^5\.2\.3\.1$
  • Riavviamo il servizio munin-node
  • Apriamo sul firewall la porta 4949 in ingresso dal server Munin (ricordiamo che il server chiama il nodo, non viceversa)
  • Ora sul server creiamo una configurazione per il nostro nuovo host da monitorare. Per esempio possiamo creare il file /etc/munin/munin-conf.d/host-kurgan.org-mail.conf e metterci dentro la nostra config:

    [mail.kurgan.org]
        address X.X.X.X
        use_node_name yes
        exim_mailstats.graph_period minute
  • Riavviamo Munin sul server per fargli caricare il nuovo nodo, e aspettiamo 5 minuti perché lo interroghi e lo mostri nell'interfaccia web.

Gestire i Plugin (su ogni host da monitorare)

Ogni host da monitorare, ovvero quelli dove abbiamo installato munin-node, usa dei plugin per raccogliere i dati dal sistema su cui e` installato. Questi plugin vanno abilitati o disabilitati linkandoli dentro a /etc/munin/plugins e possono essere configurati in diversi modi. Per vedere quali plugin possiamo abilitare su ogni nodo, possiamo affidarci a un automatismo molto comodo. Purtroppo questo non funziona con tutti i plugin. Ce ne sono molti che vanno abilitati a mano, perche` non sono in grado di essere selezionati automaticamente.

Attivare e disattivare i plugin

Per verificare quali plugin possiamo abilitare (e quali sono abilitati o meno) in modo automatico possiamo usare il comando

  • munin-node-configure --suggest

Se vogliamo automatizzare la creazione dei link per l'abilitazione dei plugins che ci sono appena stati suggeriti dal comando precedente, possiamo usa il comando

  • munin-node-configure --suggest --shell

il quale mostra in output una serie di comandi di shell (che sono poi una serie di "ln -s") che possiamo eseguire in sequenza per attivare i plugin suggeriti.

Se vogliamo disabilitare alcuni plugin, possiamo farlo semplicemente cancellando i link relativi da dentro a /etc/munin/plugins e riavviando munin-node. Ha senso farlo per i plugin che malfunzionano o per quelli non necessari, per evitare di sovraccaricare munin inutilmente. Per esempio il plugin "smart" che legge i dati SMART dai dischi non funziona per i dischi SCSI o SAS, per cui non ha senso tenerlo abilitato su questo tipo di dischi.

Se vogliamo abilitare a mano alcuni plugin, possiamo farlo creando un link al plugin dentro a /etc/munin/plugins e riavviando munin-node. E` possibile (molto probabile) che i plugin che abilitiamo a mano debbano essere configurati.

Configurare i plugin

Uno dei sistemi piu` sensati per configurarli e` creando dei files con nomi arbitrari (ma se li creiamo con un nome simile o uguale a quello del plugin che vogliamo configurare e` meglio) dentro alla directory /etc/munin/plugin-conf.d. In questa directory c'e` gia` un file installato che contiene la configurazione di diversi plugin "standard".

Testare i plugin

Dopo aver abilitato un plugin posso testarlo per vedere se da` un output o se da` errori. Per testarlo eseguo:

  • munin-run <nome del plugin>

Nel funzionamento normale i plugin devono dare un output testuale che mostra i dati raccolti, e ovviamente non devono dare errori.

Plugin per Apcupsd

Il plugin per apcupsd esiste ma non viene riconosciuto di default. Per attivarlo è sufficiente eseguire:

  • ln -s /usr/share/munin/plugins/apc_nis /etc/munin/plugins/apc_nis

E poi riavviare munin-node

LinuxDebian/Munin (last edited 2022-07-12 11:03:23 by Kurgan)