Vamos a ver cómo poder configurar en zabbix una alerta (para sistemas GNU/Linux) que compruebe y monitorice que un punto de montaje está activo. En caso contrario, que nos alerte de que no lo está.
Puesto que desde zabbix no hay un item que monitorice si un punto de montaje está o no activo, podemos simularlo. Aquí ya es trabajo de bash y la forma de hacerlo, la que cada uno prefiera. Lo vamos a realizar de forma simple, así que comencemos con un pequeño script que simule lo que nos interesa.
shell> mount |grep /var|wc -l 0 shell> mount |grep /home|wc -l 1
Como podemos observar, con un simple mount y un wc, ya sabemos si una partición está o no montada. Si devuelve 0 la partición no estará montada y si devuelve 1, ésta sí estará montada. Por lo tanto, las variaciones que zabbix tendrá que tener en cuenta son únicamente los cambios de 0 -> 1 y 1 -> 0.
Como no tenemos un item que lo realice, vamos a agregar el item al fichero de configuración de zabbix, así que al final de todo del fichero de configuración simplemente agregamos un UserParameter.
#UserParameter=Tras agregarlo, reiniciamos el servicio., UserParameter=system.mount.home, mount |grep /home|wc -l
shell> service zabbix-agentd restart
Ahora lo único que falta el crear el nuevo item para el equipo o plantilla, que se encargue de monitorizarlo y el trigger correspondiente.
Vamos por lo tanto a crear un nuevo item asociado a la plantilla Linux (o al equipo que deseemos) con los siguientes datos:
Description: Mount /home Type: Zabbix agent Key: system.mount.home Type of information: Numeric Data type: Decimal Update interval (in sec): 1800 Show value: Service state Applications: Filesystem
Tras ello, comenzará a monitorizarse si la partición está montada o no. Puesto que lo hemos definido como en "Service state", si el valor es 0, significará que no está montada y si es 1, que sí.
Ahora sólo queda crear un pequeño trigger qué salte si el valor de la key es cero. Para ello, simplemente creamos un trigger similar al que sigue,
Name: Partición /home no montada Expression: {Template_Linux:system.mount.home.last(10)}=0 Severity: Average Comments: La partición /home no está montada.
Y cuando un equipo que tenga la plantilla Template_Linux no tenga la partición /home montada, saltará el trigger y por lo tanto lo podremos revisar para ver qué pasó.
Esta forma de monitorizar la partición no es 100% efectiva, ya que habría que crear muchas entradas en el fichero de configuración del agente (una para cada partición) así que veremos en otra entrada cómo poder monitorizar varias particiones con una simple entrada, es decir, pasándole parámetros.