14 item calcolato

Panoramica

Un item calcolato consente di creare un calcolo basato sui valori di alcuni item esistenti. Ad esempio, è possibile calcolare la media oraria del valore di un item oppure il valore totale per un gruppo di item. Questo è lo scopo di un item calcolato.

I calcoli possono utilizzare:

  • singoli valori di singoli item
  • un filtro complesso per selezionare più item da aggregare (vedere calcoli aggregati per ulteriori informazioni)

Gli item calcolati consentono di creare origini dati virtuali. Tutti i calcoli vengono eseguiti esclusivamente dal server Zabbix. I valori vengono calcolati periodicamente in base all'espressione aritmetica utilizzata.

I dati risultanti vengono memorizzati nel database Zabbix come per qualsiasi altro item; vengono memorizzati sia i valori della cronologia sia quelli dei 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 sono presenti dati recenti nella cache 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 sintassi con le espressioni dei trigger. 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, scegliere il tipo di item Calcolato.

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