Zabbix es un sistema de monitorización para redes y aplicaciones. Está diseñado para monitorizar y registrar en tiempo real el estado de varios servidores, dispositivos de red o equipos virtuales. De esa manera, se puede determinar el estado actual de la infraestructura IT de tu negocio, pudiendo detectar y anticiparse a problemas varios.

Si ya lo conocías y te encuentras ante la dificultad de crear y configurar un ítem utilizando UserParameter de Zabbix, esta pequeña guía te será muy útil.

En este ejemplo, lo que monitorizaremos es la temperatura de una Raspberry Pi utilizando una Pipeline para poder obtener el valor que queremos.

1. Primero de todo, accederemos al host que queremos monitorizar (Raspberry Pi en este caso).

2. Una vez en el host, comprobaremos que la Pipeline que usaremos en UserParameter, nos devuelve el valor que buscamos:

pi@rasperrypi: ∼ $ head -n 1 /sys/class/thermal/thermal_zone0/temp | xargs -I {} awk “BEGIN {printf \”%.2f\n\”, {} / 1000}”

37.48

En este caso vemos que el valor es correcto, actualmente está a 37.48º.

3. Ahora que sabemos que el valor es correcto, iremos a la siguiente ruta: /etc/zabbix/zabbix_agentd.conf y modificaremos los siguientes campos.

a. Tendremos que descomentar la siguiente línea y poner el valor a 1: EnableRemoteCommands=1

b. Debajo de esta línea, añadiremos la línea de UserParameter con la Pipeline que queremos para ‘filtrar’ u obtener el valor que buscamos:
UserParameter=Temp,head -n 1 /sys/class/thermal/thermal_zone0/temp | xargs -I{} awk “BEGIN {printf \”%.2f\n\”, {}/1000}”

4. Una vez hecho esto, añadiremos el Item a una Template o crearemos una nueva, en función de lo que busquemos y también crearemos o asignaremos una Aplication.

5. Ahora crearemos el Item e indicaremos los siguientes campos:

a. Name: Nombre que queramos asignar a este Item, poner un nombre identificativo.

b. Key: En este campo pondremos el nombre que hayamos indicado en el UserParameter,en este caso Temp

c. Type of information: Numeric (float), si queremos que coja decimales.

d. Update Interval: Este valor corresponde a cada cuanto va a comprobar este Item.

e. Guardamos.

6. Configuración de trigger:

a. Name: Será el valor que veremos reflejado cuando se cumpla la condición y este caso obtenemos el valor del Item para mostrarlo cuando salte la alerta.

b. Severity: Asignaremos el tipo de severidad del Trigger que estamos configurando.

c. Expression: Que template, que Item vamos a comprobar y con qué condición saltará el trigger, en este caso:

– Comprueba la Template: Temp Raspberry, el Item: Temp (configurado anteriormente) y .last (último valor) e indicamos que si este valor es mayor o igual a 35, este disparador se activará y nos alertará.

d. Guardamos

7. Aquí vemos cómo, al cumplirse la condición, salta la alerta: