Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

Instalación desde fuentes

Puede obtener la última versión de Zabbix compilándola desde las fuentes. Consulte también Obtener el código fuente de Zabbix.

Aquí se proporciona un tutorial paso a paso para instalar Zabbix desde las fuentes.

1 Instalación de los demonios de Zabbix

1 Descargar el archivo fuente

Vaya a la página de descargas de Zabbix y descargue el archivo fuente. Una vez descargado, extraiga las fuentes ejecutando:

tar -zxvf zabbix-8.0.0.tar.gz

Introduzca la versión correcta de Zabbix en el comando. Debe coincidir con el nombre del archivo descargado.

2 Crear cuenta de usuario

Todos los procesos demonio de Zabbix se ejecutan bajo usuarios del sistema sin privilegios. Si un demonio de Zabbix se inicia desde una cuenta de usuario sin privilegios, continuará ejecutándose como ese usuario.

En la configuración predeterminada, si un demonio se inicia como root, cambiará a la cuenta de usuario zabbix, que debe estar presente. Para crear un usuario y grupo de sistema zabbix, ejecute los comandos que se indican a continuación.

Sistema basado en RedHat:

groupadd --system zabbix
       useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

Sistema basado en Debian:

addgroup --system --quiet zabbix
       adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix

No es necesario crear una cuenta de usuario separada para el frontend de Zabbix.

Recomendación de seguridad

Si el server y el agent de Zabbix se ejecutan en la misma máquina, se recomienda ejecutarlos bajo cuentas de usuario separadas. Ejecutar ambos como el mismo usuario permite que el agent acceda al archivo de configuración del server, lo que podría exponer información confidencial, como la contraseña de la base de datos, a cualquier usuario con nivel de Admin en Zabbix.

Ejecutar Zabbix como root, bin o cualquier otra cuenta con derechos especiales es un riesgo de seguridad.

Directorio home (opcional)

Los procesos de Zabbix no requieren un directorio home, por lo que generalmente no se recomienda crearlo. Sin embargo, si necesita una funcionalidad que requiera un directorio home (por ejemplo, almacenar credenciales de MySQL en $HOME/.my.cnf), puede crearlo utilizando los comandos que se indican a continuación.

En sistemas basados en RedHat, ejecute:

mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
       chown zabbix:zabbix /usr/lib/zabbix

En sistemas basados en Debian, ejecute:

mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
       chown zabbix:zabbix /var/lib/zabbix
3 Crear la base de datos de Zabbix

Para los demonios de Zabbix server y proxy, así como para el frontend de Zabbix, se requiere una base de datos. No es necesario para ejecutar el agent de Zabbix.

Se proporcionan scripts SQL para crear el esquema de la base de datos e insertar el conjunto de datos. La base de datos del proxy de Zabbix solo necesita el esquema, mientras que la base de datos del server de Zabbix requiere también el conjunto de datos además del esquema.

Una vez creada la base de datos de Zabbix, continúe con los siguientes pasos para compilar Zabbix.

4 Configurar las fuentes

Se requiere C99 con extensiones GNU para compilar el server, proxy o agent de Zabbix. Esta versión puede especificarse explícitamente configurando CFLAGS="-std=gnu99":

export CFLAGS="-std=gnu99"

Si se instala desde el repositorio Git de Zabbix, es necesario ejecutar primero:

./bootstrap.sh

Al configurar las fuentes para un server o proxy de Zabbix, debe especificar el tipo de base de datos que se utilizará. Solo se puede compilar un tipo de base de datos con un proceso de server o proxy a la vez.

Para ver todas las opciones de configuración soportadas, dentro del directorio de fuentes extraídas de Zabbix ejecute:

./configure --help

Para configurar las fuentes para un server y agent de Zabbix, puede ejecutar algo como:

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-ares

Para configurar las fuentes para un server de Zabbix (con PostgreSQL, etc.), puede ejecutar:

./configure --enable-server --with-postgresql --with-net-snmp

Para configurar las fuentes para un proxy de Zabbix (con SQLite, etc.), puede ejecutar:

./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2

Para configurar las fuentes para un agent de Zabbix, puede ejecutar:

./configure --enable-agent

o, para Zabbix agent 2:

./configure --enable-agent2

Se requiere una versión de Go soportada para compilar Zabbix agent 2.

Notas sobre las opciones de compilación:

  • --enable-agent - compila el agent de Zabbix, así como las utilidades de línea de comandos Zabbix get y Zabbix sender.
  • --with-libcurl - requerido para la monitorización de máquinas virtuales, autenticación SMTP y los items de Zabbix agent web.page.*. Ver también: Requisitos (libcurl).
  • --with-libxml2 - requerido para la monitorización de máquinas virtuales.
  • --with-libpcre2[=DIR] - Zabbix siempre se compila con la biblioteca PCRE2; esta opción solo permite especificar una ruta de instalación personalizada de PCRE2.
  • --with-mysql=/path/to/mysql_config - especifica la ruta a una configuración particular de la biblioteca cliente de MySQL. Útil cuando hay instaladas varias versiones de MySQL o MariaDB.
  • --enable-static - enlaza las bibliotecas estáticamente (no soportado en Solaris). Utilice esto si planea distribuir binarios compilados a sistemas sin las bibliotecas requeridas. No se recomienda al compilar el server de Zabbix. Para compilar el server estáticamente, se requiere una versión estática de cada biblioteca externa. El script configure no comprueba esto automáticamente.
  • --with-stacksize=<valor> - establece el tamaño de pila por hilo en kilobytes (por ejemplo, --with-stacksize=512). Puede aumentar este valor si Zabbix falla o se congela debido a desbordamientos de pila (por ejemplo, durante el preprocesamiento en sistemas con límites de pila por hilo bajos por defecto).

Si ./configure falla debido a bibliotecas faltantes u otros problemas, por favor revise el archivo config.log para obtener información detallada sobre el error.

Por ejemplo, si falta libssl, el mensaje de error inmediato puede ser confuso:

checking for main in -lmysqlclient... no
       configure: error: Not found mysqlclient library

En este caso, config.log revela la causa real:

/usr/bin/ld: cannot find -lssl
       /usr/bin/ld: cannot find -lcrypto

Consulte también:

5 Compilar e instalar todo

Si se instala desde el repositorio Git de Zabbix, es necesario ejecutar primero:

$ make dbschema

make install

Este paso debe ejecutarse como un usuario con permisos suficientes (comúnmente 'root', o usando sudo).

Al ejecutar make install se instalarán por defecto los binarios de los demonios (zabbix_server, zabbix_agentd, zabbix_proxy) en /usr/local/sbin y los binarios de cliente (zabbix_get, zabbix_sender) en /usr/local/bin.

Para especificar una ubicación diferente a /usr/local, utilice la clave --prefix en el paso anterior de configuración de fuentes, por ejemplo --prefix=/home/zabbix. En este caso, los binarios de los demonios se instalarán en <prefix>/sbin, mientras que las utilidades en <prefix>/bin. Las páginas de manual se instalarán en <prefix>/share.

6 Revisar y editar los archivos de configuración
  • edite el archivo de configuración del agent de Zabbix /usr/local/etc/zabbix_agentd.conf

Debe configurar este archivo para cada host con zabbix_agentd instalado.

Debe especificar la dirección IP del server de Zabbix en el archivo. Las conexiones desde otros hosts serán denegadas.

  • edite el archivo de configuración del server de Zabbix /usr/local/etc/zabbix_server.conf

Debe especificar el nombre de la base de datos, el usuario y la contraseña (si utiliza alguna).

El resto de los parámetros le servirán con sus valores por defecto si tiene una instalación pequeña (hasta diez hosts monitorizados). Sin embargo, debe cambiar los parámetros por defecto si desea maximizar el rendimiento del server de Zabbix (o del proxy).

  • si ha instalado un proxy de Zabbix, edite el archivo de configuración del proxy /usr/local/etc/zabbix_proxy.conf

Debe especificar la dirección IP del server y el nombre del host del proxy (debe ser conocido por el server), así como el nombre de la base de datos, el usuario y la contraseña (si utiliza alguna).

Con SQLite debe especificarse la ruta completa al archivo de la base de datos; no se requieren usuario ni contraseña de la base de datos.

7 Iniciar los demonios

Ejecute zabbix_server en el lado del servidor.

zabbix_server

Asegúrese de que su sistema permita la asignación de 36MB (o un poco más) de memoria compartida, de lo contrario el servidor podría no arrancar y verá "Cannot allocate shared memory for <type of cache>." en el archivo de registro del servidor. Esto puede ocurrir en FreeBSD, Solaris 8.

Ejecute zabbix_agentd en todas las máquinas monitorizadas.

zabbix_agentd

Asegúrese de que su sistema permita la asignación de 2MB de memoria compartida, de lo contrario el agent podría no arrancar y verá "Cannot allocate shared memory for collector." en el archivo de registro del agent. Esto puede ocurrir en Solaris 8.

Si ha instalado Zabbix proxy, ejecute zabbix_proxy.

zabbix_proxy

2 Instalación de la interfaz web de Zabbix

Copiar archivos PHP

El frontend de Zabbix está escrito en PHP, por lo que para ejecutarlo se necesita un servidor web compatible con PHP. La instalación se realiza simplemente copiando los archivos PHP del directorio ui al directorio de documentos HTML del servidor web.

Las ubicaciones comunes de los directorios de documentos HTML para servidores web Apache incluyen:

  • /usr/local/apache2/htdocs (directorio por defecto al instalar Apache desde el código fuente)
  • /srv/www/htdocs (OpenSUSE, SLES)
  • /var/www/html (Debian, Ubuntu, Fedora, RHEL)

Se recomienda utilizar un subdirectorio en lugar de la raíz HTML. Para crear un subdirectorio y copiar los archivos del frontend de Zabbix en él, ejecute los siguientes comandos, reemplazando <htdocs> por el directorio real:

mkdir <htdocs>/zabbix
       cd ui
       cp -a . <htdocs>/zabbix

Si planea utilizar cualquier otro idioma que no sea inglés, consulte Instalación de idiomas adicionales para el frontend para obtener instrucciones.

Instalación del frontend

Consulte la página Instalación de la interfaz web para obtener información sobre el asistente de instalación del frontend de Zabbix.

3 Instalación de plugins cargables para el agent 2 de Zabbix

La instalación de plugins cargables para el agent 2 de Zabbix solo es necesaria si desea monitorizar objetivos que no están cubiertos por los plugins integrados (por ejemplo, servidores o clústeres de MongoDB, PostgreSQL y sus derivados, etc.). Consulte la lista completa de plugins cargables y plugins integrados.

Antes de instalar un plugin, consulte su archivo README. Puede contener requisitos específicos e instrucciones de instalación.

Para instalar desde las fuentes, primero descargue y extraiga el archivo fuente del plugin cargable.

Para compilar el plugin, navegue al directorio extraído del plugin y ejecute make:

make

Se requiere una versión de Go soportada para compilar plugins cargables para el agent 2 de Zabbix.

El ejecutable del plugin puede ubicarse en cualquier lugar, siempre que sea cargable por el agent 2 de Zabbix. Especifique la ruta al binario del plugin en el archivo de configuración del plugin, por ejemplo, en postgresql.conf para el plugin PostgreSQL:

Plugins.PostgreSQL.System.Path=/ruta/al/ejecutable/zabbix-agent2-plugin-postgresql

La ruta al archivo de configuración del plugin debe especificarse en el parámetro Include del archivo de configuración del agent 2 de Zabbix:

Include=/ruta/al/archivo/de/configuración/del/plugin/postgresql.conf

Consulte la sección de configuración para más detalles sobre la configuración de plugins.

Los plugins cargables proporcionados por Zabbix utilizan makefiles simples con los siguientes objetivos de compilación:

  • make - compila el plugin
  • make clean - elimina todos los archivos creados al compilar el plugin
  • make check - ejecuta auto-pruebas (requiere un objetivo real de monitorización, por ejemplo, una base de datos PostgreSQL)
  • make style - comprueba el estilo del código Go con golangci-lint
  • make format - formatea el código Go con go fmt
  • make dist - crea un archivo fuente que incluye todas las dependencias

4 Instalación de Java gateway

Es necesario instalar Java gateway solo si desea monitorizar aplicaciones JMX. Java gateway es ligero y no requiere una base de datos.

Para instalar desde las fuentes, primero descargue y extraiga el archivo fuente.

Para compilar Java gateway, ejecute el script ./configure con la opción --enable-java. Se recomienda que especifique la opción --prefix para solicitar una ruta de instalación diferente a la predeterminada /usr/local, porque la instalación de Java gateway creará todo un árbol de directorios, no solo un ejecutable.

./configure --enable-java --prefix=$PREFIX

Para compilar y empaquetar Java gateway en un archivo JAR, ejecute make. Tenga en cuenta que para este paso necesitará los ejecutables javac y jar en su ruta.

make

Ahora tiene un archivo zabbix-java-gateway-$VERSION.jar en src/zabbix_java/bin. Si se siente cómodo ejecutando Java gateway desde src/zabbix_java en el directorio de distribución, entonces puede continuar con las instrucciones para configurar y ejecutar Java gateway. De lo contrario, asegúrese de tener suficientes privilegios y ejecute make install.

make install

Continúe con la configuración para obtener más detalles sobre la configuración y ejecución de Java gateway.

5 Instalación del servicio web de Zabbix

La instalación del servicio web de Zabbix solo es necesaria si desea utilizar informes programados.

Para instalar desde las fuentes, primero descargue y extraiga el archivo fuente.

Para compilar el servicio web de Zabbix, ejecute el script ./configure con la opción --enable-webservice.

Se requiere una versión de Go compatible para compilar el servicio web de Zabbix.

Ejecute zabbix_web_service en la máquina donde se instaló el servicio web:

zabbix_web_service

Continúe con la configuración para más detalles sobre la configuración de la generación de informes programados.

6 Obtener el código fuente de Zabbix

Existen varias formas de obtener el código fuente de Zabbix:

  • Puede descargar las versiones estables publicadas desde el sitio web oficial de Zabbix
  • Puede descargar compilaciones nocturnas desde la página de desarrolladores del sitio web oficial de Zabbix
  • Puede obtener la última versión de desarrollo desde el sistema de repositorio de código fuente Git:

Debe instalarse un cliente Git para clonar el repositorio. El paquete oficial del cliente Git de línea de comandos suele llamarse git en las distribuciones. Para instalarlo, por ejemplo, en Debian/Ubuntu, ejecute:

sudo apt-get update
       sudo apt-get install git

Para obtener todo el código fuente de Zabbix, cambie al directorio donde desea colocar el código y ejecute:

git clone https://git.zabbix.com/scm/zbx/zabbix.git

7 Problemas de compilación

Estos son los problemas conocidos relacionados con la compilación de Zabbix desde fuentes. Para todos los demás casos, consulte la página de Problemas conocidos.

Biblioteca en una ubicación no estándar

Zabbix permite especificar una biblioteca ubicada en una ubicación no estándar. En el siguiente ejemplo, Zabbix ejecutará curl-config desde la ubicación no estándar especificada y usará su salida para determinar la libcurl correcta a utilizar.

$ ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Esto funcionará si es la única libcurl instalada en el sistema, pero puede que no funcione si hay otra libcurl instalada en una ubicación estándar (por el gestor de paquetes, por ejemplo). Este es el caso cuando necesita una versión más reciente de la biblioteca para Zabbix y la anterior para otras aplicaciones.

Por lo tanto, especificar un componente en una ubicación no estándar no siempre funcionará cuando el mismo componente también exista en una ubicación estándar.

Por ejemplo, si utiliza una libcurl más reciente instalada en /usr/local con el paquete libcurl aún instalado, Zabbix podría elegir la incorrecta y la compilación fallará:

usr/bin/ld: ../../src/libs/zbxhttp/libzbxhttp.a(http.o): in function 'zbx_http_convert_to_utf8':
       /tmp/zabbix-master/src/libs/zbxhttp/http.c:957: undefined reference to 'curl_easy_header'
       collect2: error: ld returned 1 exit status

Aquí, la función curl_easy_header() no está disponible en la antigua /usr/lib/x86_64-linux-gnu/libcurl.so, pero sí está disponible en la nueva /usr/local/lib/libcurl.so.

El problema radica en el orden de las banderas del enlazador, y una solución es especificar la ruta completa a la biblioteca en una variable LDFLAGS:

$ LDFLAGS="-Wl,--no-as-needed /usr/local/lib/libcurl.so" ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Tenga en cuenta la opción -Wl,--no-as-needed que podría ser necesaria en algunos sistemas (ver también: opciones de enlace por defecto en sistemas basados en Debian).

Tamaño de pila demasiado pequeño en algunos sistemas

Si Zabbix se bloquea o se congela debido a desbordamientos de pila, puede aumentar el tamaño de la pila por hilo utilizando la opción --with-stacksize al configurar las fuentes. Este problema puede ocurrir en sistemas con límites de pila por hilo bajos por defecto, especialmente durante el preprocesamiento, donde se crean múltiples hilos.

El siguiente ejemplo establece el tamaño de la pila en 512 KB por hilo:

./configure --enable-server --with-mysql --with-stacksize=512

Puede comprobar los límites de pila por hilo del sistema en tiempo de ejecución utilizando el comando ulimit -s en sistemas basados en Linux.