Como configurar Zabbix paso a paso para una monitorización web completa
Este es el manual que a mi me habría gustado encontrar en internet antes de haber perdido todas las horas que he perdido en comprender como funciona el sistema de monitorización de Zabbix.
Paso a paso monitorizaremos una web con sus avisos via Slack, via email, y alertas graves, no tan graves, avisos de webs con servicio 24×7.
En zabbix para poder enviar notificaciones, ya sean via Slack, Whatsapp, Email, telefono…necesitas crear un medio de ese tipo de envío a un usuario.
En mi caso, lo tengo dividido en usuarios, dado que envío las notificaciones a 7 personas distintas.
Creación de medios
Vamos a configurar el medio de correo electrónico. Para ello nos vamos a Media Types:
Dentro de Media Types creamos uno nuevo, el tipo va a ser de tipo Email. Por lo tanto rellenamos los parametros de configuración del SMTP de nuestro correo que vamos a utilizar para el envío:
Nota: Ojo porque para poder enviar mails con autenticación Zabbix debe estar compilado bajo OpenSSL sino os dará error indicando que no soporta validaciones TLS.
Vamos a asignar a nuestro usuario ese tipo de medio.
Y en el usuario le asignamos el medio creado, en mi caso tengo dos, uno es de tipo Email (David Escudero……) y otro de tipo Slack.
Ya tenemos creado el medio y asignado a un usuario. En mi caso, lo que tengo montado es que a través de Grupos de Hosts envío notificaciones a unas personas u otras.
Tengo un grupo por ejemplo que es «Soporte 24×7», en el cual envío notificaciones a los altos cargos solo los fines de semana.
Tambien tengo creados otros grupos para enviar notificaciones a las distintas personas que son encargadas de dichos hosts.
Es decir, si tenemos que PEPITO lleva 10 dominios web, pues creo un grupo llamado «Dominio de pepito» y todos los dominios de pepito les asigno el grupo. Así en las notificaciones puedo enviar a una u otra persona dependiendo del dominio que haya fallado.
Vamos a crear un grupo de equipos.
Creación de grupos de equipos
Creamos uno nuevo, le ponemos un nombre y añadimos.
Ahora vamos a la parte mas importante, creación de dominio/maquina.
Todos los hosts/maquinas que tengo creados en realidad son dominios Web. Tengo creado un HOST por web debido a lo que os contaba antes, debo diferenciar a quien voy a enviar las notificaciones.
Creación de nuevo web / host y configuración
Esta es la configuración de uno de la información del host:
En grupos asignamos el grupo que hayamos creado y el que le corresponda.
Ahora vamos a crear el test de la web:
Aquí creamos un nuevo paso web con la siguiente configuración:
He puesto un intervalo de 2m (2 minutos) porque creo que es suficiente, aunque también estaría bien medir únicamente cada 5m (5 minutos).
Ahora creamos el paso que vamos a verificar, es decir, la web que vamos a testear:
Esta es mi configuración, vean que en el parametro requerido he puesto una cadena que tengo oculta dentro de la web para testear que a parte de recibir un codigo 200 también esté incluida esa cadena:
Una vez creado el paso web, vamos a la parte mas importante, los disparadores de alertas.
Esta parte que viene a continuación es la parte en la que he perdido mas tiempo, en la configuración de los disparadores, he creado los siguientes disparadores:
Tengo creados los siguientes pasos:
-Warning ( No envío alerta ninguna) – Alerta caida web – Este paso se dispara en el panel de Zabbix cuando la respuesta a la web no es un codigo 200, sino un 404, 500, 505….
-Information( No envío alerta ninguna) – Tiempo de respuesta de la web mas de 5s – Mide el tiempo de respuesta y si es superior a 5 segundos pues lanza una alerta en el panel de Zabbix, sin mandar notificación.
-Warning( No envío alerta ninguna) – Tiempo de respuesta de la web mas de 15s – Mide el tiempo de respuesta y si es superior a 15 segundos pues lanza una alerta en el panel de Zabbix, sin mandar notificación.
-Alto(Si manda notificación) – Tiempo de respuesta medio de la web mas de 30s durante los últimos 5 pasos – Mide el tiempo de respuesta y si es superior a 30 segundos durante los ultimos 5 pasos pues lanza una alerta en el panel de Zabbix, sin mandar notificación.
-MedioAlto (No envia nada) – Tiempo de respuesta de la web mas de 60s – Mide el tiempo de respuesta y si es superior a 60 segundos pues lanza una alerta en el panel de Zabbix, sin mandar notificación.
-Alto (Si envia notificación) – Esta alerta es una de las mas importante, verifica que durante los ultimos 6 minutos el paso web haya fallado y si ha fallado y en el error del paso tenemos «required pattern» (falta el string que le hemos puesto que busque) entonces lanza alerta.
-Caida de la web – Durante mas de 6m el codigo de respuesta ha sido > 400, es decir, 404, 500, 505…
Con esto ya tendríamos nuestro dominio configurado. Ahora tenemos que crear las acciones que hará Zabbix cuando detecte una alerta de tipo «High» o «Disaster».
Así tengo yo configurada la acción:
Basicamente se dispara la acción cuando el disparador es de tipo «High», «Disaster» ó «Average» y el Host tiene el Grupo asignado «Servicio web».
Vamos a ir a Operaciones para asignar lo que realizará la acción:
En Operations creamos una nueva operación con esta configuración:
Yo he elegido enviar la notificación por Slack pero vosotros podeis elegir la del medio que hayais creado (Email, telefono…)
Con esto hecho el sistema ya empezará a enviar las notificaciones y tendréis un sistema perfecto de monitorización web.