En este artículo vamos a ver cómo instalar Zabbix en Debian 10 Buster paso a paso, de modo que podremos monitorizar cualquier servidor o VPS Debian gracias a este potente conjunto de herramientas. Al final de esta guía serás capaz de montar Zabbix Server, Zabbix Frontend y Zabbix Agent en la misma máquina Debian 10 Buster y, por supuesto, monitorizar otras máquinas remotas.
Tabla de contenidos
Antes de instalar Zabbix en Debian 10 Buster
Para completar esta guía de instalación de Zabbix en Debian 10 Buster necesitas partir de estos requisitos mínimos:
- Un sistema Debian 10 Buster actualizado.
- Una pila tipo LAMP, o sea, servidor web con PHP y base de datos (MariaDB 10.5+, MySQL o PostgreSQL 13+).
- Acceso a consola como root o un usuario con permisos de sudo.
- Conexión a Internet.
En esta guía usaremos Apache como servidor web y MariaDB como base de datos. Si aún no tienes este tipo de entorno puedes consultar la guía de instalación LAMP en Debian 10 Buster y tal vez también la guía de instalación de PostgreSQL en Debian 10 Buster.
Si está todo listo, puedes abrir una consola de comandos y empezamos con el trabajo.
Inicialmente montaremos Zabbix Frontend, Zabbix Server y Zabbix Agent en la misma máquina Debian 10, para después instalar Zabbix Agent en una segunda máquina Debian 10 que quieras monitorizar remotamente desde la primera.
Cómo instalar Zabbix en Debian 10 Buster
Para instalar Zabbix en Debian 10 Buster tendremos que instalar el repositorio oficial de Zabbix, ya que mientras la última versión estable con soporte a largo plazo es la 6.0, los repositorios de Debian sólo ofrecen la 4.0. Por lo tanto, el primer paso es instalar el repositorio de Zabbix 6 para Debian 10 Buster, que podemos obtener en la página oficial:
Cómo instalar el repositorio de Zabbix para Debian 10
Vamos a instalar el repositorio de Zabbix para Debian 10 Buster. Repite la instalación de este paso tanto en el servidor Zabbix como en las máquinas remotas Debian 10 que quieras monitorizar con el servidor.
El repositorio se instala a través de un paquete .deb que podemos descargar desde consola:
~$ wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-1+debian10_all.deb
El paquete se descarga enseguida y lo siguiente es instalarlo:
~$ sudo dpkg -i zabbix-release_6.0-1+debian10_all.deb
Ahora tendremos el archivo zabbix.list en el directorio de repositorios de apt, por lo que debemos actualizar la información de las listas de paquetes:
~$ sudo apt update
Si quieres saber de qué paquetes de Zabbix disponemos ahora, puedes hacer una búsqueda:
~$ apt search ^zabbix
Y podrás ver todos los paquetes cuyo nombre empiecen por zabbix.
Cómo instalar el servidor Zabbix en Debian 10
Este paso lo haremos en la máquina que actuará como Server y Frontend Zabbix, que además se monitoreará a sí misma.
Necesitamos como mínimo tres componentes:
- El agente, que recopila y envía datos de la máquina que se monitoriza.
- El servidor, basado en el servicio de bases de datos que tengamos en nuestro sistema.
- El frontend, que nos permitirá visualizar los datos.
Como en el ejemplo de esta guía usamos MariaDB como motor de bases de datos instalaremos los siguientes paquetes con apt:
~$ sudo apt install -y zabbix-server-mysql zabbix-sql-scripts zabbix-frontend-php zabbix-agent zabbix-apache-conf
Si trabajas con PostgreSQL cambia el paquete zabbix-server-mysql por zabbix-server-pgsql en el comando anterior.
También habrá que instalar el juego de caracteres en_US.utf8 que requiere Zabbix Frontend y que no suele estar incluido por defecto. Esto lo haremos con el siguiente comando:
~$ sudo dpkg-reconfigure locales
Buscamos en la lista y marcamos en_US.utf8 y dejamos como juego de caracteres por defecto el que teníamos previamente.
Debido a la modificación de la configuración de Apache y a la instalación de algunas extensiones de PHP, será necesario reiniciar el servicio web:
~$ sudo systemctl restart apache2
Se crean dos nuevos servicios, zabbix-agent.service y zabbix-server.service, a los que también podemos referirnos por los nombres cortos, zabbix-agent y zabbix-server.
El servicio Zabbix Agent queda iniciado tras la instalación, y habilitado para iniciar con Debian 10 Buster.
El servicio Zabbix Server no está iniciado y tampoco habilitado, pero no debemos iniciarlo hasta terminar la configuración inicial.
Preparativos de la base de datos
Zabbix necesita una base de datos y un usuario con permisos sobre ella, así que el siguiente paso es crearlos. Veamos cómo hacerlo con los motores de bases de datos más utilizados en Debian 10 Buster.
MariaDB/MySQL
Podemos usar el cliente de consola mysql con un usuario administrador:
~$ mysql -u root -p
En primer lugar creamos la base de datos:
> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Creamos el usuario:
> create user zabbix@localhost identified by 'XXXXXXXX';
Acto seguido otorgamos al usuario los permisos sobre la base:
> grant all privileges on zabbix.* to zabbix@localhost;
Refrescamos los permisos de la base y salimos del cliente:
> flush privileges; > exit
En otras aplicaciones es el propio instalador el que crea la estructura incial de la base de datos y la puebla con los datos iniciales. Sin embargo, en Zabbix el proceso lo haremos de forma manual, importando un archivo preparado al efecto:
~$ zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql zabbix -u zabbix -p
PostgreSQL
Creamos un rol con contraseña para Zabbix:
~$ sudo -u postgres createuser -P zabbix
Creamos la base de datos para Zabbix asociándola al rol anterior:
~$ sudo -u postgres createdb zabbix -O zabbix
Y cargamos la base de datos con el script de inicialización que proporciona Zabbix:
~$ zcat /usr/share/doc/zabbix-sql-scripts/postgresql/server.sql.gz | psql -q -U zabbix zabbix
Tendremos que introducir la contraseña del rol zabbix que acabamos de crear.
Configuración de Zabbix Server
Editamos la configuración de Zabbix Server a través de su archivo principal de configuración, que en Debian 10 es /etc/zabbix/zabbix_server.conf:
~$ sudo nano /etc/zabbix/zabbix_server.conf
Buscaremos la directiva DBPassword:
... ### Option: DBPassword # Database password. # Comment this line if no password is used. # # Mandatory: no # Default: # DBPassword= ...
Está desactivada, así que la activamos y especificamos la contraseña que creamos:
... DBPassword=XXXXXXXX ...
Guardamos y cerramos el archivo.
Preparación de los servicios
Habíamos dejado los servicios de Zabbix apartados tras la instalación. Ha llegado el momento de dejarlos funcionando.
En primer lugar iniciamos zabbix-server, ahora que ya puede conectar a la base de datos:
~$ sudo systemctl start zabbix-server.service
Y ahora podemos reiniciar zabbix-agent, que podrá conectar con Zabbix Server:
~$ sudo systemctl restart zabbix-agent.service
Podemos comprobar el estado de ambos servicios con el comando systemctl status zabbix-agent zabbix-server
:
Finalmente, si queremos que el servidor Zabbix inicie automáticamente cada vez que arranque Debian 10 Buster, debemos habilitarlo:
~$ sudo systemctl enable zabbix-server
Preparación del firewall
En el caso de que vayas a monitorizar máquinas remotas y uses firewall, debes añadir una excepción que permita a las máquinas remotas conectar con el puerto 10051 TCP de Zabbix Server.
Por ejemplo, si usas UFW:
~$ sudo ufw allow 10051/tcp
O si quieres permitir la conexión únicamente a la máquina remota:
~$ sudo ufw allow from XXX.XXX.XXX.XXX to any port 10051 proto tcp
PHP
Zabbix Frontend requiere ciertas extensiones de este lenguaje de programación que se instalan como dependencias al instalar Zabbix.
Si trabajas con la versión del lenguaje nativa de la distribución no hay problema, pero si usas 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 actualizar esta guía), así que habrá que instalar manualmente los paquetes correctos. Por ejemplo, para la versión 7.4:
~$ sudo apt install -y php7.4-bcmath php7.4-gd php7.4-ldap php7.4-mbstring php7.4-xml
En caso de trabajar con PostgreSQL habrá que instalar también la extensión correspondiente. En este caso no se instala ningún paquete como dependencia, así que en caso de trabajar con la versión nativa de PHP de la distribución instalaremos la siguiente extensión:
~$ sudo apt install -y php-pgsql
Y si trabajamos con una versión alternativa, especificaremos dicha versión en el nombre del paquete:
~$ sudo apt install -y php7.4-pgsql
Configuración
Hay que comprobar que los valores de ciertas directivas del archivo php.ini tengan unos valores mínimos. Editamos el archivo (sustituye X.X por la versión de PHP que tengas intalada):
~$ sudo nano /etc/php/X.X/apache2/php.ini
Buscamos estas directivas y nos aseguramos de que tengan estos valores como mínimo:
... post_max_size = 16M ... max_execution_time = 300 ... max_input_time = 300 ...
Hechos los cambios (caso de hacerlos), guardamos el archivo.
Actualizaremos la configuración del servicio web para que las extensiones estén disponibles:
~$ sudo systemctl reload apache2
Instalación vía web
Vamos a instalar Zabbix Frontend en Debian 10 Buster mediante su instalador web. Para acceder al frontend de Zabbix debemos añadir el sufijo /zabbix a la dirección IP o dominio de la máquina Debian 10.
En la máquina de este ejemplo, el servidor Debian 10 es accesible mediante el dominio debian10.local.lan, por lo tanto podríamos usar la URL http://debian10.local.lan/zabbix para acceder mediante el navegador.
Accederemos a la página de bienvenida del instalador:
En la siguiente página se nos mostrará una lista de pre-requisitos que deben cumplirse antes de proseguir con la instalación:
Si estás siguiendo los pasos de esta guía todos los requisitos deberían estar cumplidos, por lo que podemos continuar.
En la siguiente página configuramos la conexión a la base de datos:
En principio vienen todos los campos rellenos con los valores por defecto, excepto la clave del usuario que creamos para manejar la base de datos, que introduciremos tal como la creamos anteriormente.
Continuamos con la configuración de Zabbix Server y Frontend:
No es necesario poner un nombre a la instalación, ya que por defecto se asignará «Zabbix server«, pero si especificas algún otro habrá que indicarlo también en la configuración de los agentes, tanto el local como los remotos.
También revisaremos la zona horaria del servidor y podemos elegir el tema de la interfaz web.
Justo antes del proceso de instalación se muestra un resumen de la configuración:
Continuamos y en un instante estaremos en la pantalla final de la instalación:
Además de felicitarnos por conseguir terminar el proceso de instalación, el instalador nos informa que la configuración de Zabbix Frontend se ha guardado correctamente en /usr/share/zabbix/conf/zabbix.con.php.
Al finalizar se nos presenta la página de inicio de sesión de Zabbix Frontend:
Si te preguntas en qué momento creaste un usuario y contraseña para acceder a Zabbix Frontend, la respuesta es que no lo hiciste. El usuario por defecto es Admin y su contraseña es zabbix
Al inciar sesión, por fin entramos a la interfaz de Zabbix:
Cómo añadir una máquina remota Debian 10
Hasta ahora hemos instalado el agente que envía datos, el servidor que los procesa y el frontend que los muestra todo en una misma máquina Debian 10. En esta parte del tutorial vamos a añadir una máquina remota.
Si has seguido el tutorial hasta aquí, ya deberías tener instalado el repositorio de Zabbix 6.0 para Debian 10 Buster en las máquinas remotas, así que ahora instalaremos el agente Zabbix:
~$ sudo apt install -y zabbix-agent
El servicio zabbix-agent queda en ejecución, y habilitado para su inicio automático con cada arranque de Debian 10 Buster.
Ahora vamos a configurar Zabbix Agent para que pueda comunicarse con el servidor Zabbix. Editaremos el archivo de configuración del agente Zabbix:
~$ sudo nano /etc/zabbix/zabbix_agentd.conf
Buscaremos la directiva Server:
... Server=127.0.0.1 ...
Por defecto viene configurado como servidor la máquina local (por eso no hubo que configurar el agente Zabbix del servidor Zabbix), así que cambiaremos ese valor por el dominio o dirección IP del servidor Zabbix:
... Server=debian10.local.lan ...
Haremos lo mismo con la directiva ServerActive:
... ServerActive=debian10.local.lan ...
En la directiva Hostname deberemos especificar el nombre que tiene configurado el servidor Zabbix. En el ejemplo de esta guía no lo cambiamos, así que podemos dejar el valor por defecto:
... Hostname=Zabbix server ...
Guardamos los cambios y cerramos el archivo.
Si tienes firewall activado, tendrás que añadir una excepción para permitir las conexiones al puerto 10050 TCP. Por ejemplo, si usas UFW:
~$ sudo ufw allow 10050/tcp
Ahora hay que reiniciar Zabbix Agent para que empiece a comunicarse con el servidor Zabbix:
~$ sudo systemctl restart zabbix-agent
Listo, hemos terminado con la máquina remota. Vamos a configurar el servidor Zabbix para incluirla en su monitorización.
Configurar una máquina remota en Zabbix Frontend
Con la sesión iniciada en Zabbix Frontend, visitamos la sección «Configuration / Hosts«:
Al pulsar el botón «Create host» se abre un formulario en el que introduciremos los datos de la máquina remota que vamos a monitorizar:
Introducimos el nombre del sistema y un nombre «visible» que actuará como nombre fácil de recordar e identificar.
Pulsaremos el botón «Select» y elegiremos el grupo de plantillas «Templates/Operating systems» y dentro de este grupo la plantilla «Linux by Zabbix Agent«, pero puedes añadir más si sabes cuáles te interesan.
Del mismo modo elegiremos uno o varios grupos a los que pertenecerá el sistema remoto.
Finalmente, añadiremos una interfaz de tipo «Agent» especificando la dirección IP y/o dominio de la máquina y el método preferido de conexión (IP o DNS).
Cuando hayas acabado la configuración pulsa el botón «Add» al pie del formulario para guardar la nueva máquina remota.
Automáticamente volveremos a la sección «Configuration / Hosts«:
Ahora puedes ver en la parte inferior de la página los sistemas monitorizados por Zabbix, encabezados por el que acabamos de añadir.
El hecho de haber incluido una o más plantillas hace que ya tengamos acceso, por ejemplo, a gráficas de uso de la máquina remota. Dentro de esta misma sección, «Monitoring / Hosts» ya podremos visitar mediante el enlace «Graphs» de la máquina remota Debian 10 recién añadida los gráficos de actividad:
Conclusión
Ahora que sabes cómo instalar Zabbix 6 en Debian 10 Buster ya puedes monitorizar tus sistemas remotos con una de las herramientas más interesantes e intuitivas que puedes encontrar. Nuestro trabajo está hecho, ahora tú decides qué quieres controlar y cómo quieres verlo.
Si tienes alguna duda, pregunta, sugerencia, notificación, etc. puedes dejar un comentario.
Y si gracias a esta guía de instalación de Zabbix en Debian 10 Buster has conseguido salir de un callejón sin salida y te apetece agradecérmelo puedes hacerlo dejando 1 $ de propina desde PayPal:
¡Gracias!
Actualizado a la versión 6.0.5.