Descubrimiento de sistemas de archivos montados
Descripción general
Es posible descubrir los sistemas de archivos montados y sus propiedades:
- nombre del punto de montaje
- tipo de sistema de archivos
- tamaño del sistema de archivos
- estadísticas de inodos
- opciones de montaje
Para ello, puede utilizar una combinación de:
- el item de agent
vfs.fs.getcomo item maestro - una regla de descubrimiento de bajo nivel dependiente y prototipos de item
En el modo full (predeterminado), las estadísticas del sistema de archivos se devuelven únicamente si el usuario de Zabbix agent tiene permisos de recorrido en todos los directorios de la ruta del punto de montaje; de lo contrario, el sistema de archivos afectado se omite de la salida de vfs.fs.get.
Para que estos sistemas de archivos se descubran y se notifiquen como no compatibles en lugar de omitirse silenciosamente, utilice el descubrimiento en modo corto.
Configuración
Elemento maestro
Cree un item de Zabbix agent usando la siguiente clave:
vfs.fs.get

Establezca el tipo de información en "Text" para posibles datos JSON de gran tamaño.
Los datos devueltos por este item contendrán algo similar a lo siguiente para un sistema de archivos montado:
[
{
"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"
}
]
Regla LLD dependiente
Cree una regla de descubrimiento de bajo nivel como tipo Dependent item:

Como master item, seleccione el item vfs.fs.get que creamos.
En la pestaña LLD macros, defina macros personalizadas con el JSONPath correspondiente:

En la pestaña Filters, puede agregar una expresión regular que filtre solo los sistemas de archivos de lectura y escritura:

Prototipo de item dependiente
Cree un prototipo de item con el tipo "Dependent item" en esta regla LLD.
Como item maestro para este prototipo, seleccione el item vfs.fs.get que creamos.

Observe el uso de macros personalizadas en el nombre y la clave del prototipo de item:
- Name: Free disk space on {#FSNAME}, type: {#FSTYPE}
- Key: Free[{#FSNAME}]
Como tipo de información, use:
- Numeric (unsigned) para métricas como 'free', 'total', 'used'
- Numeric (float) para métricas como 'pfree', 'pused' (percentage)
En la pestaña Preprocessing del prototipo de item, seleccione JSONPath y use la siguiente expresión JSONPath como parámetro:
$.[?(@.fsname=='{#FSNAME}')].bytes.free.first()

Cuando comience el descubrimiento, se creará un item por cada punto de montaje.
Este item devolverá el número de bytes libres para el punto de montaje dado.
Descubrimiento en el modo corto
Como alternativa a una regla de descubrimiento dependiente, puede crear una regla de descubrimiento del tipo Zabbix agent con la clave:
vfs.fs.get[short]
En el modo short, el item devuelve la lista de sistemas de archivos montados sin estadísticas de espacio en disco ni de inodos, por ejemplo:
[
{
"fsname": "/",
"fstype": "ext4",
"options": "rw,noatime,errors=remount-ro"
},
{
"fsname": "/home",
"fstype": "xfs",
"options": "rw,relatime,attr2,inode64,noquota"
}
]
Como el agent no consulta los sistemas de archivos directamente, el descubrimiento no activa el automontaje ni se retrasa debido a sistemas de archivos de red que no responden. También puede ejecutarse con menor frecuencia que la recopilación de datos, por ejemplo, una vez por hora.
En la pestaña Macros de LLD, defina macros personalizadas con el JSONPath correspondiente, por ejemplo, {#FSNAME} - $.fsname y {#FSTYPE} - $.fstype.
A continuación, cree un prototipo de item del tipo Zabbix agent que devuelva las estadísticas de un sistema de archivos descubierto:
- Clave:
vfs.fs.get[full,{#FSNAME}] - Tipo de información: Texto
- Preprocesamiento: JSONPath
$[0]
Utilice este prototipo de item como item maestro para los prototipos de item dependientes, por ejemplo, con el JSONPath $.bytes.free para obtener el número de bytes libres.
Si el agent no puede obtener estadísticas de un sistema de archivos descubierto (por ejemplo, debido a la falta de permisos), vfs.fs.get[full,{#FSNAME}] devuelve un array vacío, el paso de preprocesamiento $[0] falla y el item pasa a no soportado. De este modo, el problema queda visible en lugar de omitir silenciosamente el sistema de archivos.
Tenga en cuenta que esta configuración realiza una comprobación independiente del agent para cada sistema de archivos descubierto.
Este enfoque se utiliza en los templates del sistema operativo incluidos con Zabbix y requiere Zabbix agent 8.0 o posterior.