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.

10 Variables de entorno

Descripción general

Las variables de entorno permiten configurar los componentes de Zabbix sin codificar valores en los archivos de configuración. Esto facilita la gestión de configuraciones en entornos dinámicos, como Docker, donde las variables pueden pasarse en tiempo de ejecución para adaptarse a diferentes configuraciones.

En el caso más sencillo, al establecer el valor del parámetro de configuración DebugLevel del servidor Zabbix en una variable de entorno, puede utilizarla para configurar el servidor al iniciarlo:

# Archivo de configuración del servidor Zabbix:
       DebugLevel=${NEW_DEBUG_LEVEL}
       
       # Iniciando el servidor Zabbix:
       NEW_DEBUG_LEVEL=5 /usr/sbin/zabbix_server

Las variables de entorno son compatibles con los siguientes componentes de Zabbix:

Notas importantes

  • Cuando un parámetro de configuración se establece en una variable de entorno, que no se especifica al ejecutar el componente, se utiliza el valor por defecto del parámetro.
  • Al utilizar comandos en tiempo de ejecución (por ejemplo, para aumentar el nivel de registro del agente), se deben especificar todas las variables de entorno utilizadas previamente. Esto se debe a que los componentes de Zabbix utilizan su archivo de configuración para ejecutar comandos en tiempo de ejecución; si se omiten las variables de entorno, se utilizarán los valores por defecto de los parámetros de configuración. Consulte Ejemplos.
  • El comando en tiempo de ejecución userparameter_reload runtime command no admite la recarga de variables de entorno. Durante la recarga, las variables se ignoran y solo se recargan los parámetros con valores regulares.
  • Las variables de entorno actuales del proceso, que se utilizaron en los archivos de configuración, se eliminan después de que se inicia el componente de Zabbix. Esto garantiza que los procesos hijos (por ejemplo, scripts remotos ejecutados por Zabbix) no puedan acceder a estas variables. Sin embargo, tenga en cuenta que las variables iniciales del proceso aún pueden recuperarse (por ejemplo, a través del archivo /proc/<PID>/environ).

Sintaxis

Las variables de entorno deben usar la siguiente sintaxis: ${alfanuméricos/guiones_bajos}.

El nombre de la variable solo puede incluir letras (a-z, A-Z), guiones bajos (_) y dígitos (0-9), y no debe comenzar con un dígito.

Las variables que no coincidan con la sintaxis requerida o que se combinen con un valor regular se tratarán como valores regulares, lo que puede producir errores.

Sintaxis correcta de variables:

DebugLevel=${NEW_DEBUG_LEVEL}
       Hostname=${ZBX_HOSTNAME}
       LogFile=${LogFile_001}

Sintaxis incorrecta de variables:

DebugLevel=${5_DebugLevel}
       Hostname=${ZBX.HOSTNAME 1}
       LogFile=/${HOME}/zabbix/zabbix_server.log

En Windows, los nombres de las variables de entorno no distinguen entre mayúsculas y minúsculas.

Ejemplos

Los siguientes ejemplos muestran cómo configurar y utilizar variables de entorno con los componentes de Zabbix.

Ejemplo 1: Configuración y prueba del agente Zabbix

1. Establezca las variables de entorno en el archivo de configuración del agente:

Hostname=${ZBX_HOSTNAME}
       ServerActive=${ServerActive}

2. Pruebe el archivo de configuración:

ZBX_HOSTNAME="Nuevo agente Zabbix" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf --test-config

3. Inicie el agente con variables de entorno:

ZBX_HOSTNAME="Nuevo agente Zabbix" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

Al utilizar comandos en tiempo de ejecución (por ejemplo, para aumentar el nivel de registro del agente), se deben especificar todas las variables de entorno utilizadas previamente:

ZBX_HOSTNAME="Nuevo agente Zabbix" ServerActive=127.0.0.1 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -R log_level_increase

Esto se debe a que el agente utiliza su archivo de configuración para ejecutar comandos en tiempo de ejecución; si se omiten las variables de entorno, se utilizarán los valores predeterminados de los parámetros de configuración.

Como alternativa, después de establecer las variables de entorno en el archivo de configuración del agente, puede hacerlas disponibles para los procesos (por ejemplo, utilizando el comando export). Esto reduce el riesgo de un comportamiento inesperado debido a variables faltantes o configuradas incorrectamente.

export ZBX_HOSTNAME="Nuevo agente Zabbix"
       export ServerActive=127.0.0.1
       /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf --test-config
       /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
       /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -R log_level_increase
Ejemplo 2: Configuración del agente Zabbix para un contenedor

Si está creando y configurando su propia imagen personalizada para componentes de Zabbix (por ejemplo, el agente Zabbix), puede definir parámetros de configuración utilizando variables de entorno y luego iniciar el contenedor con esas variables.

1. Al preparar la imagen, establezca variables de entorno en el archivo de configuración del agente:

Hostname=${ZBX_HOSTNAME}
       BufferSize=${BUFSZ}
       ListenPort=${LISTENPORT}
       UserParameter=${_UsrPar01}
       UserParameter=${_UsrPar02}

2. Después de construir la imagen del contenedor, inicie el contenedor del agente (por ejemplo, Docker) con variables de entorno:

docker run --name my-zabbix-agent -e ZBX_HOSTNAME="new-hostname" -e BUFSZ=1000 -e LISTENPORT=20050 -e _UsrPar01="key1,ls" -e _UsrPar02="key2,pwd" --init -d my-zabbix-agent:latest

3. Al utilizar comandos en tiempo de ejecución (por ejemplo, para aumentar el nivel de registro del agente), acceda a la shell del contenedor y ejecute el comando en tiempo de ejecución:

docker exec -it <containerid> sh
       /usr/sbin/zabbix_agentd -R log_level_increase

El comando en tiempo de ejecución userparameter_reload no admite la recarga de variables de entorno. Durante la recarga, las variables se ignoran y solo se recargan los parámetros con valores regulares.