14 item calcolato
Panoramica
Un item calcolato consente di creare un calcolo basato sui valori di alcuni item esistenti. Ad esempio, potresti voler calcolare la media oraria del valore di un item oppure calcolare il valore totale di un gruppo di item. Questo è lo scopo di un item calcolato.
I calcoli possono usare entrambi:
- valori singoli di item individuali
- un filtro complesso per selezionare più item per l'aggregazione (vedi calcoli aggregati per i dettagli)
Gli item calcolati sono un modo per creare origini dati virtuali. Tutti i calcoli sono eseguiti solo da Zabbix server. I valori vengono calcolati periodicamente in base all'espressione aritmetica utilizzata.
I dati risultanti vengono memorizzati nel database di Zabbix come per qualsiasi altro item; vengono salvati sia i valori storici sia quelli di trend e possono essere generati grafici.
Se il risultato del calcolo è un valore float, verrà troncato a un intero se il tipo di informazione dell'item calcolato è Numerico (senza segno).
Inoltre, se non ci sono dati recenti nella cache e non è definito un periodo di interrogazione nella funzione, Zabbix per impostazione predefinita risalirà fino a una settimana nel passato per interrogare il database alla ricerca dei valori storici.
Gli item calcolati condividono la propria sintassi con le espressioni dei trigger. Nei calcoli è consentito il confronto con stringhe. Gli item calcolati possono essere referenziati tramite macro o altre entità, come qualsiasi altro tipo di item.
Per usare gli item calcolati, scegli il tipo di item Calculated.
Campi configurabili
La key è un identificatore univoco dell'item (per host). È possibile creare qualsiasi nome di key usando i simboli supportati.
La definizione del calcolo deve essere inserita nel campo Formula. Non esiste alcuna connessione tra la formula e la key. I parametri della key non vengono utilizzati in alcun modo nella formula.
La sintassi di una formula semplice è:
function(/host/key,<parameter1>,<parameter2>,...)
dove:
| function | Una delle funzioni supportate: last, min, max, avg, count, ecc. |
| host | Host dell'item utilizzato per il calcolo. L'host corrente può essere omesso (ad esempio, come in function(//key,parameter,...)). |
| key | Key dell'item utilizzato per il calcolo. Gli item che restituiscono valori con il tipo di dati binario non sono supportati. |
| parameter(s) | Parametri della funzione, se richiesti. Sono supportati i suffissi di tempo e i suffissi di dimensione della memoria. |
Le macro utente nella formula verranno espanse se utilizzate per fare riferimento a un parametro di funzione, a un parametro di filtro dell'item o a una costante. Le macro utente NON verranno espanse se fanno riferimento a una funzione, al nome dell'host, alla key dell'item, al parametro della key dell'item o all'operatore.
Una formula più complessa può usare una combinazione di funzioni, operatori e parentesi. È possibile usare tutte le funzioni e gli operatori supportati nelle espressioni dei trigger. La logica e la precedenza degli operatori sono esattamente le stesse.
A differenza delle espressioni dei trigger, Zabbix elabora gli item calcolati in base all'intervallo di aggiornamento dell'item, non al ricevimento di un nuovo valore.
Tutti gli item a cui si fa riferimento tramite funzioni di history nella formula dell'item calcolato devono esistere e raccogliere dati. Inoltre, se si modifica la key di un item a cui si fa riferimento, è necessario aggiornare manualmente tutte le formule che usano quella key.
Un item calcolato può diventare non supportato in diversi casi:
- item a cui si fa riferimento
- non viene trovato
- è disabilitato
- appartiene a un host disabilitato
- non è supportato (tranne con la funzione nodata() e gli operatori con valori sconosciuti)
- nessun dato per calcolare una funzione
- divisione per zero
- sintassi errata utilizzata
Esempi di utilizzo
Esempio 1
Calcolo della percentuale di spazio libero su disco in '/'.
Uso della funzione last:
100*last(//vfs.fs.size[/,free])/last(//vfs.fs.size[/,total])
Zabbix prenderà gli ultimi valori per lo spazio libero e totale su disco e calcolerà la percentuale in base alla formula fornita.
Esempio 2
Calcolo della media su 10 minuti del numero di valori elaborati da Zabbix.
Uso della funzione avg:
avg(/Zabbix Server/zabbix[wcache,values],10m)
Si noti che un uso estensivo degli item calcolati con periodi di tempo lunghi può influire sulle prestazioni del server Zabbix.
Esempio 3
Calcolo della larghezza di banda totale su eth0.
Somma di due funzioni:
last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])
Esempio 4
Calcolo della percentuale del traffico in ingresso.
Espressione più complessa:
100*last(//net.if.in[eth0,bytes])/(last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))
Vedi anche: Esempi di calcoli aggregati