Zabbix tutorial · 23 min read · Oct 09, 2025

Cómo instalar y configurar el servidor y cliente Zabbix en Rocky Linux 9

Zabbix es una solución de monitoreo gratuita y de código abierto para infraestructura de TI como redes, servidores, máquinas virtuales y servicios en la nube. Su núcleo está escrito en C y Java, con el frontend escrito en PHP. El frontend proporciona una interfaz basada en la web para rastrear y monitorear métricas como la utilización de la red, la carga de la CPU, el espacio en disco, etc., y enviar notificaciones basadas en disparadores personalizados.

Zabbix opera como un modelo Cliente/Servidor. Los clientes o agentes disponibles para varios sistemas operativos contactan al servidor para enviar los datos. Para sistemas sin un agente, Zabbix proporciona la opción de utilizar protocolos de monitoreo genéricos como el Protocolo Simple de Administración de Red (SNMP) o la Interfaz de Administración de Plataforma Inteligente (IPMI).

En este tutorial, aprenderás cómo instalar el servidor Zabbix y el cliente en un servidor Rocky Linux 9.

Requisitos previos

  • Dos servidores que ejecuten Rocky Linux 9. Uno funcionará como el servidor y el otro será el cliente que monitorearemos usando el servidor.
  • Un usuario no root con privilegios sudo.
  • Un Nombre de Dominio Totalmente Calificado (FQDN) como zabbix.example.com apuntando a tu servidor.
  • Una cuenta SMTP con un servicio de correo electrónico como Amazon SES o Mailgun.
  • Todo está actualizado. $ sudo dnf update
  • Se requieren algunos paquetes esenciales para que el tutorial y el servidor Zabbix funcionen. Algunos de estos ya estarán en tu servidor. $ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -y

Paso 1 - Configurar el Firewall

El primer paso es configurar el firewall. Rocky Linux utiliza Firewalld Firewall. Verifica el estado del firewall.

$ sudo firewall-cmd --state
running

El firewall trabaja con diferentes zonas, y la zona pública es la predeterminada que utilizaremos. Lista todos los servicios y puertos activos en el firewall.

$ sudo firewall-cmd --permanent --list-services

Debería mostrar la siguiente salida.

cockpit dhcpv6-client ssh

Los puertos 10050 y 10051 son requeridos por el servidor Zabbix para conectarse con el agente.

$ sudo firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent

Permite los puertos HTTP y HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Vuelve a verificar el estado del firewall.

$ sudo firewall-cmd --permanent --list-all

Deberías ver una salida similar.

public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client http https ssh
  ports: 10051/tcp 10050/tcp
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Recarga el firewall para habilitar los cambios.

$ sudo firewall-cmd --reload

Paso 2 - Configurar SELinux en modo permisivo

Configura SELinux para trabajar en modo permisivo. En este modo, SELinux no bloqueará ningún proceso, pero registrará todo en el archivo de registro de auditoría. Usaremos esto más tarde para configurar las reglas de SELinux.

$ sudo setenforce 0 && sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Verifica el estado de SELinux.

$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

Paso 3 - Configurar el repositorio de Nginx y PHP

El paquete Zabbix instalará automáticamente PHP y Nginx. Pero tomará versiones más antiguas de ellos. Por lo tanto, necesitamos asegurarnos de que el proceso instale la última versión disponible.

Crea y abre el archivo /etc/yum.repos.d/nginx.repo para editar.

$ sudo nano /etc/yum.repos.d/nginx.repo

Pega el siguiente código en él.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Una vez que hayas terminado, guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.

Habilita el repositorio principal de Nginx.

$ sudo dnf config-manager --enable nginx-mainline

A continuación, necesitamos configurar el repositorio de PHP.

El primer paso es obtener el repositorio Epel.

$ sudo dnf install epel-release -y

A continuación, instala el repositorio Remi.

$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

Verifica los flujos de PHP disponibles.

$ dnf module list php -y
Name    Stream              Profiles                                      Summary
php     8.1                 common [d], devel, minimal                    PHP scripting language

Remi's Modular repository for Enterprise Linux 9 - x86_64
Name    Stream              Profiles                                      Summary
php     remi-7.4            common [d], devel, minimal                    PHP scripting language
php     remi-8.0            common [d], devel, minimal                    PHP scripting language
php     remi-8.1            common [d], devel, minimal                    PHP scripting language
php     remi-8.2            common [d], devel, minimal                    PHP scripting language
php     remi-8.3            common [d], devel, minimal                    PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

La versión predeterminada es 8.1. En el momento de escribir este tutorial, Zabbix es compatible con PHP 8.2. Por lo tanto, habilita el repositorio PHP 8.2 de Remi. La próxima versión de Zabbix admitirá PHP 8.3, así que puedes habilitar eso si tu versión de Zabbix es 6.0.26 o superior.

$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.2

Ahora, podemos proceder a instalar Zabbix.

Paso 4 - Instalar el servidor Zabbix

Los paquetes de Zabbix se proporcionan por defecto en el repositorio EPEL. Antes de proceder con nuestra instalación, necesitamos deshabilitarlos. Abre el archivo /etc/yum.repos.d/epel.repo para editar y agrega la siguiente línea bajo la sección [epel].

[epel]
...
excludepkgs=zabbix*

Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.

La última versión de Zabbix es 6.4.x, pero nos quedaremos usando la versión LTS (Soporte a Largo Plazo) que es mucho más estable para un entorno de producción.

Instala el repositorio de Zabbix.

$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm

Elimina toda la caché de RPM.

$ sudo dnf clean all

Instala el servidor Zabbix, frontend y agente. Usaremos el servidor PostgreSQL para nuestro propósito y, por lo tanto, necesitamos el paquete zabbix-web-pgsql. Si estás usando MySQL/MariaDB/Percona, entonces necesitarás instalar el paquete zabbix-web-mysql.

$ sudo dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

Paso 5 - Instalar y configurar PostgreSQL

Zabbi funciona con PostgreSQL 13 y superior. Rocky Linux 9 se envía con PostgreSQL 13 por defecto. Sin embargo, usaremos PostgreSQL 16 para nuestro tutorial.

Instala el archivo RPM del repositorio de PostgreSQL.

$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Deshabilita el módulo de PostgreSQL incorporado.

$ sudo dnf -qy module disable postgresql

Ahora, puedes instalar PostgreSQL usando el siguiente comando.

$ sudo dnf install -y postgresql16-server postgresql16-contrib

Inicializa la base de datos.

$ sudo /usr/pgsql-16/bin/postgresql-16-setup initdb

Habilita el servicio de PostgreSQL.

$ sudo systemctl enable postgresql-16

Inicia el servicio de PostgreSQL.

$ sudo systemctl start postgresql-16

Verifica el estado del servicio de PostgreSQL.

$ sudo systemctl status postgresql-16
? postgresql-16.service - PostgreSQL 16 database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql-16.service; enabled; preset: disabled)
     Active: active (running) since Thu 2024-01-18 14:54:46 UTC; 10s ago
       Docs: https://www.postgresql.org/docs/16/static/
    Process: 3407 ExecStartPre=/usr/pgsql-16/bin/postgresql-16-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
   Main PID: 3412 (postgres)
      Tasks: 7 (limit: 24694)
     Memory: 17.4M
        CPU: 117ms
     CGroup: /system.slice/postgresql-16.service
             ??3412 /usr/pgsql-16/bin/postgres -D /var/lib/pgsql/16/data/
             ??3413 "postgres: logger "
             ??3414 "postgres: checkpointer "
             ??3415 "postgres: background writer "
             ??3417 "postgres: walwriter "
             ??3418 "postgres: autovacuum launcher "
             ??3419 "postgres: logical replication launcher "

Crea el usuario de base de datos Zabbix.

$ sudo -u postgres createuser --pwprompt zabbix

Se te pedirá la contraseña.

Enter password for new role: 
Enter it again: 

Crea la base de datos Zabbix.

$ sudo -u postgres createdb -O zabbix zabbix

Importa el esquema inicial y los datos de la base de datos. Nuevamente se te pedirá tu contraseña.

$ zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

Este proceso puede tardar un par de minutos en finalizar.

Abre el archivo /etc/zabbix/zabbix_server.conf para editar.

$ sudo nano /etc/zabbix/zabbix_server.conf

Encuentra la variable DBPassword, descoméntala eliminando el hash (#) frente a ella y establece su valor en la contraseña elegida en el paso anterior.

DBPassword=psqlpassword

Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.

Inicia y habilita los servicios del servidor y agente Zabbix.

$ sudo systemctl enable zabbix-server zabbix-agent --now

Paso 6 - Configurar PHP

Zabbix instala archivos de configuración de PHP y Nginx que utilizaremos. Sin embargo, necesitamos hacer algunas ediciones antes de poder usarlos.

Primero, necesitamos abrir /etc/php-fpm.d/zabbix.conf para editar.

$ sudo nano /etc/php-fpm.d/zabbix.conf

Cambia los valores de user = apache, y group = apache a nginx como se muestra a continuación.

user = nginx
group = nginx

Esto se debe a que, dado que estamos usando Nginx de su repositorio oficial, se ejecuta bajo el usuario nginx y no apache, que es lo que la copia de distribución de Nginx ejecuta.

También puedes editar cualquier otro valor relacionado con PHP o agregar cualquier definición personalizada aquí. Una vez terminado, guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.

Inicia y habilita el servicio PHP-FPM.

$ sudo systemctl enable php-fpm --now

Paso 7 - Instalar SSL

Necesitamos instalar Certbot para generar el certificado SSL. Usaremos el instalador de paquetes Snapd para eso. Dado que Rocky Linux no se envía con él, instala el instalador Snapd. Requiere el repositorio EPEL (Paquetes Adicionales para Linux Empresarial) para funcionar. Pero como ya lo instalamos en el paso 3, podemos avanzar directamente.

Instala Snapd.

$ sudo dnf install -y snapd

Habilita e inicia el servicio Snap.

$ sudo systemctl enable snapd --now

Instala el paquete central de Snap y asegúrate de que tu versión de Snapd esté actualizada.

$ sudo snap install core && sudo snap refresh core

Crea los enlaces necesarios para que Snapd funcione.

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

Instala Certbot.

$ sudo snap install --classic certbot

Usa el siguiente comando para asegurarte de que el comando Certbot se pueda ejecutar creando un enlace simbólico al directorio /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Verifica si Certbot está funcionando correctamente.

$ certbot --version
certbot 2.8.0

Ejecuta el siguiente comando para generar un certificado SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d zabbix.example.com

El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/zabbix.example.com en tu servidor.

Genera un certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Verifica el servicio programador de renovación de Certbot.

$ sudo systemctl list-timers

Encontrarás snap.certbot.renew.service como uno de los servicios programados para ejecutarse.

NEXT                        LEFT          LAST                        PASSED       UNIT                        ACTIVATES                 -------------------------------------------------------------------------------------------------------------------------------------    
Sat 2024-01-20 10:04:02 UTC 1min 32s left Sat 2024-01-20 08:52:11 UTC 1h 10min ago dnf-makecache.timer         dnf-makecache.service
Sun 2024-01-21 00:00:00 UTC 13h left      Sat 2024-01-20 00:00:10 UTC 10h ago      logrotate.timer             logrotate.service
Sat 2024-01-20 21:13:00 UTC 11h left      Sat 2024-01-20 08:19:11 UTC 1h 43min ago snap.certbot.renew.timer    snap.certbot.renew.service

Haz una prueba del proceso para verificar si la renovación de SSL está funcionando bien.

$ sudo certbot renew --dry-run

Si no ves errores, estás listo. Tu certificado se renovará automáticamente.

Paso 8 - Configurar Nginx

Zabbix instala un archivo de configuración Nginx predeterminado. Necesitamos editarlo para agregar el código para habilitar los certificados SSL. También necesitamos cambiar el puerto listen y agregar código para redirigir enlaces HTTP a HTTPS.

Abre el archivo /etc/nginx/conf.d/zabbix.conf para editar.

$ sudo nano /etc/nginx/conf.d/zabbix.conf

Edita el código para que el archivo se vea como el siguiente.

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;

    root /usr/share/zabbix;

    index index.php;

    access_log  /var/log/nginx/zabbix.access.log;
    error_log   /var/log/nginx/zabbix.error.log;

    ssl_certificate      /etc/letsencrypt/live/zabbix.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/zabbix.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/zabbix.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location = /favicon.ico {
        log_not_found   off;
    }

    location / {
        try_files $uri $uri/ =404;
    }

    location /assets {
        access_log off;
        expires 10d;
    }

    location ~ \.ht {
        deny all;
    }

    location ~ /(api/|conf[^\.]|include|locale) {
        deny            all;
        return          404;
    }

    location /vendor {
        deny            all;
        return          404;
    }

    location ~ [^/\.php(/|$) {
        fastcgi_pass    unix:/run/php-fpm/zabbix.sock;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index   index.php;

        fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix;
        fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
        fastcgi_param   PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

        include fastcgi_params;
        fastcgi_param   QUERY_STRING    $query_string;
        fastcgi_param   REQUEST_METHOD  $request_method;
        fastcgi_param   CONTENT_TYPE    $content_type;
        fastcgi_param   CONTENT_LENGTH  $content_length;

        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout         60;
        fastcgi_send_timeout            180;
        fastcgi_read_timeout            180;
        fastcgi_buffer_size             128k;
        fastcgi_buffers                 4 256k;
        fastcgi_busy_buffers_size       256k;
        fastcgi_temp_file_write_size    256k;
    }
}

# enforce HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  zabbix.example.com;
    return 301   https://$host$request_uri;
}

Una vez terminado, guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.

Abre el archivo /etc/nginx/nginx.conf para editar.

$ sudo nano /etc/nginx/nginx.conf

Agrega la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.

Verifica tu configuración de Nginx.

$ sudo nginx -t

Inicia y habilita el servicio de Nginx.

$ sudo systemctl enable nginx --now

Paso 9 - Acceder al frontend de Zabbix

Antes de instalar el frontend de Zabbix, establece el permiso en el directorio /etc/zabbix/web para que Nginx pueda acceder a él.

$ sudo chown -R nginx:nginx /etc/zabbix/web

Abre la URL https://zabbix.example.com en tu navegador y obtendrás la siguiente pantalla.

Zabbix Web Installer Home

Haz clic en el botón Next step para finalizar la instalación de Zabbix. La siguiente página verifica los requisitos del sistema y si todos están satisfechos.

Zabbix System Requirements Check

Si no hay ningún problema, haz clic en el botón Next step para continuar. A continuación, se te pedirá que ingreses tus credenciales de base de datos. Desmarca la opción Database TLS encryption ya que no la hemos configurado.

Zabbix Database details

Presiona el botón Next step para continuar. Ingresa el nombre de tu servidor Zabbix. Sin embargo, es opcional, pero si se configura, se mostrará en la barra de menú y en los títulos de las páginas.

Zabbix Settings

Presiona el botón Next step para continuar. Se te pedirá que confirmes todas las configuraciones.

Zabbix Installation summary

Si todo está bien, presiona el botón Next step para continuar. Deberías ver el mensaje que te informa que la instalación fue exitosa.

Zabbix Installation Complete

Haz clic en el botón Finish para completar el proceso. Serás llevado a la página de inicio de sesión.

Zabbix Login Page

El nombre de usuario predeterminado es Admin y la contraseña es zabbix. Ingresa la información de inicio de sesión y haz clic en el botón Sign in para acceder al panel de Zabbix.

Zabbix dashboard

Paso 10 - Configurar SELinux

Habilita el demonio HTTP para conectarse a Zabbix.

$ sudo setsebool -P httpd_can_connect_zabbix 1

Permite que Zabbix se conecte a todos los puertos TCP.

$ sudo setsebool -P zabbix_can_network on

Habilita el daemons_enable_cluster_mode para evitar errores del administrador de HA.

$ sudo setsebool -P daemons_enable_cluster_mode on

Crea un paquete de política SELinux personalizado utilizando el registro de auditoría.

$ sudo grep "denied.*zabbix" /var/log/audit/audit.log | audit2allow -M zabbix_policy
****************** IMPORTANTE *********************  
Para hacer que este paquete de política esté activo, ejecuta:

semodule -i zabbix_policy.pp

Instala el paquete de política SELinux personalizado creado.

$ sudo semodule -i zabbix_policy.pp

Ejecuta el comando para verificar errores de base de datos.

$ sudo sealert -a /var/log/audit/audit.log

Sugerirá muchas reglas para aplicar.

Ejecuta los siguientes comandos.

$ sudo ausearch -c 'php-fpm' --raw | audit2allow -M my-phpfpm
$ sudo semodule -X 300 -i my-phpfpm.pp
$ sudo ausearch -c 'zabbix_agentd' --raw | audit2allow -M my-zabbixagentd
$ sudo semodule -X 300 -i my-zabbixagentd.pp

Aplica la política para permitir que Nginx dé acceso a PostgreSQL.

$ sudo setsebool -P httpd_can_network_connect_db 1

Aplica la política para permitir que se realicen conexiones a hosts externos.

$ sudo setsebool -P httpd_can_network_connect 1

Establece SELinux en modo de aplicación.

$ sudo setenforce 1 && sudo sed -i 's/^SELINUX=.*/SELINUX=enforcing/g' /etc/selinux/config

Paso 11 - Instalar el agente Zabbix en un sistema remoto

La tarea principal del agente Zabbix es recopilar información del sistema y enviarla al servidor Zabbix central para su análisis. Instalaremos el agente en un sistema Rocky Linux 9, pero puedes hacerlo en cualquier distribución.

Paso 11.1 - Configurar el Firewall en el sistema remoto

Abre el puerto 10050 para permitir que el agente Zabbix se conecte al servidor.

$ sudo firewall-cmd --add-port=10050/tcp --permanent --zone=public
$ sudo firewall-cmd --reload

Paso 11.2 - Instalar el agente Zabbix

Necesitas repetir el paso 4 excepto la última declaración de instalación. Eso significa, editar el archivo /etc/yum.repos.d/epel.repo y agregar la siguiente línea en la sección [epel].

[epel]
...
excludepkgs=zabbix*

A continuación, instala el repositorio Zabbix y limpia la caché de RPM.

$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm
$ sudo dnf clean all

Instala el agente Zabbix.

$ sudo dnf install zabbix-agent

Paso 11.3 Configurar el agente Zabbix

Zabbix admite cifrado basado en certificados, pero por la simplicidad de este tutorial, utilizaremos claves precompartidas (PSK) para asegurar la conexión entre el servidor y el agente.

Genera un archivo PSK.

$ sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

Muestra la clave para copiar.

$ cat /etc/zabbix/zabbix_agentd.psk
797c84746dfe86f71b0f207785906d2bb886be27149b296d86df6b1ec9de6bbe

Copia esta clave porque la necesitaremos más tarde.

El agente Zabbix almacena su configuración en el archivo /etc/zabbix/zabbix-agentd.conf. Ábrelo para editar.

$ sudo nano /etc/zabbix/zabbix_agentd.conf

Descomenta las siguientes variables y actualiza sus valores como se muestra a continuación.

Server=
ServerActive=
HostMetadata=ZabbixLinuxClient
Hostname=zabbixclient.example.com

Pon la dirección IP de tu servidor Zabbix como valor para las variables Server y ServerActive. La variable HostMetadata puede ser cualquier cosa que puedas usar para identificar el sistema. También se utiliza en el proceso de auto-registro en el frontend de Zabbix, del que hablaremos más adelante. El elemento Hostname se refiere al nombre del sistema del nodo del agente Zabbix.

Puedes averiguar el nombre del host usando el siguiente comando.

$ cat /etc/hostname

A continuación, encuentra la sección que configura una conexión segura entre el servidor y el agente. Encuentra la variable TLSConnect y cambia su valor de unencrypted a psk como se muestra a continuación.

...
### Opción: TLSConnect
#       Cómo debe conectarse el agente al servidor o proxy. Usado para verificaciones activas.
#       Solo se puede especificar un valor:
#               unencrypted - conectarse sin cifrado
#               psk         - conectarse usando TLS y una clave precompartida
#               cert        - conectarse usando TLS y un certificado
#
# Obligatorio: sí, si se definen parámetros de certificado TLS o PSK (incluso para conexión 'sin cifrado')
# Predeterminado:
# TLSConnect=psk
...

A continuación, localiza la sección TLSAccept y cambia su valor a psk como se muestra a continuación.

...
### Opción: TLSAccept
#       Qué conexiones entrantes aceptar.
#       Se pueden especificar múltiples valores, separados por comas:
#               unencrypted - aceptar conexiones sin cifrado
#               psk         - aceptar conexiones aseguradas con TLS y una clave precompartida
#               cert        - aceptar conexiones aseguradas con TLS y un certificado
#
# Obligatorio: sí, si se definen parámetros de certificado TLS o PSK (incluso para conexión 'sin cifrado')
# Predeterminado:
# TLSAccept=psk
...

A continuación, encuentra la sección TLSPSKIdentity y cambia su valor a PSK 001 como se muestra.

...
### Opción: TLSPSKIdentity
#       Cadena única, sensible a mayúsculas y minúsculas, utilizada para identificar la clave precompartida.
#
# Obligatorio: no
# Predeterminado:
# TLSPSKIdentity=PSK 001
...

Esta es la ID de PSK que usarás para agregar el host a través del frontend web de Zabbix.

Finalmente, localiza la sección TLSPSKFile y cambia su valor a la ubicación del archivo PSK como se muestra.

...
### Opción: TLSPSKFile
#       Ruta completa de un archivo que contiene la clave precompartida.
#
# Obligatorio: no
# Predeterminado:
# TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
...

Una vez terminado, guarda el archivo presionando Ctrl + X y entrando Y cuando se te pida.

Paso 11.4 - Iniciar el agente Zabbix

Inicia y habilita el servicio del agente Zabbix.

$ sudo systemctl enable zabbix-agent --now

Paso 12 - Agregar el cliente Zabbix al frontend de Zabbix para monitoreo

Podemos agregar un nuevo host a los grupos de hosts definidos existentes o crear un nuevo grupo de hosts. Los grupos de hosts te permiten categorizar los tipos de nodos que estás monitoreando. Para crear un nuevo grupo de hosts, abre la opción Host groups en el menú Configuration.

Agrega el nombre del grupo en el cuadro y haz clic en el botón Apply para crear el grupo.

Para crear un nuevo host, haz clic en la opción Hosts en el menú Configuration, y haz clic en el botón Create host en la parte superior derecha.

Zabbix Create Hosts

Agrega el nombre del host del nodo Zabbix.

Escribe Linux by Zabbix agent en la sección Templates y selecciona la plantilla del menú desplegable.

De manera similar, escribe Linux Servers en la sección Groups y selecciónalo.

Haz clic en el botón Add en la sección Interfaces y selecciona Agent.

Luego agrega la dirección IP del nodo cliente Zabbix. Una vez que hayas terminado, el popup completo de New host debería verse como el siguiente.

Zabbix New Host Popup

A continuación, cambia a la pestaña de Cifrado. Selecciona PSK para ambas opciones Connections to host y Connections from host. Establece la PSK Identity en PSK 001, que es el valor que establecimos en el paso 11.3 para la variable TLSPSKIdentity antes. Luego establece el valor de PSK como la clave que generaste en la máquina del agente antes.

Zabbix Agent Encryption

Una vez terminado, haz clic en el botón Add para finalizar la adición del host.

Deberías ver el nuevo host en la lista con una etiqueta verde que indica que el agente está conectado al servidor y está funcionando como se esperaba.

Zabbix Hosts List

Paso 13 - Configurar notificaciones por correo electrónico

Zabbix admite muchos tipos de notificaciones como correo electrónico, Slack, Telegram, SMS, etc. Para el propósito de nuestro tutorial, configuraremos notificaciones por correo electrónico. Visita el frontend de Zabbix, haz clic en Administration, y luego en Media types en el menú de la izquierda. Verás dos tipos de correo electrónico, uno para correo electrónico en texto plano y el otro para correo electrónico HTML.

Zabbix Media Types

Haz clic en la opción Email (HTML) y obtendrás la siguiente página.

Zabbix Email Media type Configure

Ingresa los detalles de tu servidor SMTP. Para nuestro tutorial, estamos usando el servicio Amazon SES. Haz clic en el botón Update una vez que hayas terminado para guardar los detalles. Serás llevado de regreso a la página de Media types. Haz clic en el botón Test en la página para probar la configuración del correo electrónico. Creará un popup. Completa tu dirección de correo electrónico y haz clic en el botón Test para enviar un correo electrónico de prueba.

Zabbix Test Email Popup

Deberías ver un mensaje exitoso en el popup notificando que funcionó bien y deberías recibir el siguiente correo electrónico en tu bandeja de entrada. Cierra el popup haciendo clic en el botón Cancel.

Zabbix Test Email

Paso 14 - Crear un nuevo usuario

El usuario predeterminado de Zabbix no está configurado para recibir ningún tipo de notificación. Si bien podemos hacerlo, el usuario predeterminado también es inseguro de usar. La mejor opción es crear un nuevo usuario y luego deshabilitar el usuario predeterminado.

Visita la sección Administration >> Users del menú y haz clic en el botón Create user en la parte superior derecha para abrir la siguiente página.

Zabbix New User page

Completa los detalles del usuario. Selecciona Zabbix administrators como el grupo de usuarios. Una vez terminado, haz clic en la pestaña Media. Haz clic en el botón Add y selecciona Email (HTML) como el tipo.

Zabbix User Media Tab

Ingresa tu dirección de correo electrónico en el campo Send to y haz clic en el botón Add para agregar la opción de correo electrónico. A continuación, cambia a la pestaña Permissions y haz clic en el botón Select para agregar el Super admin role.

Zabbix User Permissions

Haz clic en el botón Add para finalizar la adición del usuario. A continuación, necesitas cerrar sesión en el frontend, volver a iniciar sesión como el nuevo usuario y regresar a la página de usuarios. Haz clic en el usuario Admin, selecciona el grupo Disabled, y actualiza el usuario. Esto deshabilitará el usuario predeterminado para que no se use.

Paso 15 - Enviar una alerta de prueba

Por defecto, Zabbix rastrea la cantidad de espacio libre en el servidor. Detecta todos los montajes de disco y realiza verificaciones regularmente.

El primer paso es habilitar el disparador de notificación que permite a Zabbix enviar notificaciones a todos los administradores. Zabbix ya tiene el disparador predeterminado configurado. Necesitamos habilitarlo para que funcione. Visita Configuration >> Actions >> Trigger actions y haz clic en el estado Disabled para cambiarlo a Enabled como se muestra.

Zabbix Trigger Actions

A continuación, inicia sesión en el nodo Zabbix y crea un archivo temporal lo suficientemente grande como para activar una alerta de uso de disco.

Primero, determina el espacio libre en el servidor.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           780M   51M  730M   7% /run
/dev/vda2        94G   12G   78G  13% /
/dev/vda1       260M  7.0M  253M   3% /boot/efi
tmpfs           390M  4.0K  390M   1% /run/user/1001

Esto muestra que tenemos alrededor de 78 GB de espacio libre. A continuación, usa el comando fallocate para preasignar más del 80% del espacio en disco. Es lo suficientemente grande como para activar la alerta.

$ fallocate -l 74G /tmp/temp.img

Verifica el uso del disco nuevamente.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           780M   54M  726M   7% /run
/dev/vda2        94G   86G  3.9G  96% /
/dev/vda1       260M  7.0M  253M   3% /boot/efi
tmpfs           390M  4.0K  390M   1% /run/user/1001

Zabbix activará una alerta sobre el espacio en disco y enviará una alerta por correo electrónico al respecto. El correo electrónico se verá como el siguiente.

Zabbix Test Alert Email

También puedes verificar el panel para la alerta, que debería aparecer en segundos.

Zabbix Disk Check Alert Monitoring Dashboard

Elimina el archivo temporal cuando hayas terminado.

$ rm -f /tmp/temp.img

Deberías recibir otro correo electrónico notificándote que el problema se ha resuelto.

Zabbix Test Issue resolved email

Paso 16 - Configurar el auto registro para nodos Linux

Cuando tienes que agregar múltiples nodos al servidor Zabbix, el proceso puede volverse un poco tedioso. Afortunadamente, el frontend de Zabbix te permite automatizar el proceso utilizando el auto registro.

Visita Actions >> Autoregistration actions y haz clic en el botón Create action en la parte superior derecha.

Zabbix Autoregistrations Page

Una vez en la nueva pantalla, dale un nombre (Auto registration of Linux servers) a la acción.

Haz clic en el botón Add debajo de Conditions para agregar una condición y elige Host metadata como el tipo, contains como el operador, y Linux como el valor.

Zabbix Auto registration Conditions

Haz clic en Add para continuar y la página de crear acción debería verse como la siguiente.

Zabbix Autoregistration New Action Page

Haz clic en la pestaña Operations, selecciona Add to host group como la operación y selecciona Linux servers como los Host groups. Haz clic en el botón Add para finalizar.

Zabbix Autoregistration Operation Details

Si deseas usar cifrado PSK, también puedes configurarlo. Visita el menú Administration >> General >> Autoregistration y habilita ambas opciones de cifrado. Ingresa una ID de PSK y una clave PSK creadas en el servidor Zabbix. Puedes usar esta ID de PSK y clave en cada nodo y estarán cifradas usando estos valores.

Zabbix Autoregistration Encryption

A partir de ahora, cada vez que instales y configures el agente Zabbix en un servidor Linux, se agregará automáticamente al frontend de Zabbix.

Conclusión

Esto concluye nuestro tutorial sobre la instalación y configuración de un servidor Zabbix en un sistema Rocky Linux 9. También instalamos un agente Zabbix en un servidor remoto para conectarlo con el servidor. Si tienes alguna pregunta, publícalas en los comentarios a continuación.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.