User Tools

Site Tools


doc:appunti:linux:sa:icinga

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:linux:sa:icinga [2017/10/23 17:00] niccolodoc:appunti:linux:sa:icinga [2017/10/23 18:09] – [Performance data e grafici] niccolo
Line 5: Line 5:
 ===== Performance data e grafici ===== ===== Performance data e grafici =====
  
-È possibile sfruttare il meccanismo dei **[[https://www.icinga.com/docs/icinga1/latest/en/perfdata.html|performance data]]** per far generare dei grafici relativi ai servizi monitorati con Icinga.+È possibile sfruttare il meccanismo dei **[[https://www.icinga.com/docs/icinga1/latest/en/perfdata.html|performance data]]** per far generare dei grafici relativi ai servizi monitorati con Icinga. Vediamo ad esempio come generare i grafici relativi al ping, cioè i valori di **Round-Trip Average** e di **Packet Loss**. 
 + 
 +Anzitutto conviene attivare l'analisi dei //performance data// solo sul servizio in questione, verificare ad esempio che il template **generic-service** abbia la direttiva disabilitata. Le direttive sono **process_perf_data** e **action_url**: 
 + 
 +<file> 
 +define service { 
 +    hostgroup_name        ping-servers 
 +    service_description   Ping 
 +    check_command         check_ping!1000.0,20%!3000.0,60% 
 +    process_perf_data     1 
 +    action_url            /rrd4icinga/action_url_graph.php?host=$HOSTNAME$ 
 +    use                   generic-service 
 +
 +</file> 
 + 
 +Vedremo il parametro **action_url** tra breve, per il momento facciamo in modo che esista uno script che riceve i performance data e li memorizzi da qualche parte. Il comando **process-service-perfdata** è definito per default in **/etc/icinga/commands.cfg** e scrive tutti i dati nel file ''/var/cache/icinga/service-perfdata.out''. Noi predisponiamo uno script più sofisticato che alimenta un archivio RRD: 
 + 
 +<file> 
 +define command { 
 +  command_name process-service-perfdata 
 +  command_line /opt/rrd-update "$LASTSERVICECHECK$" "$HOSTNAME$" "$SERVICEDESC$" "$SERVICEPERFDATA$" 
 +
 +</file> 
 + 
 +Il parametro **%%$LASTSERVICECHECK$%%** viene sostituito dal timestamp (i secondi trascorsi dallo Unix Epoch), mentre il parametro **%%$SERVICEPERFDATA$%%** contiene i dati veri e propri, ecco un esempio: 
 + 
 +<code> 
 +rta=32.287998ms;1000.000000;2000.000000;0.000000 pl=0%;20;60;
 +</code> 
 + 
 +Per ogni grandezza abbiamo: **nome**=**valore_unità_di_misura**;**soglia_warning**;**soglia_critica**;**???**. Lo script deve ovviamente gestire tutto il necessario, ad esempio creare l'archivio RRD se questo non esiste, gestire host diversi, ecc. In pratica farà le chiamate necessarie a **rrdtool** passando i parametri **create** o **update** con i necessari valori. 
 + 
 +==== Presentazione del grafico ==== 
 + 
 +La presenza del parametro **action_url** fa comparire una icona (predefinita quella a forma di ingranaggio) accanto al servizio per cui è disponibile il dato. Sarà necessario predisporre una pagina opportuna che generi al volo i grafici a partire dall'archivio RRD. 
 + 
 +Qui un archivio con tutto il necessario: **{{icinga-performance-data-ping-graph.tgz}}**.
doc/appunti/linux/sa/icinga.txt · Last modified: 2017/12/21 11:34 by niccolo