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/MySQL o PostgreSQL).
- 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.
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 lanzada es la 5.2, los repositorios de Debian sólo ofrecen la 4.0. Por lo tanto, el primer paso es instalar el repositorio de Zabbix 5.2 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/5.2/debian/pool/main/z/zabbix-release/zabbix-release_5.2-1+debian10_all.deb
El paquete se descarga enseguida y lo siguiente es instalarlo:
~$ sudo dpkg -i zabbix-release_5.2-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 paquetes zabbix-server-mysql, zabbix-frontend-php, zabbix-agent:
~$ sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-apache-conf
Debido a la modificación de la configuración de Apache y a la instalación de algunas extensiones de PHP, será necesario recargar la configuración del servidor web:
~$ sudo systemctl reload 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. 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 utf8 collate utf8_bin;
En MariaDB o MySQL 5 creamos el usuario como de costumbre:
> create user zabbix@localhost identified by 'XXXXXXXX';
Pero en MySQL 8 es mejor asegurarse de que el usuario se crea con el plugin de autenticación compatible:
> create user zabbix@localhost identified with mysql_native_password by 'XXXXXXXX';
En cualquier caso, 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-server-mysql/create.sql.gz | mysql zabbix -u zabbix -p
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
Instalación vía web
Vamos a instalar Zabbix Frontend en Debian 10 Buster mediante su instalador web. Para acceder al fronted 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.
Introducimos la contraseña y continuamos con la pantalla de conexión de Zabbix Frontend con Zabbix Server:
Normalmente el servidor Zabbix y el frontend se encuentran en la misma máquina (desde luego en este ejemplo es así), así que los valores por defecto son los correctos. No es necesario poner un nombre a la instalación.
Continuamos con la configuración del entorno gráfico:
Podremos modificar la zona horaria y 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 5.2 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, un nombre «visible» que actuará como nombre fácil de recordar e identificar, uno o varios grupos a los que pertenecerá el sistema remoto y 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 terminado, pasa a la solapa «Templates» de este mismo formulario:
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.
Cuando hayas acabado la configuración pulsa el botón «Add» 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 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 invitarme a un café!
O también puedes dejar 1 $ de propina desde PayPal:
¡Gracias!