En esta entrada veremos cómo instalar Zabbix en Ubuntu 18.04 LTS Bionic Beaver paso a paso, concretamente los módulos Zabbix Server, Zabbix Frontend y Zabbix Agent. De este modo podremos monitorizar sistemas locales y remotos, incluso un VPS Ubuntu, a través de una cómoda interfaz web.
Contenido
Antes de instalar Zabbix en Ubuntu 18.04 LTS
Para poder completar esta guía de instalación y configuración de Zabbix en Ubuntu 18.04 LTS Bionic Beaver necesitas satisfacer los siguientes requerimientos básicos:
- Una instalación actualizada de Ubuntu 18.04 LTS Bionic Beaver.
- Entorno o pila tipo LAMP, es decir, servicio web con PHP y bases de datos (MariaDB 10.5 ó superior, PostgreSQL 13 ó superior).
- Acceso a consola con un usuario con permisos de sudo.
- Conexión a Internet.
Si aún no tienes el entorno, puedes echar un vistazo previo a la guía de instalación LAMP en Ubuntu 18.04 LTS y la guía de instalación de PostgreSQL en Ubuntu 18.04 LTS. En esta guía usamos Apache y MariaDB/MySQL, pero puedes usar también Nginx y PostgreSQL.
Los componentes de Zabbix son:
- Zabbix Server: El servidor que centraliza la información que recibe de las máquinas monitorizadas. Disponible para MariaDB/MySQL o para PostgreSQL.
- Zabbix Agent: El servicio que recoge información de la máquina y la envía al servidor Zabbix.
- Zabbix Frontend: La aplicación web que conecta con el servidor Zabbix para interactuar con él, extrayendo información o configurándolo.
En este tutorial montaremos un servidor Zabbix con el frontend y el agente, todo en la misma máquina, con lo que podremos monitorizar el propio servidor. Posteriormente añadiremos máquinas remotas para monitorizar.
Cómo instalar Zabbix en Ubuntu 18.04 LTS
Vamos a instalar Zabbix en Ubuntu 18.04 LTS Bionic Beaver desde el repositorio oficial de Zabbix, ya que mientras que la última versión estable de Zabbix es la 6, en los repositorios de la Ubuntu 18.04 se ofrece la versión 3.
Instalar el repositorio de Zabbix para Ubuntu 18.04
Empezaremos descargando el paquete que contiene la información del repositorio de Zabbix para Ubuntu 18.04 LTS Bionic Beaver:
~$ wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu18.04_all.deb
Instalamos el paquete:
~$ sudo dpkg -i zabbix-release_6.0-1+ubuntu18.04_all.deb
Y actualizamos las listas de los repositorios, que ya incluyen el nuevo repositorio de Zabbix:
~$ sudo apt update
Debemos repetir el proceso anterior en cada máquina Ubuntu 18.04 que queramos monitorizar, para poder instalar posteriormente Zabbix Agent en cada una de ellas
Instalar Zabbix en Ubuntu 18.04 LTS
A continuación instalaremos los paquetes que necesitamos:
~$ sudo apt install -y zabbix-frontend-php zabbix-server-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Si usas Nginx deberás sustituir zabbix-apache-conf por zabbix-nginx-conf, y si usas PostgreSQL sustituye zabbix-server-mysql por zabbix-server-pgsql.
Tras la descarga e instalación de estos paquetes y sus dependencias se crean dos nuevos servicios en Ubuntu 18.04, zabbix-agent.service y zabbix-server.service o, si prefieres los nombres cortos, zabbix-agent y zabbix-server.
El servicio Zabbix Agent queda en ejecución, pero no habilitado para su inicio automático, así que si lo queremos tener siempre disponible, lo habilitaremos:
~$ sudo systemctl enable zabbix-agent
Por otro lado, el servicio Zabbix Server no está iniciado ni habilitado. Pero aún no vamos a modificar esto, ya que quedan tareas por hacer.
Recargaremos la configuración del servidor web, ya que se incluyen configuraciones adicionales:
~$ sudo systemctl reload apache2
Preparativos de PHP
Zabbix 6 requiere una serie de extensiones de este lenguaje de programación que instalaremos desde los repositorios. Si trabajamos con la versión incluida en la distribución no habrá que hacer nada, ya que los paquetes necesarios se instalarán automáticamente como dependencias.
Pero si trabajamos con alguna otra versión procedente del repositorio alternativo, el proceso se complica un poco, ya que Zabbix habrá instalado como dependencias las extensiones para la última versión estable (la 8.1 en el momento de actualizar este artículo). Por tanto habrá que instalar manualmente los paquetes adecuandos indicando en su nombre el número de la versión con que trabajábamos; 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
Y acto seguido establecemos como versión por defecto del lenguaje la que teníamos previa a la instalación de Zabbix usando el comando update-alternatives:
~$ sudo update-alternatives --config php Existen 2 opciones para la alternativa php (que provee /usr/bin/php). Selección Ruta Prioridad Estado ------------------------------------------------------------ * 0 /usr/bin/php8.1 81 modo automático 1 /usr/bin/php7.4 74 modo manual 2 /usr/bin/php8.1 81 modo manual Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección: 1 update-alternatives: utilizando /usr/bin/php7.4 para proveer /usr/bin/php (php) en modo manual
Terminado este proceso, reiniciamos el servicio web o el servicio PHP-FPM:
~$ sudo systemctl restart apache2
Preparativos de la base de datos
Zabbix necesita una base de datos sobre la que trabajar y en este tutorial explicamos los tipos más usados.
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 charset utf8mb4 collate utf8mb4_bin;
Creamos el usuario:
> create user zabbix@localhost identified by 'XXXXXXXX';
Sólo queda aplicar los permisos necesarios del usuario sobre la base:
> grant all privileges on zabbix.* to zabbix@localhost;
Ya podemos cerrar el cliente:
> exit
Ahora es necesario crear la infraestructura inicial sobre la base de datos, para lo que Zabbix incluye un archivo para cargarlo en la base:
~$ zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz |mysql zabbix -u zabbix -p
En el comando anterior usaremos la contraseña del usuario zabbix que hemos creado hace un momento.
PostgreSQL
Creamos el rol para administrar la base:
~$ sudo -u postgres createuser -P zabbix
Indicaremos la contraseña y su confirmación.
A continuación creamos la base de datos asociándola al nuevo rol:
~$ sudo -u postgres createdb zabbix -O zabbix
Cargamos la base de datos con el script SQL proporcionado por Zabbix 6:
~$ zcat /usr/share/doc/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql -q zabbix
Se nos pedirá la contraseña del usuario zabbix que acabamos de crear. El proceso tomará unos instantes.
Configuración de Zabbix Server
Editamos el archivo de configuración:
~$ sudo nano /etc/zabbix/zabbix_server.conf
Buscamos la directiva DBPassword:
... # DBPassword= ...
Está desactivada, así que la activamos eliminando el carácter # inicial y asignamos la contraseña que hayamos creado para el usuario de la base de datos de Zabbix:
... DBPassword=XXXXXXXX ...
Guardamos y cerramos.
Ahora podemos iniciar el servicio Zabbix Server y habilitarlo:
~$ sudo systemctl enable --now zabbix-server
Configuración del firewall de Ubuntu 18.04 para Zabbix Server
Si tienes activado el firewall UFW en Ubuntu 18.04 debes añadir una regla para el servidor Zabbix, que puede esperar conexiones activas de los agentes en el puerto TCP 10051:
~$ sudo ufw allow 10051/tcp
Instalación de Zabbix Frontend
Es el momento de instalar Zabbix Frontend en Ubuntu 18.04 LTS a través del navegador añadiendo la ruta /zabbix a la dirección IP o dominio del sistema.
Por ejemplo, el servidor Ubuntu 18.04 en el que realizamos este tutorial es accesible en el subdomnio o nombre DNS ubuntu64.local.lan, por lo que usamos http://ubuntu64.local.lan/zabbix como URL:
Pasamos de la página de bienvenida a la comprobación de los requisitos de Zabbix 6, donde se mostrarán estos y si nuestro sistema Ubuntu 18.04 LTS los cumple o no:
La siguiente página solicitará los datos de conexión a la base de datos que tenemos en Ubuntu 18.04 para Zabbix, y que configuramos en un paso anterior:
A continuación habrá que confirmar los datos del servidor Zabbix:
Si especificas un valor para «Zabbix Server Name» tendrás que reconfigurar todos los agentes Zabbix que conecten a este servidor para que usen el nombre especificado.
Comprueba si la zona horaria indicada es la adecuada y modifícala si fuese necesario.
Una página de resumen nos mostrará toda la personalización y configuración de la instalación:
Finalmente, la instalación termina y nos informa de en qué archivo ha guardado la configuración de Zabbix:
Continuamos pulsando el botón «Finish» y aparecerá la página de inicio de sesión de Zabbix Frontend, donde tendremos que indicar el usuario y la contraseña:
El usuario administrador es Admin, y su contraseña por defecto es también zabbix. No olvides cambiar cuanto antes la contraseña en la administración del usuario en el panel de control de Zabbix.
Al iniciar sesión se nos mostrará la página principal del panel de control:
Cómo monitorizar máquinas remotas Ubuntu 18.04 LTS
En cada máquina Ubuntu 18.04 LTS que queramos monitorear desde el servidor Zabbix, y en la que previamente habremos instalado el repositorio de Zabbix, instalaremos únicamente el paquete del agente Zabbix:
~$ sudo apt install -y zabbix-agent
Tras la instalación, el servicio zabbix-agent queda iniciado, pero no habilitado, así que si queremos tenerlo siempre disponible debemos habilitarlo para que inicie junto a Ubuntu 18.04:
~$ sudo systemctl enable zabbix-agent
Configurar el firewall de Ubuntu 18.04 para Zabbix Agent
Si tienes instalado el firewall UFW en Ubuntu 18.04, deberías añadir una regla que permita que el servidor conecte con la máquina remota en el puerto TCP 10050:
~$ sudo ufw allow 10050/tcp
Configurar Zabbix Agent en Ubuntu 18.04
La configuración por defecto del agente Zabbix en Ubuntu 18.04 está pensada para conectar a un servicio local. Por este motivo debemos ajustarla para conectar al servidor Zabbix, que se encuentra en otra máquina:
~$ sudo nano /etc/zabbix/zabbix_agentd.conf
Buscamos la directiva Server:
... Server=127.0.0.1 ...
Y cambiamos su valor por la dirección IP o dominio del servidor Zabbix:
... Server=ubuntu64.local.lan ...
Igualmente hacemos con la directiva ServerActive:
... ServerActive=127.0.0.1 ...
Que modificamos de la misma forma:
... ServerActive=ubuntu64.local.lan ...
Si hubieras modificado en la instalación del servidor Zabbix su nombre, deberías modificar también el valor de la directiva Hostname:
... Hostname=Zabbix server ...
Si no lo modificaste entonces el valor por defecto es correcto.
Guardados los cambios, es necesario reiniciar el servicio para aplicarlos:
~$ sudo systemctl restart zabbix-agent
Configurar la máquina remota Ubuntu 18.04 en Zabbix Frontend
De vuelta a Zabbix Fronted en el servidor, añadiremos la máquina Ubuntu 18.04 en la que acabamos de configurar Zabbix Agent.
Para ello iremos a la sección «Configuration» / «Hosts«:
Pulsaremos el botón «Create host» y se abrirá un formulario con varios apartados en forma de solapas, empenzando con el apartado «Host«, que en principio es el único que necesitamos configurar:
Introduciremos el nombre del sistema, un nombre «visible» o etiqueta, una o más plantillas y grupos para organizar las máquinas remotas y una interfaz de conexión con la máquina remota.
Las plantillas («Templates«) son importantes porque contienen preajustes de servicios, gráficos, etc. Pulsando el botón «Select» aparecerá el desplegable en el que podemos seleccionar la plantilla que nos interese, empezando por un grupo de plantillas como «Templates/Operanting systems» y eligiendo «Linux by Zabbix agent» dentro de dicho grupo para este ejemplo.
En cuanto a la interfaz la creamos con «Add«, elegimos el tipo «Agent» y configuramos el método de conexión por dirección IP o nombre DNS del sistema remoto.
Al terminar pulsaremos el botón «Add» y se añadirá la máquina remota a la configuración de Zabbix Server. Se nos redirige automáticamente a la sección «Configuration» / «Hosts«:
Podremos ver en la parte inferior de la página la nueva máquina remota añadida y su datos.
La plantilla incluye gráficos predeterminados, así que si queremos echarles un vistazo visitaremos la sección «Monitoring» / «Hosts«, donde veremos la lista de máquinas monitorizadas actualmente (el propio servidor y la máquina remota en el ejemplo de este tutorial):
Haciendo clic sobre el nombre de la máquina remota en la lista aparecerá un menú contextual dentro de cuya sección «HOST» elegiremos la opción «Graph«, que nos llevará a la página de gráficos de la máquina:
Ahí está la actividad de la máquina remota.
Este proceso lo podrás repetir con tantas máquinas remotas como quieras.
Conclusión
Ya sabes cómo instalar Zabbix 6 en Ubuntu 18.04 LTS Bionic Beaver y puedes monitorear los sistemas de tu red local o incluso servidores y máquinas VPS en Internet.
En caso de que te surja alguna duda, pregunta, sugerencia, etc. puedes dejar un comentario.
¡Apoya este sitio!
¿Ya monitorizas tus sistemas gracias a esta pequeña guía de instalación y configuración de Zabbix 6 en Ubuntu 18.04 LTS? Si es así y te apetece agradecérnoslo, la más mínima aportación contribuye mucho al mantenimiento de este sitio web y a la creación de más tutoriales.
Puedes ayudarnos dejando tan solo 1 $ de propina con PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café:
¡Gracias!
Actualizado a la versión 6.0.5.
Gracias por el excelente manual de Zabbix.
Me alegro de que te haya servido, David. ¡Y gracias a ti por el apoyo!
Hola, tengo un problema al monitorizar los nodos de cassandra, el nodo a monitorizar presenta el problema en JMX (cannot connect to [[X.X.X.X]:10052]:[111] Connection refused), no logro encontrar una solución. Gracias de antemano.
Si Zabbix Server y Zabbix Java Gateway son máquinas separadas, ¿está abierto el puerto 10052/tcp en la máquina Zabbix Java Gateway, y el servicio en ejecución y aceptando conexiones remotas en ese puerto?
Buenas noches, tengo un problema cuando llego al wizard del servidor web de Zabbix en el tema del usuario y contraseña me dice que el acceso es denegado
El usuario es Admin y la contraseña zabbix.