7 Elementi calcolati

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 per un gruppo di item. È proprio a questo che serve 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 vengono 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 di storico sia quelli di trend ed è possibile generare grafici.

Se il risultato del calcolo è un valore float, verrà troncato a un intero se il tipo di informazione dell'item calcolato è Numeric (unsigned).

Inoltre, se nella cache non sono presenti dati recenti e nella funzione non è definito alcun periodo di interrogazione, Zabbix per impostazione predefinita risalirà fino a una settimana nel passato per interrogare il database alla ricerca di valori storici.

Gli item calcolati condividono la loro sintassi con le espressioni dei trigger. Se hai familiarità con le espressioni dei trigger, puoi considerare gli item calcolati come funzioni che analizzano alcuni valori, ma senza il confronto con una soglia.

Negli item calcolati è consentito il confronto con stringhe. Gli item calcolati possono essere referenziati da macro o da altre entità come qualsiasi altro tipo di item.

Per utilizzare gli item calcolati, scegli il tipo di item Calculated.

Campi configurabili

La key è un identificatore univoco dell'item (per host). Puoi creare qualsiasi nome di key utilizzando 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 nella formula in alcun modo.

La sintassi di una formula semplice è:

function(/host/key,<parameter1>,<parameter2>,...)

dove:

Element Description
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 (cioè come in function(//key,parameter,...)).
key Key dell'item utilizzato per il calcolo.
Gli item che restituiscono valori con tipo di dato binario o JSON data type non sono supportati.
parameter(s) Parametri della funzione, se richiesti.
Sono supportati i suffissi temporali 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 item o a una costante. Le macro utente NON verranno espanse se fanno riferimento a una funzione, al nome host, alla key dell'item, a un parametro della key dell'item o a un operatore.

Una formula più complessa può utilizzare una combinazione di funzioni, operatori e parentesi. Puoi 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 alla ricezione di un nuovo valore.

Tutti gli item a cui fanno riferimento le funzioni di storico nella formula dell'item calcolato devono esistere e raccogliere dati. Inoltre, se modifichi la key dell'item di un item referenziato, devi aggiornare manualmente tutte le formule che utilizzano quella key.

Un item calcolato può diventare non supportato in diversi casi:

  • item referenziato/i
    • non trovato/i
    • disabilitato/i
    • appartenente/i a un host disabilitato
    • non supportato/i (tranne con la funzione nodata() e gli operatori con valori sconosciuti)
  • nessun dato per calcolare una funzione
  • divisione per zero
  • sintassi non corretta utilizzata

Esempi di utilizzo

Esempio 1

Calcolo della percentuale di spazio libero su "/".

Utilizzo della funzione ultimo:

100*ultimo(//vfs.fs.size[/,gratuito])/ultimo(//vfs.fs.size[/,totale])

Zabbix prenderà i valori più recenti per gli spazi su disco liberi e totali e calcolare la percentuale in base alla formula fornita.

Esempio 2

Calcolo di una media di 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 di item calcolati con lunghi periodi di tempo 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]))

Vedere anche: Esempi di calcoli aggregati