En esta ocasión explicamos cómo instalar Zabbix en Debian 11 Bullseye paso a paso, de tal manera que en unos minutos podrás tener en marcha la plataforma Zabbix Server con la interfaz web Zabbix Frontend sobre tu servidor o VPS Debian, monitorizado a su vez a través de Zabbix Agent.
Tabla de contenidos
Antes de instalar Zabbix 6 en Debian 11 Bullseye
Para poder seguir los pasos de esta guía de instalación y configuración de Zabbix en Debian 11 Bullseye será imprescindible partir del siguiente escenario:
- Un servidor Debian 11 Bullseye actualizado.
- Un entorno o pila tipo LAMP, es decir, servicio web con PHP y bases de datos (MariaDB 10.5 ó superior, PostgreSQL 13 ó superior).
- Acceso a línea de comandos con permisos de sudo.
- Conexión a Internet.
- Opcionalmente, una segunda máquina Debian 11 para monitorizarla remotamente con el agente Zabbix.
Si no dispones aún del entorno necesario puede ser interesante consultar antes de continuar nuestra guía de instalación de la pila LAMP en Debian 11 Bullseye y/o la guía de instalación de PostgreSQL en Debian 11 Bullseye.
Una vez todo listo, es hora de ajustar la altura correcta de nuestra mesa de trabajo e ir abriendo una terminal de consola.
Cómo configurar el repositorio de Zabbix 6 para Debian 11
Vamos a instalar el repositorio oficial de Zabbix 6 para Debian 11 Bullseye descargando un paquete .deb desde el sitio oficial:
~$ wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-1+debian11_all.deb
Instalamos el paquete con dpkg:
~$ sudo dpkg -i zabbix-release_6.0-1+debian11_all.deb
Y actualizamos la información de los repositorios para incluir la nueva lista de paquetes:
~$ sudo apt update
Cómo instalar Zabbix 6 en Debian 11 Bullseye
Para instalar Zabbix en Debian 11 Bullseye elegiremos la combinación de paquetes que se adecúen a las características del sistema; por ejemplo, para un entorno con el servicio web Apache y el motor de bases de datos MariaDB:
~$ sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Si usas Nginx sustituye el paquete zabbix-apache-conf por zabbix-nginx-conf y si trabajas con PostgreSQL sustituye zabbix-server-mysql por zabbix-server-pgsql.
Por otro lado, Zabbix Frontend necesita la presencia del juego de caracteres en_US.utf8, que por defecto no suele estar presente, así que reconfiguraremos el paquete locales:
~$ sudo dpkg-reconfigure locales
Un pequeño configurador nos permitirá seleccionar los juegos de caracteres que añadir:
En cuanto al juego de caracteres por defecto no hay problema en mantener el que teníamos previamente configurado.
En este momento tenemos dos nuevos servicios en Debian 11 Bullseye, los servicios zabbix-agent y zabbix-server.
El servicio zabbix-agent queda en ejecución y habilitado para su inicio automático y podemos comprobar su estado fácilmente con systemctl:
~$ systemctl status zabbix-agent
Por su parte, el servicio zabbix-server está detenido, pero no lo iniciaremos hasta configurarlo y realizar algunos ajustes más.
Para aplicar las nuevas configuraciones del servicio web recargamos la configuración de Apache:
~$ sudo systemctl reload apache2
O de Nginx:
~$ sudo systemctl reload nginx
Base de datos
Zabbix puede trabajar con varios de los servicios de bases de datos más utilizados en Debian 11 Bullseye. Veamos a continuación cómo configurarlos.
MariaDB/MySQL
Conectamos al servicio con el cliente de consola mysql y un usuario administrador:
~$ mysql -u root -p
Creamos la base de datos:
> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Creamos el usuario:
> create user zabbix@localhost identified by 'XXXXXXXX';
Y damos permisos suficientes al usuario sobre la base:
> grant all privileges on zabbix.* to zabbix@localhost;
Ya podemos cerrar la conexión:
> exit
Ahora inicializamos la base de datos con el script adecuado que proporciona Zabbix:
~$ zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix
Tendremos que proporcionar la contraseña del usuario zabbix que acabamos de crear.
PostgreSQL
Creamos un nuevo rol con contraseña:
~$ sudo -u postgres createuser -P zabbix
Y creamos la base de datos asociándola al nuevo rol:
~$ sudo -u postgres createdb zabbix -O zabbix
Inicializamos la base de datos con el script SQL correspondiente proporcionado por Zabbix:
~$ zcat /usr/share/doc/zabbix-sql-scripts/postgresql/server.sql.gz | psql -q -U zabbix zabbix
Habrá que indicar la contraseña del rol zabbix que creamos antes.
Configuración del servicio
Editamos el archivo de configuración de Zabbix Server:
~$ sudo nano /etc/zabbix/zabbix_server.conf
Buscamos la directiva DBPassword:
... # DBPassword= ...
La activamos eliminando el carácter # al inicio de línea y le damos como valor la contraseña del usuario de la base de datos de Zabbix que acabamos de crear:
... DBPassword=XXXXXXXX ...
Guardamos el archivo y ya podemos arrancar y habilitar Zabbix Server:
~$ sudo systemctl enable --now zabbix-server
Podemos comprobar que el servicio ha quedado en ejecución:
~$ systemctl status zabbix-server
Si algo hubiera ido mal al intentar arrancar el servicio encontraremos información del problema en el registro de Zabbix Server:
~$ tail /var/log/zabbix/zabbix_server.log ... ... server #10 started [preprocessing worker #3] ... server #9 started [preprocessing worker #2] ... enabling Zabbix agent checks on host "Zabbix server": interface became available
En este ejemplo los mensajes del registro son normales.
PHP
Zabbix requiere algunos ajustes en la configuración de este lenguaje de programación, para lo que hay que editar el archivo php.ini; en el caso de trabajar con Apache (sustituye X.X por el número de versión que tengas instalado):
~$ sudo nano /etc/php/X.X/apache2/php.ini
Buscamos las siguientes directivas:
... max_execution_time = 30 ... max_input_time = 60 ... post_max_size = 8M ...
Y cambiamos sus valores por defecto por los adecuados para Zabbix:
... max_execution_time = 300 ... max_input_time = 300 ... post_max_size = 16M ...
Ya podemos guardar el archivo.
Zabbix también requiere la presencia de algunas extensiones del lenguaje. En el caso de trabajar con la versión nativa de la distribución estas extensiones ya se habrán instalado como dependencias.
Pero en el caso de trabajar con una versión procedente del repositorio alternativo se habrán instalado las extensiones correspondientes a la última versión estable (la 8.1 en el momento de redactar este artículo), por lo que si trabajas con otra versión habrá que instalar las extensiones correctas de forma manual; por ejemplo, para la versión 8.0:
~$ sudo apt install -y php8.0-bcmath php8.0-gd php8.0-ldap php8.0-mbstring php8.0-xml
Finalmente, recargamos la configuración del servicio web o PHP-FPM, dependiendo del caso:
~$ sudo systemctl reload apache2
Instalador web
Es el momento de acceder al instalador web de Zabbix para Debian 11 Bullseye desde un navegador, construyendo la URL de acceso con la dirección del servidor (IP, nombre DNS, dominio, localhost si accedemos localmente, etc.) y añadiendo la ruta /zabbix.
Por ejemplo, la máquina Debian 11 sobre la que hemos preparado este artículo es accesible en el subdominio debian11.local.lan, así que podemos acceder usando http://debian11.local.lan/zabbix como URL:
Tras la página de bienvenida del instalador web pasaremos a la comprobación de requisitos del sistema:
Si has seguido los pasos anteriores todos los requisitos deberían cumplirse. En caso contrario habrá que solucionar los problemas y volver a intentarlo.
A continuación configuraremos la conexión a la base de datos de Zabbix:
Seleccionaremos el tipo de base de datos adecuado y completaremos los datos de conexión tal como los creamos anteriomente. En el caso de haber usado el nombre de la base de datos y del usuario por defecto, solo habrá que añadir la contraseña de este.
Seguidamente podemos dar un nombre al servidor, configurar la zona horaria y elegir un tema para la interfaz web de Zabbix Frontend:
Si no indicamos ningún nombre para el servidor se asignará por defecto «Zabbix server» (que es lo que hemos hecho en este ejemplo).
Antes de guardarse la configuración de la instalación se mostrará un pequeño resumen de la misma:
Al continuar se guarda la configuración y la instalación finaliza:
Ahora se mostrará la página de inicio de sesión a Zabbix Frontend:
Para iniciar sesión usaremos las credenciales del usuario por defecto, nombre Admin y contraseña zabbix.
Entraremos a la sección de visión global de la plataforma, donde encontraremos información de estado:
Podemos ver que existe una máquina monitorizada, la propia máquina local Debian 11 Bullseye donde corre Zabbix Server.
Visitaremos la sección «Monitoring / Hosts» desde el menú del panel lateral y haremos click en el nombre de la máquina mostrado en la lista de máquinas disponibles, de modo que se desplegará un menú contextual:
Elegiremos la opción «Graphs» que nos llevará a una página donde estarán disponibles todas la gráficas de estado de los distintos parámetros monitorizados por defecto en la máquina Debian 11 Bullseye local:
Cómo monitorizar una máquina remota Debian 11 Bullseye en Zabbix Server
Vamos a monitorizar una máquina remota Debian 11 Bullseye con Zabbix Agent desde nuestro servidor Zabbix recién instalado y configurado.
Cómo instalar Zabbix Agent en Debian 11 Bullseye
Para instalar Zabbix Agent en la máquina Debian 11 Bullseye remota instalaremos el repositorio oficial de Zabbix de la misma forma que hicimos con el servidor, tal como explicamos al principio del tutorial. Una vez hecho, instalamos Zabbix Agent para Debian 11:
~$ sudo apt install -y zabbix-agent
Editamos la configuración del agente Zabbix:
~$ sudo nano /etc/zabbix/zabbix_agentd.conf
Y buscamos la directiva Server:
... Server=127.0.0.1 ...
Está configurada para usar la máquina local como sevidor Zabbix (esa es la razón de no haber tenido que configurar el agente en el servidor). Cambiaremos el valor por defecto por la dirección IP o nombre DNS del servidor Zabbix:
... Server=debian11.local.lan ...
Si configuramos Zabbix Server con algún nombre distinto al valor por defecto, buscaremos la directiva Hostname:
... Hostname=Zabbix server ...
Y cambiaremos su valor por el que corresponda.
Guardado el archivo, reiniciaremos el agente (que había iniciado automáticamente tras la instalación):
~$ sudo systemctl restart zabbix-agent
Podemos comprobar que el servicio está funcionando correctamente con el comando systemctl:
~$ systemctl status zabbix-agent
Finalmente, en caso de tener activado el firewall UFW habrá que añadir una regla para permitir la conexión al puerto 10050/TCP local:
~$ sudo ufw allow 10050/tcp
Cómo configurar la máquina remota Debian 11 en Zabbix Server
De vuelta en el servidor, vamos a configurar la máquina remota Debian 11 Bullseye en Zabbix Server para añadirla a la lista de máquinas monitorizadas.
Accedemos a la sección «Configuration / Hosts«:
Con el botón «Create host» abriremos el formulario de creación de configuración de la máquina remota. Este formulario contiene varios apartados, aunque el que se abre por defecto, «Hosts«, basta para una configuración básica:
Introduciremos el nombre de la máquina, una o más plantillas, uno o más grupos y una interfaz de conexión a la máquina remota.
Las plantillas añaden un conjunto de funcionalidades, gráficos predeterminados, etc. Podemos seleccionar el grupo «Templates/Operating systems» y dentro de este la plantilla «Linux by Zabbix agent«.
Como grupo podemos elegir «Linux servers«.
Para crear la interfaz de conexión usamos «Add«, elegimos el tipo «Agent» e indicamos la dirección IP o nombre DNS de la máquina Debian 11 remota seleccionando el tipo de conexión.
Ya podemos terminar usando el botón «Add» a pie del formulario.
Ahora, en la misma página de configuración de máquinas, aparecerá en la lista la máquina Debian 11 que acabamos de añadir.
Visitaremos la sección «Monitoring / Hosts» y actuaremos sobre el nombre de la máquina remota para desplegar el menú contextual:
Seleccionando «Graphs» iremos a la página de gráficas correspondiente donde, si ha transcurrido suficiente tiempo, ya empezarán a mostrar datos:
¡Así de fácil es instalar y configurar Zabbix 6 en Debian 11 Bullseye»
Conclusión
Ahora que sabes cómo instalar y configurar Zabbix 6 en Debian 11 Bullseye ya puedes monitorizar sistemas, dispositivos, servidores, etc. en red de forma visual gracias a la potente interfaz web de esta plataforma.
Si te ha surgido alguna duda o pregunta durante la instalación, quieres notificar algún error, realizar alguna sugerencia, etc. puedes dejar un comentario. Los comentarios se moderan para evitar SPAM, pero se revisan prácticamente a diario.
Y si esta plataforma ya funciona en tu propia red y quieres agradecérnoslo, siempre es bienvenida cualquier pequeña aportación al mantenimiento de este sitio y la creación de más artículos y tutoriales.
Puedes ayudarnos dejando una propina de tan solo 1 $ con PayPal:
¡Gracias!