Cómo instalar Zabbix en Debian 9 Stretch

En esta entrada veremos cómo instalar Zabbix en Debian 9 Stretch paso a paso, uno de los sistemas de monitorización remota más afamados entre los entendidos del sector, que puedes usar para monitorear las máquinas de tu red local o incluso tu servidor o VPS Debian.

Antes de instalar Zabbix en Debian 9 Stretch

En el caso de que quieras completar esta guía de instalación y configuración de Zabbix en Debian 9 Stretch, debes partir de los siguientes puntos mínimos:

  • Una máquina Debian 9 Stretch actualizada.
  • Un entorno o pila tipo LAMP (con servidor web, PHP 7.2 o superior y servicio de bases de datos).
  • Acceso a línea de comandos con root o un usuario con permisos de sudo.
  • Conexión a Internet.

Si aún no tienes el entorno preparado, podrías consultar nuestra guía de instalación LAMP en Debian 9 Stretch. En esta guía usamos Apache y MariaDB/MySQL como base, pero podrías usar Nginx y PostgreSQL.

También necesitaremos algunas utilidades del sistema procedentes de los repositorios de Debian 9, así que los actualizamos:

~$ sudo apt update

E instalamos los paquetes necesarios:

~$ sudo apt install -y ca-certificates wget

En un primer paso instalaremos:

  • El servidor Zabbix Server, que centraliza la información de las máquinas que monitoriza.
  • La interfaz Zabbix Frontend, aplicación web que conecta con el servidor Zabbix para configurarlo y mostrar la información.
  • El agente remoto Zabbix Agent, que recopila información del sistema y la envía al servidor.

Estos tres componentes formarán parte de un sistema que se monitoreará a sí mismo.

En un paso posterior añadiremos máquinas remotas Debian 9 a la monitorización.

Cómo instalar Zabbix en Debian 9 Stretch

A la hora de instalar Zabbix en Debian 9 Stretch podrías pensar en utilizar los paquetes presentes en la propia distribución. Sin embargo, mientras que el último lanzamiento estable de Zabbix es la versión 4.4, los repositorios de Debian 9 sólo ofrecen la versión 3.0. Por ello se hace necesario instalar los repositorios oficiales de Zabbix en nuestro sistema.

Cómo instalar el repositorio de Zabbix para Debian 9 Stretch

Descargaremos el paquete que configura el repositorio de la última versión de Zabbix para Debian 9 Stretch:

~$ wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+stretch_all.deb

Una vez descargado el paquete, lo instalamos con dpkg:

~$ sudo dpkg -i zabbix-release_4.4-1+stretch_all.deb

Básicamente hemos añadido el fichero zabbix.list al directorio /etc/sources.list.d/.

Es buena ida actualizar las listas de paquetes de los repositorios del sistema, que incluirán el nuevo repositorio para Zabbix:

~$ sudo apt update

Cómo instalar el servidor Zabbix en Debian 9 Stretch

Dependiendo de los componentes de Zabbix que se quieran instalar en el sistema Debian 9, elegiremos unos paquetes u otros. En este tutorial preparamos una máquina con el servidor sobre el servicio de bases de datos MariaDB/MySQL y el servidor web Apache, por lo que los paquetes a instalar serán los siguientes:

~$ sudo apt install -y zabbix-agent zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf

Si en vez de usar Apache tenemos Nginx, sustituimos zabbix-apache-conf por zabbix-nginx-conf. Y si usamos PostgreSQL en vez de MariaDB/MySQL, cambiamos zabbix-server-mysql por zabbix-server-pgsql.

Consideraciones sobre PHP

Zabbix Frontend necesita disponer de ciertas extensiones de PHP que se instalan como dependencias. El problema es que, considerando que usamos el repositorio de PHP alternativo, el nombre de los paquetes requeridos no especifica ninguna versión concreta, así que se instalan los pertenecientes a la versión por defecto que suele ser la última versión estable (la 8.0 en el momento de actualizar esta guía). Como consecuencia, se actualizarán muchos paquetes de la versión de PHP existente previamente a la última versión.

Versión 7.x

Si deseas mantener la versión previa, tendrás que instalar de nuevo los paquetes sustituidos y los que necesita Zabbix Frontend. Por ejemplo, para la versión 7.4:

~$ sudo apt install -y php7.4-bcmath php7.4-ldap php7.4-mbstring php7.4-gd php7.4-xml

Versión 8.0

En este caso será necesario editar el archivo de configuración de Zabbix para Apache:

~$ sudo nano /etc/apache2/conf-available/zabbix.conf

Dentro del bloque Directory correspondiente a la ruta /usr/share/zabbix existen bloques IfModule para configurar PHP 5 y 7, pero no para la versión 8, así que añadiremos uno nuevo:

...
<Directory "/usr/share/zabbix">
...
        <IfModule mod_php.c>
                php_value max_execution_time 300
                php_value memory_limit 128M
                php_value post_max_size 16M
                php_value upload_max_filesize 2M
                php_value max_input_time 300
                php_value max_input_vars 10000
                php_value always_populate_raw_post_data -1
        </IfModule>
</Directory>
...

Hechos los cambios, guardamos y cerramos el archivo.

Servicio web

Terminada la instalación de los paquetes y sus dependencias, es necesario recargar la configuración del servidor web:

~$ sudo systemctl reload apache2

Además, se han creado dos servicios nuevos en Debian 9 Stretch tras la instalación de Zabbix, los servicios zabbix-server.service y zabbix-agent.service, o zabbix-server y zabbix-agent. En el caso del servicio Zabbix Agent este queda en funcionamiento tras la instalación, pero no ocurre lo mismo con Zabbix Server, que necesita configurarse antes de iniciarlo.

Preparación de la base de datos

Zabbix Server se apoya sobre el servicio de base de datos que tengamos instalado en Debian 9 Stretch, que puede ser MariaDB/MySQL o PostgreSQL. En cualquier caso, debemos crear manualmente la infraestructura de la base de datos para Zabbix.

En el caso de MariaDB/MySQL podemos conectar con el cliente de consola mysql y el usuario con el que administremos habitualmente:

~$ mysql -u root -p

Comenzaremos creando la base de datos:

> create database zabbix character set utf8 collate utf8_bin;

Para MySQL 5 y MariaDB creamos el usuario con la siguiente sentencia:

> create user zabbix@localhost identified by 'XXXXXXXX';

Pero para MySQL 8 especificamos además el plugin de autenticación:

> create user zabbix@localhost identified with mysql_native_password by 'XXXXXXXX';

Concedemos permisos al usuario sobre la base de datos:

> grant all privileges on zabbix.* to zabbix@localhost;

Y salimos del cliente:

> exit

Debemos crear la estructura inicial de la base de datos desde un archivo preparado a tal efecto (se pedirá la contraseña del usuario zabbix de la base de datos):

~$ zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql zabbix -u zabbix -p

Preparación de los servicios

Para que el servicio Zabbix Server pueda conectar con la base de datos necesitará conocer la contraseña del usuario zabbix, esto lo resolvemos editando su archivo de configuración:

~$ sudo nano /etc/zabbix/zabbix_server.conf

Y buscamos la directiva DBPassword:

...
# DBPassword=
...

Está desactivada, lo que significa que por defecto intentaría conectar sin contraseña. Activamos la directiva eliminando el carácter # de inicio de línea y asignamos como valor la contraseña:

DBPassword=XXXXXXXX

Guardamos los cambios y cerramos el archivo.

Ahora que hemos terminado de configurarlo, podemos iniciar el servicio Zabbix:

~$ sudo systemctl start zabbix-server

Y también podemos habilitar o activar los servicios Zabbix Agent y Server para que inicien automáticamente cada vez que arranque el sistema Debian 9 Stretch:

~$ sudo systemctl enable zabbix-agent zabbix-server

Configurar el firewall UFW de Debian 9 para Zabbix Server

En el caso de tener activado el firewall UFW en Debian 9 y querer permitir las conexiones entrantes de las máquinas remotas al servicio Zabbix Server, debemos añadir una regla para el puerto 10051 TCP:

~$ sudo ufw allow 10051/tcp

Instalación vía web

Es el momento de empezar con la instalación de Zabbix Frontend en Debian 9 Stretch vía web, por lo que usaremos un navegador. Obtendremos la URL añadiendo el sufijo /zabbix a la dirección IP o dominio de la máquina Debian 9 que estamos configurando.

En este ejemplo, el servidor Zabbix es accesible desde el dominio debian9.local.lan, por lo que la URL http://debian9.local.lan/zabbix será la que empleemos:

como instalar zabbix en debian 9 stretch

Se nos muestra una página de bienvenida sin nada reseñable, por lo que directamente continuamos con la siguiente.

Aparece la lista de requisitos para instalar Zabbix Frontend:

instalar zabbix en debian 9 stretch

Si has seguido los pasos anteriores, todos los requisitos aparecerán marcados como OK, por lo que puedes continuar con la instalación.

Es el momento de introducir los datos de conexión a la base de datos:

instalacion de zabbix en debian 9 stretch

En la forma en que hemos realizado los pasos anteriores, todos los valores por defecto son correctos, por tanto sólo tenemos que introducir la contraseña.

En la siguiente sección especificamos los datos de conexión al servidor Zabbix:

Como estamos instalando el frontend en la misma máquina que el servidor Zabbix los datos por defecto son correctos. El campo Name lo puedes dejar en blanco y se asumirá el valor «Zabbix Server«.

Antes de terminar la instalación se nos presentará un pequeño resumen con los datos de conexión a la base de datos y al servidor Zabbix:

Finalmente termina la instalación, informándonos de que se ha creado el archivo de configuración en la ubicación /usr/share/zabbix/conf/zabbix.conf.php:

Tras finalizar se nos conduce a la pantalla de inicio de sesión para identificarnos antes de entrar en el recién instalado Zabbix Frontend:

El usuario y la clave por defecto son Admin y zabbix, respectivamente. Recuerda cambiar la contraseña en cuanto puedas.

Al iniciar sesión accedemos directamente al panel de control de Zabbix:

Ya está todo listo para explorar la interfaz web y comprobar el estado de la propia máquina, ya que el agente instalado en la máquina local ya está configurado, funcionando y enviando datos al servidor Zabbix, que podemos consultar.

Cómo instalar Zabbix Agent en una máquina remota Debian 9 Stretch

Trabajando ya sobre una máquina remota Debian 9 Stretch en la que ya debería estar instalado el repositorio de Zabbix, pasamos a instalar el agente Zabbix para Debian 9:

~$ sudo apt install -y zabbix-agent

Se instalan el paquete y sus dependencias creándose el servicio zabbix-agent.service, o zabbix-agent simplemente, que queda en ejecución, pero no habilitado para arrancar automáticamente con el inicio de Debian 9 Stretch.

Editamos la configuración de Zabbix Agent:

~$ sudo nano /etc/zabbix/zabbix_agentd.conf

Buscaremos las siguientes directivas:

...
Server=127.0.0.1
...
ServerActive=127.0.0.1
...
Hostname=Zabbix server
...

La configuración por defecto asume que Zabbix Server se encuentra en la máquina local (por eso no configuramos el agente Zabbix en el servidor anteriormente), pero en este caso al tratarse de una máquina remota debemos especificar la dirección del servidor Zabbix:

...
Server=debian9.local.lan
...
ServerActive=debian9.local.lan
...
Hostname=Zabbix server
...

Cambiamos el valor 127.0.0.1 por la dirección IP o dominio del servidor Zabbix. Si no modificaste el nombre del servidor Zabbix, no debes cambiar el valor de la directiva Hostname.

Guardamos los cambios, cerramos el archivo, y reiniciamos el servicio zabbix-agent para que cargue la nueva configuración:

~$ sudo systemctl restart zabbix-agent

Si queremos que Zabbix Agent inicie de forma automática al arrancar Debian 9 Stretch, debemos habilitar el servicio:

~$ sudo systemctl enable zabbix-agent

Configurar el firewall UFW en Debian 9 para Zabbix Agent

Si tienes habilitado el firewall UFW en Debian 9 Stretch, deberías añadir una regla para permitir las conexiones entrantes desde el servidor al puerto en el que escucha el agente Zabbix, que es el puerto 10050 TCP:

~$ sudo ufw allow 10050/tcp

Cómo añadir una máquina remota a Zabbix Server en Debian 9

Para monitorear la máquina remota Debian 9 Stretch que acabamos de configurar, una vez iniciada sesión en Zabbix Frontend, nos dirigiremos a «Configuration» / «Hosts» y allí pulsaremos el botón «Create host».

como configurar zabbix en debian 9 stretch

Se nos presentará un formulario para introducir los datos de la máquina remota:

configurar zabbix en debian 9 stretch

Debemos introducir el nombre de la máquina y opcionalmente el nombre con el que la queramos ver en Zabbix Frontend. Además, hay que especificar un grupo obligatoriamente.

En «Agent interfaces» debes especificar la dirección IP y/o el dominio de la máquina, y seleccionar si prefieres que conecte por la IP o el nombre DNS.

En este ejemplo la máquina remota es accesible por su dominio o nombre DNS, debian92.local.lan.

A continuación iremos a la solapa «Templates» del mismo formulario:

configuracion de zabbix en debian 9 stretch

Pulsaremos el pequeño enlace «Add» (ojo, no confundir con el botón con el mismo nombre) para que se muestre la lista de plantillas disponibles.

En este ejemplo seleccionamos «Template OS Linux by Zabbix agent«, pero puedes seleccionar más si sabes las que te interesan. Cuando hayas terminado de añadir plantillas puedes pulsar el botón «Add» (esta vez sí es el botón) para añadir el nuevo sistema.

Automáticamente se nos lleva a la sección «Configuration» / «Hosts«:

configurar maquinas remotas debian 9 stretch en zabbix

En la parte inferior de la página podrás ver los sistemas monitorizados, incluyendo el que acabas de añadir.

Al haber incluido una plantilla, ya puedes ver, por ejemplo, gráficas de servicios en «Monitoring» / «Graphs«, seleccionando en «Hosts» el nuevo sistema y eligiendo el tipo de gráfico:

Conclusión

Así de fácil es instalar y configurar Zabbix en Debian 9 Stretch, por lo que ya no tienes excusa para conocer en todo momento el estado de las máquinas de tu red local o incluso tus servidores o VPS Debian en Internet. Añadir nuevas máquinas remotas a Zabbix es cuestión de instantes.

Si tienes preguntas, dudas, sugerencias, etc. puedes dejar un comentario.

¡Ah! Y si gracias a esta guía de instalación y configuración de Zabbix en Debian 9 Stretch has conseguido monitorizar tus sistemas y estás tan satisfecho que deseas agradecérnoslo, puedes hacerlo dejando una propina a partir de 1 $ desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarme a un café:

¡Gracias!

5/5 - (1 voto)

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.