En este artículo veremos cómo instalar Zabbix en Debian 8 paso a paso, de modo que puedas utilizar Zabbix Server, Zabbix Frontend y Zabbix Agent para monitorizar todos tus sistemas desde tu viejo servidor o VPS Debian.
Tabla de contenidos
Antes de instalar Zabbix en Debian 8
En orden de porder completar esta guía de instalación de Zabbix en Debian 8 Jessie, es importante cumplir los siguientes requisitos básicos:
- Una máquina Debian 8 Jessie lo más actualizada posible.
- Un entorno o pila tipo LAMP (servicio web con PHP y bases de datos).
- Un usuario con capacidades de sudo, o el mismo root.
- Acceso a Internet.
Si todavía no dispones del entorno mínimo, sería buena idea pasarse antes por nuestra guía de instalación de la pila LAMP en Debian 8 Jessie.
Cómo instalar el repositorio de Zabbix para Debian 8
El primer paso será instalar el repositorio de Zabbix para Debian 8 Jessie, donde encontraremos paquetes actualizados para los módulos de Zabbix. Vamos a configurar el repositorio de Zabbix en cada máquina de las que intervengan en la topología de Zabbix que queremos monitorizar.
Este proceso es el mismo para todas las máquinas Debian 8 en las que se instale algún componente de Zabbix
Descargamos el paquete que configura el repositorio:
~$ wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+jessie_all.deb
Y lo instalamos:
~$ sudo dpkg -i zabbix-release_4.4-1+jessie_all.deb
Actualizamos la información de los repositorios para que se tengan en cuenta los nuevos paquetes disponibles en el repositorio de Zabbix:
~$ sudo apt update
Cómo instalar Zabbix Server en Debian 8
A la hora de instalar Zabbix Server en Debian 8 instalaremos aquellos modulos de Zabbix Server, Zabbix Frontend y Zabbix Agent que correspondan a la configuración de nuestro sistema, basado en este caso en Apache y MariaDB/MySQL:
~$ sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
Si tienes PostgreSQL como servicio de bases de datos bastaría con cambiar el paquete zabbix-server-mysql por zabbix-server-pgsql.
Con los paquetes y sus dependencias descargados e instalados, podemos empezar a realizar la configuración necesaria.
Base de datos
En este tutorial presentaremos las dos opciones más usadas en Debian 8 como base de datos para Zabbix Server, sólo tienes que realizar los pasos de la que se corresponda con tu sistema.
PostgreSQL
Crearemos un rol con contraseña para Zabbix:
~$ sudo -u postgres createuser -P zabbix Ingrese la contraseña para el nuevo rol: Ingrésela nuevamente:
Y creamos la base de datos asociada:
~$ sudo -u postgres createdb zabbix -O zabbix
Sólo queda inicializar la base de datos con el archivo SQL que ofrece el paquete:
~$ zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -u zabbix psql zabbix > /dev/null
Más fácil imposible.
MariaDB/MySQL
Conectamos al servicio con el cliente mysql y un administrador:
~$ mysql -u root -p
Creamos la base:
> create database zabbix character set utf8 collate utf8_bin;
En MariaDB o MySQL 5 creamos el usuario así:
> create user zabbix@localhost identified by 'XXXXXXXX';
Pero en MySQL 8 especificamos el plugin de autenticación compatible:
> create user zabbix@localhost identified with mysql_native_password by 'XXXXXXXX';
En ambos casos concedemos los permisos necesarios al usuario:
> grant all privileges on zabbix.* to zabbix@localhost;
Y cerramos la sesión:
> exit
Cargamos la nueva base con los datos iniciales a partir de un archivo SQL que proporciona el paquete:
~$ zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz |mysql -u zabbix -p zabbix
Se nos pedirá la contraseña del usuario que acabamos de crear.
PHP
Zabbix requiere la instalación en Debian 8 Jessie de varias exensiones que obtendremos directamente desde los repositorios (sustituye php7.3 por php7.x si tienes una versión distinta):
~$ sudo apt install -y php7.3-{bcmath,ldap,mbstring,gd,xml}
Terminada la descarga e instalación de las extensiones, recargamos la configuración del servicio web o PHP, dependiendo de nuestro sistema:
~$ sudo systemctl reload apache2
Configuración de Zabbix
Editamos la configuración del servicio 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 el valor de la contraseña del usuario de la base de datos:
... DBPassword=XXXXXXXX ...
No es necesario indicar el nombre de la base de datos y del usuario porque en el ejemplo los hemos creado con los valores por defecto. Pero si los has cambiado bastará con buscar y modificar las directivas DBName y DBUser.
Guardamos los cambios y cerramos el archivo.
Arrancando los servicios
Con Zabbix Server configurado, es el momento de iniciar el servicio:
~$ sudo systemctl start zabbix-server
Y si queremos que Zabbix Server inicie automáticamente con cada arranque de Debian 8, habilitaremos este servicio:
~$ sudo systemctl enable zabbix-server
Zabbix Agent quedó en ejecución tras su instalación, pero no habilitado, así que si queremos tenerlo siempre disponible en esta máquina Debian 8, lo habilitaremos también:
~$ sudo systemctl enable zabbix-agent
Finalmente, reiniciamos el servicio web para que aplique todas las configuraciones de Zabbix:
~$ sudo systemctl restart apache2
Instalador web
Es el momento de iniciar el instalador de Zabbix, para ensamblar Zabbix Frontend y Zabbix Server. Accedemos al servidor Debian 8 Jessie mediante su dirección añadiendo el alias /zabbix.
Por ejemplo, en este tutorial trabajamos sobre un servidor Debian 8 accesible en el subdominio o nombre DNS debian8.local.lan, por lo que usamos http://debian8.local.lan/zabbix como URL, que nos redirigirá a la página de bienvenida del instalador:
La siguiente página del instalador mostrará la lista de comprobación de requisitos:
Si has seguido los pasos anteriores, se cumplirán todos los requisitos, por lo que podremos continuar.
Es el turno de la configuración de la base de datos:
Elegimos el motor de base de datos con el que vamos a trabajar y cumplimentamos los datos de la conexión en el formulario. En este caso sólo es necesario introducir la contraseña, ya que el usuario y la base fueron creados con los nombres por defecto.
Seguimos con la configuración del servidor Zabbix:
Como Zabbix Frontend y Zabbix Server se encuentran en la misma máquina, dejamos los valores por defecto.
En cuanto al nombre del servidor lo dejamos en blanco (se asumirá el valor Zabbix Server), ya que si realizamos cambios tendríamos que reconfigurar el servidor y los agentes con el mismo nombre para permitir la interconexión.
Se mostrará un resumen de configuración de la instalación:
Aún estaríamos a tiempo de retroceder y cambiar los valores que consideremos necesario. En este ejemplo podemos continuaremos sin más.
La instalación llega a su fin y se nos informa de la creación del archivo en el que se han guardado los datos de configuración.
Al finalizar la instalación se abre la página de inicio de sesión:
Las credenciales de acceso por defecto son usuario Admin y contraseña zabbix. Por seguridad, no olvides modificarlas tan pronto como sea posible.
Al iniciar sesión se mostrará la página principal de monitorización de Zabbix, donde ya podremos ver datos sobre la máquina local (si decidiste instalar el agente Zabbix para el servidor):
Si visitamos la sección «Monitoring / Graphs«, seleccionamos en el desplegable «Host» la máquina local etiquetada como «Zabbix server«, y elegimos algún gráfico en el desplegable «Graph«, podremos ver la gráfica de actividad correspondiente:
¡Perfecto!
Cómo instalar el agente Zabbix (Zabbix Agent) en una máquina remota Debian 8
Con el repositorio de Zabbix para Debian 8 instalado y configurado, como vimos al inicio de este tutorial, bastará con instalar el agente Zabbix, paquete zabbix-agent, con apt:
~$ sudo apt install -y zabbix-agent
El servicio zabbix-agent.service se inicia automáticamente tras la instalación, pero debemos configurarlo para que pueda ser contactado desde Zabbix Server, para lo que editaremos su archivo de configuración:
~$ sudo nano /etc/zabbix/zabbix_agentd.conf
Buscaremos la directiva Server:
... Server=127.0.0.1 ...
El valor por defecto es la dirección de la máquina local, que es precisamente por lo que Zabbix Agent funciona sin realizar ajustes de configuración en la misma máquina que Zabbix Server, como vimos antes. Pero en una máquina remota hay que permitir la conexión desde el servidor, por lo que sustituiremos el valor por defecto por la dirección IP o nombre DNS de la máquina Debian 8 que actúa como servidor Zabbix:
... Server=debian8.local.lan ...
Podemos guardar los cambios y reiniciar el servicio para aplicarlos:
~$ sudo systemctl restart zabbix-agent
Además, Zabbix Agent no está configurado por defecto para iniciar junto a Debian 8, por lo que será buena idea habilitarlo:
~$ sudo systemctl enable zabbix-agent
Cómo configurar el firewall UFW de Debian 8 para Zabbix Agent
Si tienes activado el firewall UFW en Debian 8 Jessie, será necesario añadir una regla para permitir las conexiones entrantes desde el servidor Zabbix. El puerto en que escucha el agente Zabbix es el 10050/TCP, así que añadiremos la regla pertinente por nombre del servicio:
~$ sudo ufw allow zabbix-agent
O si lo prefieres por número de puerto:
~$ sudo ufw allow 10050
Hemos terminado de configurar la máquina remota.
Cómo añadir máquinas remotas a Zabbix Server en Debian 8 Jessie
Con el servidor Zabbix activo y las máquinas remotas configuradas, el siguiente paso es monitorizarlas a través de Zabbix Frontend. Para ello regresaremos al panel de administración de Zabbix Server y visitaremos la sección «Configuration / Hosts«:
Mediante el botón «Create host» abriremos el formulario par dar de alta en el sistema la nueva máquina remota:
Introduciremos los siguientes datos:
- El nombre de la máquina.
- Un nombre visible que actuará como etiqueta.
- Al menos un grupo en el que incluir la máquina remota.
- En «Agent interfaces» elegiremos el método de direccionamiento (por dirección IP o nombre DNS) .
Pasaremos dentro del mismo formulario a la solapa «Templates«:
Mediante el botón «Select» añadimos al menos una plantilla que sea de aplicación al tipo de máquina remota, «Template OS Linux by Zabbix agent» va muy bien para la máquina Debian 8 de este ejemplo, ya que incorpora definiciones de servicios y gráficos listos para usar.
Terminada la selección completamos el proceo de alta mediante el botón «Add«.
Se nos redirige de nuevo a la sección «Configuration / Hosts» donde en la parte inferior de la página podremos ver en la lista la máquina remota recién dada de alta:
Si todo ha ido bien, la máquina ya aparecerá en la visión global de la sección «Monitoring / Dashboard«, e incluso podremos examinar sus gráficos de actividad en «Monitoring / Graphs» trabajando sobre las listas desplegables tal como hicimos con la máquina local anteriormente:
Conclusión
Ahora que sabes cómo instalar Zabbix Server en Debian 8 Jessie ya puedes monitorizar tus máquinas y dispositivos de red, tanto en LAN como a través de Internet, desde tu sistema operativo favorito.
Si tienes dudas, preguntas, alguna sugerencia para mejorar el artículo, crees que necesita actualización no has encontrado un error y lo quieres notificar, dejar un comentario es lo apropiado
Y ya puestos, si has puesto en marcha la monitorización de tu red gracias a esta breve guía de instalación de Zabbix Server, Zabbix Fronted y Zabbix Agent en Debian 8 Jessie, y quieres agradecérmelo, puedes dejar una pequeña propina de 1 $ en PayPal:
O, si te sientes más generoso que la media, puedes invitarme a un café:
¡Gracias!