Introducción
Zabbix es una de las herramientas de software de monitoreo de código abierto más populares. Zabbix recopila métricas de dispositivos, sistemas y aplicaciones de red y garantiza que estén en funcionamiento. En caso de problemas, Zabbix enviará alertas de notificación a través de varios métodos.
Zabbix se puede implementar para monitoreo basado en agentes y sin agentes. Zabbix Agent ocupa poco espacio y puede ejecutarse en varias plataformas, incluidas Linux, UNIX, macOS y Windows.
Este tutorial describe cómo instalar y configurar la última versión de Zabbix 4.4 en un servidor Ubuntu 18.04 usando MySQL como el backend de la base de datos. También le mostraremos cómo instalar Zabbix-agent en un host remoto y cómo agregar el host al servidor Zabbix.
Prerrequisitos
Antes de continuar con este tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo.
Si desea instalar Zabbix en un servidor remoto, continúe leyendo, de lo contrario omita el primer párrafo "Conectando al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Crea la base de datos MySQL
Zabbix es compatible con MySQL /MariaDB y PostgreSQL. En este tutorial, usaremos MySQL como el backend de la base de datos.
Si aún no ha instalado MySQL en su servidor Ubuntu, puede instalarlo siguiendo estas instrucciones.
Inicie sesión en el shell de MySQL escribiendo el siguiente comando:
sudo mysql
O si siguió nuestra guía y estableció una contraseña para el usuario root, use el siguiente comando:
sudo mysql -u root -p
Desde dentro del shell de MySQL, ejecute la siguiente declaración SQL para crear una nueva base de datos:
CREATE DATABASE zabbix CHARACTER SET utf8 collate utf8_bin;
A continuación, cree una cuenta de usuario de MySQL y otorgue acceso a la base de datos:
GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Asegúrese de cambiar change-with-strong-password
por una contraseña segura.
Una vez hecho esto, salga de la consola mysql escribiendo:
EXIT;
Instalar Zabbix en Ubuntu
En el momento de escribir este artículo, la última versión estable de Zabbix es la versión 4.4. Los paquetes Zabbix disponibles en los repositorios de Ubuntu a menudo están desactualizados, por lo que usaremos el repositorio oficial de Zabbix.
Descargue el último .deb
con el siguiente comando wget:
wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
Una vez que se descargue el archivo, agregue el repositorio Zabbix a su sistema Ubuntu 18.04 escribiendo:
sudo apt install./zabbix-release_4.4-1+bionic_all.deb
Actualice el índice del paquete e instale el servidor Zabbix, la interfaz web con soporte de base de datos MySQL y el agente Zabbix:
sudo apt update
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
El comando anterior también instalará Apache, PHP y cualquier módulo PHP requerido.
Configurar PHP para la interfaz de Zabbix
Durante la instalación, se crea un archivo de configuración de Apache que contiene todas las configuraciones de Apache y PHP necesarias. Solo necesita hacer un pequeño cambio y establecer la zona horaria adecuada.
Abra el archivo de configuración, elimine el comentario de la línea de zona horaria php_value date.timezone...
y cámbielo a su zona horaria. Puede encontrar la lista completa de zonas horarias compatibles con PHP aquí.
sudo nano /etc/apache2/conf-enabled/zabbix.conf
...
<IfModule mod_php7.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Rige
</IfModule>...
Una vez hecho esto, guarde el archivo de configuración y reinicie el servicio Apache para que los cambios surtan efecto:
sudo systemctl restart apache2
Configurar la base de datos MySQL para Zabbix Server
El paquete de instalación de Zabbix proporciona un archivo de volcado que incluye un esquema inicial y datos para el servidor Zabbix con MySQL.
Importe el archivo de volcado de MySQL ejecutando:
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
Cuando se le solicite, ingrese la contraseña de usuario que creó anteriormente. Si tiene éxito, no se proporciona ningún resultado.
A continuación, debemos cambiar la configuración de Zabbix y establecer la contraseña de la base de datos.
Abra el archivo de configuración en su editor:
sudo nano /etc/zabbix/zabbix_server.conf
Busque la siguiente sección, descomente la DBPassword
y agregue la contraseña de la base de datos.
...
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=change-with-strong-password...
Guarde y cierre el archivo.
Reinicie el servidor Zabbix y los servicios del agente y déjelos comenzar al inicio del sistema:
sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2
Para verificar si el servidor Zabbix se está ejecutando, escriba:
sudo systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-02-13 23:51:02 CET; 13min ago
Process: 22303 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 22307 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
Main PID: 22319 (zabbix_server)
Tasks: 34 (limit: 2298)
CGroup: /system.slice/zabbix-server.service
Instalar y configurar Zabbix Frontend
La interfaz web de Zabbix está escrita en PHP y nos permite configurar el servidor, ver los datos recopilados y agregar hosts que queremos monitorear.
Antes de que pueda comenzar a utilizar la interfaz web, debe instalarla.
Abra su navegador favorito y escriba el nombre de dominio o la dirección IP pública de su servidor seguido de /zabbix
:
http(s)://DOMINIO_O_IP/zabbix
En la primera pantalla, se le presentará un mensaje de bienvenida. Haga clic en Next step
para continuar.
A continuación, verá la página de información que enumera todos los requisitos previos de PHP necesarios para ejecutar Zabbix Frontend. Todos los valores de esta tabla deberían estar OK
, desplácese hacia abajo para asegurarse de que todo esté configurado correctamente. Una vez verificado, haga clic en Next step
para continuar.
En la siguiente pantalla, el asistente de configuración le pedirá que ingrese los detalles de su conexión a la base de datos. Ingrese el usuario creado anteriormente y los detalles de la base de datos MySQL.
La introducción de un nombre para el servidor es opcional. Introdúzcalo si tiene más de un servidor de monitoreo Zabbix. Si se proporciona, aparecerá en la barra de menú y en los títulos de las páginas.
Haga clic para continuar Next step
.
En la siguiente pantalla, se le mostrará el resumen de la preinstalación.
Haga clic en Next step
y una vez que se complete la instalación, será redirigido a una página que le informa que se ha instalado la interfaz web de Zabbix. Para acceder a su página de inicio de sesión de Zabbix, haga clic en el botón Finish
El usuario predeterminado es " Admin " y la contraseña es " zabbix ". Ingrese su nombre de usuario y contraseña y haga clic Log in
botón Iniciar sesión.
Una vez que haya iniciado sesión, será redirigido al panel de administración de Zabbix.
Desde aquí puede comenzar a personalizar la instalación de Zabbix y agregar nuevos hosts. El primer paso debería ser cambiar la contraseña actual. Para hacer esto, vaya a la página de perfil de usuario haciendo clic en el icono de perfil en la barra de navegación superior.
Agregue un nuevo host al servidor Zabbix
El procedimiento para agregar un nuevo host de monitoreo al servidor Zabbix incluye dos pasos.
Primero, debe instalar Zabbix-Agent en el host remoto y luego agregar el host al servidor Zabbix a través de la interfaz web.
Instalar Zabbix-Agent
Este tutorial asume que la máquina host también usa Ubuntu 18.04.
Al igual que durante la instalación del servidor Zabbix, ejecute los siguientes comandos para habilitar el repositorio Zabbix:
wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
sudo apt install./zabbix-release_4.4-1+bionic_all.deb
Actualice el índice del paquete e instale el paquete del agente Zabbix:
sudo apt update
sudo apt install zabbix-agent
Zabbix admite dos métodos para cifrar las comunicaciones servidor-cliente, clave precompartida (PSK) y cifrado basado en certificados. En este tutorial, usaremos el método de claves precompartidas (PSK) para asegurar la conexión entre el servidor y el agente.
Utilice el siguiente comando para generar una clave previamente compartida y guardarla en un archivo:
openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_agentd.psk
La clave PSK se verá así:
a6372653a13156a055fe5e5fee6de79f92949190a5fd2c37f5e9988bbce40eee
Abra el archivo de configuración del agente Zabbix:
sudo nano /etc/zabbix/zabbix_agentd.conf
Busque el Server=127.0.0.1
y cámbielo ingresando la dirección IP del servidor Zabbix:
...
### Option: Server
# List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
# Incoming connections will be accepted only from the hosts listed here.
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
# and '::/0' will allow any IPv4 or IPv6 address.
# '0.0.0.0/0' can be used to allow any IPv4 address.
# Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
#
# Mandatory: yes, if StartAgents is not explicitly set to 0
# Default:
# Server=
Server=127.0.0.1...
Luego, busque la TSLConnect
, descomente y psk
en psk:
...
### Option: TLSConnect
# How the agent should connect to server or proxy. Used for active checks.
# Only one value can be specified:
# unencrypted - connect without encryption
# psk - connect using TLS and a pre-shared key
# cert - connect using TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
TLSConnect=psk...
Busque la TLSAccept
, descomente y psk
en psk:
...
### Option: TLSAccept
# What incoming connections to accept.
# Multiple values can be specified, separated by comma:
# unencrypted - accept connections without encryption
# psk - accept connections secured with TLS and a pre-shared key
# cert - accept connections secured with TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
TLSAccept=psk...
A continuación, busque la TLSPSKIdentity
, descomente y PSK 001
. El valor debe ser una cadena única:
...
### Option: TLSPSKIdentity
# Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKIdentity=PSK 001...
Finalmente, ubique la TLSPSKFile
, descomente y configúrela para que apunte a la clave previamente compartida creada anteriormente:
...
### Option: TLSPSKFile
# Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk...
Una vez hecho esto, guarde y cierre el archivo.
Inicie el servicio del agente Zabbix y configúrelo para que se inicie al inicio con:
sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent
A continuación, deberá agregar una regla de firewall que habilite el tráfico desde su servidor Zabbix en el puerto TCP 10050
.
Suponiendo que está utilizando UFW
para administrar su firewall y desea permitir el acceso desde la dirección IP 192.168.222.222
, ejecutará el siguiente comando:
sudo ufw allow proto tcp from 192.168.222.222 to any port 10050
Configurar un nuevo anfitrión
Ahora que el agente que desea monitorear está instalado y configurado en el host remoto, el siguiente paso es registrar el host en el servidor Zabbix.
Inicie sesión en la interfaz web del servidor Zabbix como usuario administrador:
http(s)://DOMINIO_O_IP/zabbix
Una vez dentro, en la barra de navegación superior haga clic en Configuration
, luego Hosts
Luego, haga clic en el Create host
en la esquina superior derecha de la pantalla y se abrirá la página de configuración del host.
Ingrese el nombre de host y la dirección IP de la computadora host remota que desea monitorear. Agregue el anfitrión a uno o más grupos seleccionando el grupo de la lista, o ingrese un nombre de grupo inexistente para crear uno nuevo. El Linux Servers
es una buena opción.
Una vez hecho esto, haga clic en la pestaña Templates
Por ejemplo, seleccione Template OS Linux by Zabbix agent
.
Luego, haga clic en la pestaña Encryption
Seleccione PSK tanto para las Connections to host
como para las Connections from host
.
Establezca el valor de PSK identity
PSK 001
, el valor de la TLSPSKIdentity
configurada en el paso anterior.
En el PSK value
agregue la clave generada para el agente Zabbix, la que está almacenada en el archivo /etc/zabbix/zabbix_agentd.psk
Finalmente, para agregar el host, haga clic en el botón Add
La configuración está terminada.
Si experimenta errores de conexión entre el servidor y el host, verifique cuidadosamente las configuraciones y reinicie los servicios en el servidor y el host Zabbix.
Reinicie los servicios en el servidor Zabbix:
sudo systemctl restart zabbix-server zabbix-agent apache2
Reinicie el servicio del agente Zabbix en el host:
sudo systemctl restart zabbix-agent
Conclusión
Ha instalado con éxito la última versión de Zabbix en su sistema Ubuntu y ha aprendido a agregar nuevos hosts que desea monitorear.
Ahora debería consultar la documentación de Zabbix y aprender más sobre cómo configurar y usar Zabbix.
Si tiene algún problema o tiene comentarios, deje un comentario a continuación.