Cómo instalar Zabbix en CentOS 7

En esta ocasión vamos a ver cómo instalar Zabbix en CentOS 7 paso a paso, de modo que puedas monitorizar desde máquinas de tu red local hasta servidores VPS CentOS remotos. Al final de esta guía habrás instalado y configurado Zabbix Server, Zabbix Frontend y Zabbix Agent en un servidor CentOS 7, e incluso habrás añadido una máquina remota a la monitorización.

Antes de instalar Zabbix en CentOS 7

Para poder seguir y completar esta guía de instalación y configuración de Zabbix en CentOS 7 debes partir de los siguientes requisitos:

  • Un sistema CentOS 7 actualizado.
  • Una pila LAMP, es decir, servidor web con PHP y servicio de bases de datos.
  • Acceso a terminal de comandos con root o un usuario con permisos de sudo.
  • Conexión a Internet.

Si aún no dispones del entorno necesario puede ayudarte nuestra guía de instalación de la pila LAMP en CentOS 7.

También necesitaremos algunas herramientas del sistema, por lo que actualizaremos la información de los repositorios:

~$ sudo yum update

E instalamos dichas herramientas:

~$ sudo yum install -y nano policycoreutils-python centos-release-scl

Cómo instalar Zabbix en CentOS 7

Vamos a instalar Zabbix en CentOS 7 utilizando el repositorio oficial de Zabbix. La razón es que mientras que la última versión de Zabbix con soporte largo (o LTS) para este sistema operativo es la 5.0, en los repositorios de CentOS y EPEL solo encontraremos paquetes hasta la versión 4.0. Es una buena razón para instalar el repositorio de Zabbix 5 para CentOS 7, que podemos encontrar en su sitio web oficial.

Instalar el repositorio de Zabbix para CentOS 7

Tenemos que instalar el repositorio de Zabbix para CentOS 7, teniendo en cuenta que si vas a monitorizar máquinas remotas CentOS 7, habrá que hacerlo también en cada una de ellas.

Podemos realizar la instalación del repositorio de Zabbix 5.0 para CentOS 7 desde consola directamente con yum:

~$ sudo yum install -y https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

Recuerda instalar este repositorio en todas las máquinas CentOS 7 que quieras monitorizar remotamente desde el servidor Zabbix que vamos a configurar a continuación.

En la máquina CentOS 7 que actuará como servidor instalaremos también Zabbix Frontend, para lo que hay que habilitar el repositorio específico editando su archivo de configuración:

~$ sudo nano /etc/yum.repos.d/zabbix.repo

Buscamos la sección zabbix-frontend:

...
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
...

Y habilitaremos el repositorio cambiando el valor de la directiva enabled:

...
enabled=1
...

Guardamos los cambios y, ya con el nuevo repositorio de Zabbix 5 para CentOS 7 instalado, actualizamos las listas de paquetes:

~$ sudo yum update -y

Si haces una búsqueda de paquetes zabbix con yum verás como dato curioso que los paquetes nuevos no indican número de versión en su nombre.

Cómo instalar el servidor Zabbix en CentOS 7

Lo que vamos a hacer a continuación es instalar en la misma máquina CentOS 7 el servidor, el frontend y el agente Zabbix 5.0, de manera que este servidor Zabbix se monitoreará a sí mismo.

En el ejemplo de este tutorial usamos MariaDB como servicio de bases de datos, así que instalaremos Zabbix Server y Web para MySQL.

Procederemos a instalar los paquetes de Zabbix Server y el agente local:

~$ sudo yum install -y zabbix-server-mysql zabbix-agent zabbix-web-mysql-scl zabbix-apache-conf-scl

La instalación ha creado dos servicios nuevos, zabbix-agent.service y zabbix-server.service. Ninguno de los dos está iniciado ni habilitado para arrancar automáticamente. Todavía no vamos a modificar esto.

SELinux y Zabbix

Si tienes activado SELinux en CentOS 7, como suele ocurrir por defecto, con Zabbix Agent no suele haber problemas, pero sí los hay con Zabbix Server. De hecho el servicio no llega a levantar, reintentándolo una y otra vez sin éxito, ya que SELinux lo impide.

La mejor solución es desactivar SELinux sólo para el servicio Zabbix:

~$ sudo semanage permissive -a zabbix_t

Como la aplicación web de Zabbix realiza conexiones de red, debemos permitirlas expresamente:

~$ sudo setsebool -P httpd_can_network_connect on

Preparación de la base de datos

Zabbix se apoya sobre una base de datos, que puede ser MySQL o PostgreSQL. En la máquina de ejemplo de este tutorial tenemos MariaDB, así que vamos a preparar la base de datos y el usuario que necesita Zabbix.

Podemos conectar al servicio con el cliente de consola mysql:

~$ mysql -u root -p

El primer paso será crear la base de datos:

> create database zabbix charset utf8 collate utf8_bin;

Para MariaDB o MySQL 5, creamos el usuario de la forma acostumbrada:

> create user zabbix@localhost identified by 'XXXXXXXX';

Para MySQL 8 al crear el usuario conviene especificar el plugin de autenticación adecuado:

> create user zabbix@localhost identified with mysql_native_password by 'XXXXXXXX';

A continuación concedemos al usuario los permisos sobre la nueva base:

> grant all privileges on zabbix.* to zabbix@localhost;

Por último salimos del cliente:

> exit

El instalador necesita que la base de datos tenga una estructura creada y cierta información ya incorporada. Este paso debemos hacerlo nosotros también, para lo cual hay previsto un archivo SQL que debemos cargar (sustituye XX por el número de revisión actual):

~$ zcat /usr/share/doc/zabbix-server-mysql-5.0.XX/create.sql.gz | mysql zabbix -u zabbix -p

Se te pedirá la contraseña del usuario zabbix que creaste en el paso anterior, y se cargarán todos los datos necesarios.

Preparación de PHP

Editaremos la configuración por defecto de PHP para Zabbix en CentOS 7:

~$ sudo nano /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

En este archivo la última directiva está deshabilitada:

...
; php_value[date.timezone] = Europe/Riga

Deberíamos habilitarla y darle el valor que corresponda a nuestra zona horaria, por ejemplo:

...
php_value[date.timezone] = Europe/Madrid

Hecho el cambio, guardamos el archivo.

Configuración de Zabbix Server

En pasos anteriores hemos usado los nombres del usuario y de la base de datos que corresponden a los valores por defecto de Zabbix Server. Sin embargo, la configuración por defecto no contempla la contraseña, así que la añadiremos.

Editamos el archivo de configuración de Zabbix Server:

~$ sudo nano /etc/zabbix/zabbix_server.conf

Y buscamos la directiva DBPassword:

...
#
# Mandatory: no
# Default:
# DBPassword=
...

Está desactivada, así que la activamos eliminando el carácter # de inicio de línea y le asignamos el valor de la contraseña. Quedaría algo así:

...
DBPassword=XXXXXXXX
...

Activación de los servicios

Con todas las configuraciones terminadas, podemos iniciar los servicios zabbix-agent y zabbix-server y reiniciar el servicio web y PHP:

~$ sudo systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

Y si queremos que estos servicios inicien automáticamente con el arranque de CentOS 7, debemos habilitarlos también:

~$ sudo systemctl enable zabbix-agent zabbix-server httpd rh-php72-php-fpm

Comprobaremos que los servicios están funcionando con el comando systemctl status zabbix-agent zabbix-server:

como instalar zabbix server en centos 7

Cómo instalar Zabbix Frontend en CentOS 7

La última parte de la preparación del servidor Zabbix es la instalación de Zabbix Frontend en CentOS 7. Accederemos al instalador web añadiendo el sufijo /zabbix a la dirección IP o dominio del servidor CentOS 7.

En este ejemplo la máquina CentOS 7 es accesible a través del dominio centos7.local.lan, por lo que podemos usar la URL http://centos7.local.lan/zabbix en el navegador para acceder a Zabbix:

como instalar zabbix 5.0 en centos 7

En la primera página de la instalación se nos dará la bienvenida y poco más, así que continuamos hacia la siguiente sección, donde se mostrará el resultado de la comprobación de los pre-requisitos:

como instalar zabbix en centos 7

Si has seguido paso a paso esta guía, todos los requisitos deberían aparecer marcados como OK. Si falla alguno, deberás solucionarlo antes de continuar.

En la página siguiente se configura la conexión a la base de datos:

instalar zabbix 5.0 en centos 7

Anteriormente creamos la base y el usuario con los nombres por defecto de Zabbix, por lo que únicamente habrá que introducir la contraseña.

A continuación, configuramos la conexión con el servicio Zabbix Server:

instalar zabbix en centos 7

No hay que hacer cambios, ya que Zabbix Frontend y Zabbix Server se ejecutan en la misma máquina CentOS 7.

Antes de finalizar se nos muestra un resumen de configuración de la instalación:

instalación de zabbix 5.0 en centos 7

Y por fin llegamos al final del proceso:

como instalar zabbix server en centos 7

Un mensaje nos confirma que la configuración de Zabbix Frontend se ha guardado satisfactoriamente.

Al continuar aparecerá el inicio de sesión en Zabbix Frontend:

instalar zabbix server en centos 7

El usuario por defecto es Admin y la contraseña zabbix. Deberías cambiar la contraseña en el panel de control cuando puedas. De momento, introducimos los valores por defecto y continuamos.

Y por fin accedemos directamente al panel de control de Zabbix Frontend:

Ya puedes hacer un recorrido por el Frontend y trabajar con sus múltiples opciones, aunque eso excede el propósito de esta guía.

Pero si quieres añadir una máquina remota, continúa leyendo.

Cómo añadir una máquina remota CentOS 7 a Zabbix Frontend

Ha llegado la hora de explorar la verdadera potencia de Zabbix, añadiendo máquinas remotas al sistema de monitorización.

Al principio de la guía instalamos el repositorio tanto en el servidor Zabbix como en todas las máquinas remotas CentOS 7 que tuviéramos pensado monitorizar.

Es el momento de instalar y configurar Zabbix Agent en estas máquinas remotas.

El paquete que necesitamos es zabbix-agent, que instalaremos con yum:

~$ sudo yum install -y zabbix-agent

Tras la descarga e instalación del paquete se crea un nuevo servicio en nuestro sistema Centos 7, llamado zabbix-agent.service o, más brevemente, zabbix-agent. El instalador no arranca el servicio y tampoco lo habilita para inicio automático.

Aún no vamos a iniciar este servicio, vamos primero a configurarlo. Para configurar Zabbix Agent en CentOS 7, editamos su archivo de configuración:

~$ sudo nano /etc/zabbix/zabbix_agentd.conf

Buscaremos las directivas Server, ServerActive y Hostname:

...
Server=127.0.0.1
...
ServerActive=127.0.0.1
...
Hostname=Zabbix server
...

Los valores de configuración por defecto buscan la conexión a Zabbix Server en la máquina local (por eso no tuvimos que configurar Zabbix Agent al instalar Zabbix Server anteriormente).

Tenemos que sustituir el valor 127.0.0.1 por la dirección IP del servidor Zabbix, o por su dominio (en este ejemplo el servidor Zabbix responde al dominio centos7.local.lan):

...
Server=centos7.local.lan
...
ServerActive=centos7.local.lan
...
Hostname=Zabbix server
...

Sólo deberás cambiar el valor de la directiva Hostname si durante la instalación de Zabbix Server indicaste un nombre distinto al valor por defecto.

Configurar el firewall para Zabbix Agent en CentOS 7

Si tienes activado el firewall de CentOS 7 tendrás que añadir una excepción para Zabbix Agent, cuyo servicio se encuentra a la escucha en el puerto 10050 TCP:

~$ sudo firewall-cmd --permanent --add-port=10050/tcp

Recargamos la configuración del firewall para que haga efecto de inmediato:

~$ sudo firewall-cmd --reload

Iniciar y activar el servicio Zabbix Agent

Con todos los preparativos terminados, es el momento de iniciar el servicio Zabbix Agent:

~$ sudo systemctl start zabbix-agent

Si quieres que CentOS 7 inicie automáticamente Zabbix Agent en cada arranque del sistema, habilita el servicio zabbix-agent:

~$ sudo systemctl enable zabbix-agent

Listo, hemos terminado de trabajar con la máquina remota.

Configurar la máquina remota en Zabbix Frontend

Iniciada sesión en Zabbix Fronted, iremos a «Configuration» / «Hosts«:

como configurar zabbix en centos 7

Para añadir una nueva máquina que monitorizar, pulsaremos el botón «Create host» y se desplegará un formulario:

configurar zabbix en centos 7

En «Host name» introducimos el nombre del sistema remoto, mientras que en «Visible name» opcionalmente podemos indicar un nombre más amigable para mostrar en Zabbix Frontend.

En «Groups» añadiremos esta máquina remota en alguno de los grupos existentes, que podremos elegir mediante el botón «Select«.

«Agent interfaces» es donde indicaremos la dirección IP y/o el dominio (DNS) de la máquina remota, debiendo indicar en «Connect to» el método preferido.

Una vez terminada la introducción de datos, pasamos a la solapa «Templates» del mismo formulario:

configuracion de zabbix en centos 7

En esta parte del formulario con el botón «Select» seleccionaremos plantillas para aplicar a la máquina remota. Por ejemplo, una plantilla interesante es «Template OS Linux by Zabbix agent«, que seleccionaremos eligiendo primero el grupo «Templates/Operating systems«.

Al terminar la selección haz click en «Add» y la nueva máquina remota se añadirá a la configuración de Zabbix. De hecho, se nos redirige automáticamente a «Configuration» / «Hosts«, donde podemos ver en la zona inferior de la página la nueva máquina remota que acabamos de añadir:

Es importante incluir las plantillas adecuadas porque contienen servicios, gráficos, etc. predefinidos que nos ahorrarán mucho tiempo al configurar la monitorización de la máquina CentOS 7 remota.

Por ejemplo, la máquina que acabamos de añadir a Zabbix dispone de varios gráficos predefinidos. Visitamos la sección «Monitoring» / «Hosts» y dentro de la tabla de máquinas seleccionamos «Graphs» en la fila que corresponde a la máquina remota que queremos ver:

Así de fácil.

Conclusión

Ya sabes cómo instalar Zabbix CentOS 7, aunque ha hecho falta recorrer un largo camino plagado de obstáculos. Ahora podrás monitorizar tus servidores y máquinas VPS CentOS de una forma intuitiva y muy visual.

En caso de dudas, preguntas, sugerencias, etc. deja un comentario a continuación.

¡Apoya comoinstalar.me!

¿Ha sido esta guía de instalación de Zabbix en CentOS 7 definitiva para conseguir tu objetivo? Si es así, y estás tan satisfecho que quieres agradecérnoslo, ahora es posible contribuir mínimamente al mantenimiento de esta página y la creación de nuevas guías y tutoriales.

Puedes ayudarnos dejando 1 $ de propina en PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un café:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

5 comentarios en «Cómo instalar Zabbix en CentOS 7»

  1. Este es mi configuración del archivo /etc/hosts

    »
    127.0.0.1 localhost server01.etc.local localhost4 localhost4.localdomain4
    #::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.0.100 server01 server01.etc.local

    »

    Configuración archivo /etc/hostname
    »
    server01.localdomain
    »
    ¿Puede ser que no tenga bien referenciado el «localhost«?
    ¿Puede estar relacionado con este? Muchas gracias.

    Responder
  2. Buenas tardes, he seguido todo el tutorial correctamente pero una vez llegados a la configuración web en la tercera opción «Configure DB conecction» me arroja un error:

    «Please create database manually, and set the configuration parameters for connection to this database. Press «Next step» button when done.

    Details Cannot connect to the database.
    The frontend does not match Zabbix database.
    »

    Entro en MySQL y compruebo que tanto la BBDD «zabbix» como el usuario «zabbix» están creados correctamente y el archivo que indicas descargar está instalado.

    ¿Puede ser un error de la conexión con el servidor mariaDB?

    Muchas gracias de antemano

    Responder
    • Hola, «Alumno». El tutorial se redactó para la versión 4.4.1 de Zabbix pero actualmente la última revisión de la rama 4.4 es la 10, por lo tanto algunas cosas han cambiado. Elimina la base de datos y créala de nuevo pero tal como aparece en el tutorial (lo he actualizado). Después hay que inicializar la base cargando el archivo que proporciona Zabbix, y es ahí donde al aparecer números de versión en la ruta pudiste tener el problema, así que prueba con la ruta actual.

      Responder

Deja un comentario