Você está visualizando a documentação da versão de desenvolvimento, ela pode estar incompleta.
Junte-se ao nosso projeto de tradução e ajude a traduzir a documentação do Zabbix em sua língua nativa.

10 Variáveis de ambiente

Visão geral

As variáveis de ambiente permitem configurar os componentes do Zabbix sem codificar valores nos arquivos de configuração. Isso facilita o gerenciamento de configurações em ambientes dinâmicos, como o Docker, onde as variáveis podem ser passadas em tempo de execução para se adaptar a diferentes configurações.

No caso mais simples, ao definir o valor do parâmetro de configuração DebugLevel do Zabbix server para uma variável de ambiente, você pode usá-la para configurar o server na inicialização:

# Arquivo de configuração do Zabbix server:
       DebugLevel=${NEW_DEBUG_LEVEL}
       
       # Iniciando o Zabbix server:
       NEW_DEBUG_LEVEL=5 /usr/sbin/zabbix_server

As variáveis de ambiente são suportadas pelos seguintes componentes do Zabbix:

Notas importantes

  • Quando um parâmetro de configuração é definido como uma variável de ambiente, que não é especificada ao executar o componente, o valor padrão do parâmetro é usado.
  • Ao usar comandos em tempo de execução (por exemplo, para aumentar o nível de log do agent), quaisquer variáveis de ambiente usadas anteriormente devem ser especificadas. Isso ocorre porque os componentes do Zabbix usam seu arquivo de configuração para executar comandos em tempo de execução; se as variáveis de ambiente forem omitidas, os valores padrão dos parâmetros de configuração serão usados. Veja Exemplos.
  • O comando em tempo de execução userparameter_reload runtime command não suporta recarregar variáveis de ambiente. Durante o recarregamento, as variáveis são ignoradas e apenas os parâmetros com valores regulares são recarregados.
  • As variáveis de ambiente atuais do processo, que foram usadas nos arquivos de configuração, são limpas após o componente Zabbix ser iniciado. Isso garante que processos filhos (por exemplo, scripts remotos executados pelo Zabbix) não possam acessar essas variáveis. No entanto, observe que as variáveis iniciais do processo ainda podem ser recuperadas (por exemplo, via arquivo /proc/<PID>/environ).

Sintaxe

As variáveis de ambiente devem usar a seguinte sintaxe: ${alfanuméricos/underscores}.

O nome da variável pode incluir apenas letras (a-z, A-Z), underscores (_) e dígitos (0-9), e não deve começar com um dígito.

Variáveis que não correspondam à sintaxe exigida ou que sejam combinadas com um valor regular serão tratadas como valores regulares, o que pode produzir erros.

Sintaxe correta de variável:

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

Sintaxe incorreta de variável:

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

No Windows, os nomes das variáveis de ambiente não diferenciam maiúsculas de minúsculas.

Exemplos

Os exemplos a seguir mostram como configurar e usar variáveis de ambiente com os componentes do Zabbix.

Exemplo 1: Configurando e testando o agent Zabbix

1. Defina as variáveis de ambiente no arquivo de configuração do agent:

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

2. Teste o arquivo de configuração:

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

3. Inicie o agent com variáveis de ambiente:

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

Ao usar comandos em tempo de execução (por exemplo, para aumentar o nível de log do agent), quaisquer variáveis de ambiente usadas anteriormente devem ser especificadas:

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

Isso ocorre porque o agent usa seu arquivo de configuração para executar comandos em tempo de execução; se as variáveis de ambiente forem omitidas, os valores padrão dos parâmetros de configuração serão usados.

Como alternativa, após definir as variáveis de ambiente no arquivo de configuração do agent, você pode disponibilizá-las para os processos (por exemplo, usando o comando export). Isso reduz o risco de comportamento inesperado devido a variáveis ausentes ou configuradas incorretamente.

export ZBX_HOSTNAME="Novo agent 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
Exemplo 2: Configurando o agent Zabbix para um container

Se você estiver criando e configurando sua própria imagem personalizada para componentes do Zabbix (por exemplo, agent Zabbix), poderá definir parâmetros de configuração usando variáveis de ambiente e, em seguida, iniciar o container com essas variáveis.

1. Ao preparar a imagem, defina as variáveis de ambiente no arquivo de configuração do agent:

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

2. Após criar a imagem do container, inicie o container do agent (por exemplo, Docker) com variáveis de ambiente:

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. Ao usar comandos em tempo de execução (por exemplo, para aumentar o nível de log do agent), acesse o shell do container e execute o comando em tempo de execução:

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

O comando em tempo de execução userparameter_reload não oferece suporte ao recarregamento de variáveis de ambiente. Durante o recarregamento, as variáveis são ignoradas e apenas os parâmetros com valores regulares são recarregados.