Monitoraggio di sistemi con Munin
Installazione Server
Sulla macchina che farà da server web per la monitorizzazione delle altre, e che verrà a sua volta monitorizzata, installare i pacchetti client e server:
sudo apt-get install munin munin-node
Sistemare la configurazione di apache, in modo da accedere a /var/www/munin
Sopo 5 minuti, si avrò il grafico iniziale (tempo per eseguire i cron job).
Installazione altri Client
Il server ha indirizzo ip 192.168.0.9
Il client ha insirizzo ip 192.168.0.250
Sulla macchina client installare:
sudo apt-get install munin-node
Editare qui /etc/munin-node.conf aggiungendo:
allow ^192\.168\.0\.9$ allow ^192\.168\.0\.250$
Sul Server, creare il profilo inserendo in /etc/munin/munin.conf
[client1]
address 192.168.0.250
.....
Sul server aggiungere in /etc/munin/munin-node.conf:
allow ^192\.168\.0\.250$
Su entrambe le macchine riavviare munin-node:
sudo /etc/init.d/munin-node restart
Dopo 5 minuti si avrà il nuovo sistema online.
Abilitazione di un plugin
- I plugin disponibili sono in
/usr/share/munin/plugins
- Comandi generici per i plugin:
- autoconf: dice se il plugin può funzionare
- config: mostra i parametri configurabili
- suggest: mostra come può essere usato il plugin (ad esempio per i plugin che finiscono in "_" dice come è possibile richiamarli)
Ipotizziamo di voler installare il plugin "squid_cache"
- Verificare che il plugin possa essere installato:
sudo /usr/share/munin/plugins/squid_cache autoconf
Se la risposta è
yes
allora il plugin è installabile.
Se invece si ottiene un errore, allora occorre indagare.
Per esempio, è possibile leggere il sorgente del plugin, che di solito contiene istruzioni sul suo utilizzo.
- Verificare se il plugin funziona, cioè se si ottengono dei dati:
sudo /usr/share/munin/plugins/squid_cache Maximum.value 5120000 Current.value 3071472
Abilitare il plugin creando un link in /etc/munin/plugins:
cd /etc/munin/plugins ln -s /usr/share/munin/plugins/squid_cache squid_cache
Verificare anche che il plugin funzioni quando richiamato da munin:
sudo munin-run squid_cache Maximum.value 5120000 Current.value 3071472
Riavviare munin-node per rendere attivo il nuovo plugin:
sudo /etc/init.d/munin-node restart
Forzare una lettura dei dati iniziale, per creare il grafico:
sudo -u munin munin-cron
Il nuovo grafico, magari vuoto, apparirà.
ATTENZIONE: se il link al grafico in testa pagina è in ROSSO, significa che il plugin associato ha dei problemi: o non funziona, o non riceve dati, o è DEI VALORI FUORI LIMITE..
Modifica dei parametri soglia o di configurazione di un plugin
Identificare quale è il parametro da impostare:
sudo /etc/munin/plugins/nomeplugin config
Inserire in /etc/munin/muni.conf nella sezione dell'host considerato:
... nomeplugin.parametro.cosa xx ...
Esempio:
sudo /usr/share/munin/plugins/df config graph_title Filesystem usage (in %) graph_args --upper-limit 100 -l 0 graph_vlabel % graph_category disk graph_info This graph shows disk usage on the machine. _dev_md0.label / _dev_md0.info / (ext3) -> /dev/md0 _dev_md0.warning 92 _dev_md0.critical 98 tmpfs_dev_shm.label /dev/shm tmpfs_dev_shm.info /dev/shm (tmpfs) -> tmpfs tmpfs_dev_shm.warning 92 tmpfs_dev_shm.critical 98
Per cambiare il livello di warning per lo spazio libero, inserire
df._dev_md0.warning 97
Plugin smart_
Il plugin smart fornisce il grafico dei parametri di salute del disco.
Installare smartmontools e configurarlo (vedi wiki)
sudo apt-get install smartmontools
Verificare quali dischi è in grado di gestire:
sudo /usr/share/munin/plugins/smart_ suggest hdc hda
Creare i rispettivi link:
cd /etc/munin/plugins ln -s /usr/share/munin/plugins/smart_ smart_hda ln -s /usr/share/munin/plugins/smart_ smart_hdc '''Attenzione''': non sbagliare nome, altrimenti il plugin non funziona ! Vedere se funzionano: <pre> sudo ./smart_hda Power_Cycle_Count.value 100 Current_Pending_Sector.value 200 Start_Stop_Count.value 100 Offline_Uncorrectable.value 200 Seek_Error_Rate.value 200 Reallocated_Event_Count.value 200 UDMA_CRC_Error_Count.value 200 Reallocated_Sector_Ct.value 200 Power_On_Hours.value 088 Calibration_Retry_Count.value 100 Spin_Up_Time.value 092 Spin_Retry_Count.value 100 Multi_Zone_Error_Rate.value 200 Raw_Read_Error_Rate.value 200 smartctl_exit_status.value 0 sudo ./smart_hdc Spin_Retry_Count.value 252 Reallocated_Event_Count.value 253 Spin_Buzz.value 252 smartctl_exit_status.value 6 Shock_Count_Write_Opern.value 253 Seek_Time_Performance.value 250 Seek_Error_Rate.value 253 Soft_Read_Error_Rate.value 253 Spin_High_Current.value 252 Shock_Rate_Write_Opern.value 253 Multi_Zone_Error_Rate.value 253 Power_Off_Retract_Count.value 253 Current_Pending_Sector.value 253 Run_Out_Cancel.value 253 UDMA_CRC_Error_Count.value 199 Temperature_Celsius.value 253 Load_Cycle_Count.value 253 Hardware_ECC_Recovered.value 253 Power_Cycle_Count.value 252 Start_Stop_Count.value 253 Unknown_Attribute.value 253 Reallocated_Sector_Ct.value 253 Calibration_Retry_Count.value 252 TA_Increase_Count.value 253 Spin_Up_Time.value 252 Read_Channel_Margin.value 253 Offline_Seek_Performnce.value 187 Power_On_Minutes.value 225
Verificare che funzinoni anche con munin-run:
sudo munin-run smart_hda Power_Cycle_Count.value 100 Current_Pending_Sector.value 200 Start_Stop_Count.value 100 ... smartctl_exit_status.value 0 ... sudo munin-run smart_hdc Spin_Retry_Count.value 252 Reallocated_Event_Count.value 253 Spin_Buzz.value 252 ..Power_On_Minutes.value 225
Se non funziona, verificare:
Esiste in /etc/munin/plugin-conf.d/munin-node:
[smart_*] user root group disk
I link dei nomi sono corretti ? Il link si deve chiamare smart_hda e NON smartd_hda.
Plugin squid_*
Seguire le istruzioni generali.
Assicurarsi che squi ascolti su 127.0.0.1:3128
sudo netstat -anp | grep 3128 tcp 0 0 127.0.0.1:3128 0.0.0.0:* LISTEN 25000/(squid) tcp 0 0 192.168.254.254:3128 0.0.0.0:* LISTEN 25000/(squid)
Se non ascolta, il plugin non funziona.
Plugin hddtemp_smartctl
Seguire le istruzioni generali.
Non tutti gli hard disk mostrano come attributo smart la temperatura.
Verificarlo con: sudo smartctl -a /dev/hda | grep 'Current Drive Temperature:\|Temperature_Celsius'
Plugin postfix_mailstats
C'è un errore nel plugin.
Correggere la riga 75 in:
if (!$?)
Seguire le istruzioni generali
Plugin sensors_
Installare il support lm-sensors come indicato in Monitoraggio di temeperature, ventole e voltaggi con lm-sensors, quindi:
Verificare che il plugin funzioni:
sudo /usr/share/munin/plugins/sensors_ autoconf yes
Se così non fosse, non si è configurato bene il supporto lm-sensors
Verificare quali sensori sono misurabili:
sudo /usr/share/munin/plugins/sensors_ suggest fan volt temp
Provarli:
sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_st sudo /etc/munin/plugins/sensors_st Use of uninitialized value in regexp compilation at ./sensors_st line 141.
Questo plugin non va, eliminarlo:
sudo rm /etc/munin/plugins/sensors_st
Creare il link e verificare gli altri secondo le istruzioni generali.
Abilitazione degli alert via email
Qualora un plugin abbia dei valori di warning e critical settati, può avvertire via email.
Inserire in /etc/munin/munin.conf
contacts me
contact.me.command mail -s "Munin notification ${var:host}" user@host.tld
contact.me.always_send warning critical
Riavviare munin-node