10 Variables d'entorn

Visió general

Les variables d'entorn permeten configurar components Zabbix sense codificar valors en fitxers de configuració. Això facilita la gestió de configuracions en entorns dinàmics, com ara Docker, on es poden passar variables en temps d'execució per adaptar-se a diferents configuracions.

En el cas més simple, establint el valor del paràmetre de configuració del servidor Zabbix DebugLevel a una variable d'entorn, podeu emprar-lo per configurar el servidor a l'inici:

# Fitxer de configuració del servidor Zabbix:
       DebugLevel=${NewDebugLevel}
       
       # Engegada del servidor Zabbix:
       NewDebugLevel=5 /usr/sbin/zabbix_server

Les variables d'entorn són compatibles amb els components Zabbix següents:

Notes importants

  • Quan un paràmetre de configuració s'estableix en una variable d'entorn, que no s'especifica en executar el component, s'empra el valor per defecte del paràmetre.
  • Quan empreu ordres d'execució (com ara per pujar el nivell de registre de l'agent), s'han d'especificar les variables d'entorn emprades anteriorment. Això es deu al fet que els components Zabbix utilitzen el seu fitxer de configuració per executar ordres d'execució; si s'ometen les variables d'entorn, s'empraran els valors predeterminats dels paràmetres de configuració. Veieu Examples.
  • L'ordre d'execució userparameter_reload no admet la recàrrega de variables d'entorn. Durant la recàrrega, les variables s'ignoren i només es tornen a carregar els paràmetres amb valors regulars.
  • Les variables d'entorn actuals del procés, que es van emprar als fitxers de configuració, s'esborren després d'iniciar el component Zabbix. Això garanteix que els processos fills (per exemple, scripts remots executats per Zabbix) no puguin accedir a aquestes variables. Tanmateix, tingueu en compte que les variables inicials del procés encara es poden recuperar (per exemple, mitjançant el fitxer /proc/<PID>/environ).

Sintaxi

Les variables d'entorn han d'emprar la sintaxi següent: ${alphanumerics/underscores}.

El nom de la variable només pot incloure lletres (a-z, A-Z), guions baixos (_) i dígits (0-9) i no ha de començar amb un dígit.

Les variables que no coincideixen amb la sintaxi requerida o que es combinen amb un valor regular es tractaran com a valors regulars, que poden produir errors.

Sintaxi de variable correcta:

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

Sintaxi de variable incorrecta:

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

A Windows, els noms de les variables d'entorn no distingeixen entre majúscules i minúscules.

Exemples

Els exemples següents mostren com configurar i utilitzar variables d'entorn amb components Zabbix.

Exemple 1: Configuració i prova de l'agent Zabbix

1. Establiu les variables d'entorn al fitxer de configuració de l'agent:

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

2. Proveu el fitxer de configuració:

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

3. Inicieu l'agent amb variables d'entorn:

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

Quan utilitzeu ordres d'execució (p. ex., per augmentar el nivell de registre de l'agent), s'han d'especificar les variables d'entorn utilitzades anteriorment:

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

Això es deu al fet que l'agent utilitza el seu fitxer de configuració per executar ordres en temps d'execució; si s'ometen les variables d'entorn, s'utilitzaran els valors predeterminats dels paràmetres de configuració.

Alternativament, després d'establir variables d'entorn al fitxer de configuració de l'agent, podeu posar-les a disposició dels processos (p. ex., utilitzant l'ordre "exportar"). Això redueix el risc de comportament inesperat a causa de variables que falten o que s'estableixen incorrectament.

export ZBX_HOSTNAME="New Zabbix agent"
       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
Exemple 2: Configuració de l'agent Zabbix per a un contenidor

Si esteu creant i configurant la vostra pròpia imatge personalitzada per als components Zabbix (per exemple, l'agent Zabbix), podeu definir paràmetres de configuració mitjançant variables d'entorn i, a continuació, iniciar el contenidor amb aquestes variables.

1. Quan prepareu la imatge, configureu les variables d'entorn al fitxer de configuració de l'agent:

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

2. Després de crear la imatge del contenidor, inicieu el contenidor de l'agent (p. ex., Docker) amb variables d'entorn:

docker run --name my-zabbix-agent -e ZBX_HOSTNAME="nou-nom-amfitrió" -e BUFSZ=1000 -e LISTENPORT=20050 -e _UsrPar01="key1,ls" -e _UsrPar02="key2,pwd" --init -d my-zabbix-agent:darrer

3. Quan utilitzeu comandes d'execució (p. ex., per augmentar el nivell de registre de l'agent), accediu a l'intèrpret d'ordres del contenidor i executeu l'ordre d'execució:

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

::: nota important L'ordre d'execució userparameter_reload no admet la recàrrega de variables d'entorn. Durant la recàrrega, les variables s'ignoren i només es tornen a carregar els paràmetres amb valors regulars. :::