1 Scoperta dei filesystem montati
Panoramica
È possibile individuare i filesystem montati e le loro proprietà:
- nome del punto di mount
- tipo di filesystem
- dimensione del filesystem
- statistiche degli inode
- opzioni di mount
Per farlo, è possibile utilizzare una combinazione di:
- l'item agent
vfs.fs.getcome item principale - regola di low-level discovery dipendente e prototipi di item
Configurazione
Item master
Creare un item Zabbix agent utilizzando la seguente chiave:
vfs.fs.get

Impostare il tipo di informazioni su "Text" per dati JSON potenzialmente di grandi dimensioni.
I dati restituiti da questo item conterranno qualcosa di simile al seguente per un filesystem montato:
[
{
"fsname": "/",
"fstype": "ext4",
"bytes": {
"total": 249405239296,
"free": 24069537792,
"used": 212595294208,
"pfree": 10.170306,
"pused": 89.829694
},
"inodes": {
"total": 15532032,
"free": 12656665,
"used": 2875367,
"pfree": 81.487503,
"pused": 18.512497
},
"options": "rw,noatime,errors=remount-ro"
}
]
Regola LLD dipendente
Creare una regola di low-level discovery di tipo "Dependent item":

Come item master selezionare l'item vfs.fs.get che abbiamo creato.
Nella scheda "LLD macros" definire macro personalizzate con il corrispondente JSONPath:

Nella scheda "Filters" è possibile aggiungere un'espressione regolare che filtri solo i filesystem read-write:

Prototipo di item dipendente
Creare in questa regola LLD un prototipo di item con tipo "Dependent item". Come
item master per questo prototipo selezionare l'item vfs.fs.get che abbiamo creato.

Notare l'uso di macro personalizzate nel nome e nella chiave del prototipo di item:
- Nome: Spazio libero su disco su {#FSNAME}, tipo: {#FSTYPE}
- Chiave: Free[{#FSNAME}]
Come tipo di informazione, utilizzare:
- Numeric (unsigned) per metriche come 'free', 'total', 'used'
- Numeric (float) per metriche come 'pfree', 'pused' (percentuale)
Nella scheda "Preprocessing" del prototipo di item selezionare JSONPath e utilizzare la seguente espressione JSONPath come parametro:
$.[?(@.fsname=='{#FSNAME}')].bytes.free.first()

Quando la discovery viene avviata, verrà creato un item per ciascun mountpoint. Questo item restituirà il numero di byte liberi per il mountpoint specificato.