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:
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./proc/<PID>/environ
).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:
Sintaxe incorreta de variável:
No Windows, os nomes das variáveis de ambiente não diferenciam maiúsculas de minúsculas.
Os exemplos a seguir mostram como configurar e usar variáveis de ambiente com os componentes do Zabbix.
1. Defina as variáveis de ambiente no arquivo de configuração do agent:
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
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:
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.