O Zabbix Agent 2 é uma nova geração do agente Zabbix e pode ser usado no lugar do Zabbix Agent. O Zabbix Agent 2 foi desenvolvido para:
O Agent 2 é escrito em Go (com algum código em C reutilizado do Zabbix Agent). Um ambiente Go configurado com uma versão de Go atualmente suportada é necessário para compilar o Zabbix Agent 2.
O Agent 2 não possui suporte nativo a execução com deamon (daemonization) no Linux; ele pode ser executado como um serviço do Windows.
Verificações passivas funcionam de forma similar ao Zabbix Agent. As verificações ativas suportam intervalos agendados/flexíveis e concorrência de verificação em um Server ativo.
Concorrência de verificação
Verificações de diferentes plugins podem ser executadas de forma concorrente. O número de verificações concorrentes dentro de um plugin é limitada pela configuração de capacidade do plugin. Cada plugin pode ter uma configuração de capacidade fixada em código (sendo 100 o padrão) que pode ser diminuída usando a configuração Plugins.<Plugin name>.Capacity=N
no parâmetro de configuração Plugins.
Veja também: Orientações para desenvolvimento de plugin.
O Agent 2 é suportado pelas plataformas Linux e Windows.
Se instalando a partir dos pacotes, o Agent 2 é suportado em:
No Windows o Agent 2 é suportado em:
O Zabbix Agent 2 está disponível em pacotes pré-compilados. Para compilar o Zabbix Agent 2 a partir dos fontes você tem que especificar a opção de configuração --enable-agent2
.
Os seguintes parâmetros de linha de comando podem ser usados com o Zabbix Agent 2:
Parâmetro | Descrição |
---|---|
-c --config <arquivo-configuração> | Caminho para o arquivo de configuração. Você pode usar esta opção para informar um arquivo de configuração que não é o arquivo padrão. No UNIX, o padrão é /usr/local/etc/zabbix_agent2.conf ou como configurado pelas variáveis de tempo de compilação --sysconfdir ou --prefix |
-f --foreground | Executa o agente ao fundo (foreground) (padrão: true (verdadeiro)). |
-p --print | Apresenta itens conhecidos e sai. Nota: Para retornar os resultados de parâmetro do usuário também, você deve especificar o arquivo de configuração (caso ele não esteja na localização padrão). |
-t --test <item key> | Testa o item especificado e sai. Nota: Para retornar os resultados de parâmetro do usuário também, você deve especificar o arquivo de configuração (caso ele não esteja na localização padrão). |
-h --help | Apresenta informações de ajuda e sai. |
-v --verbose | Apresenta informações de depuração (debugging). Use esta opção com as marcações -p e -t. |
-V --version | Apresenta o número de versão do agente e sai. |
-R --runtime-control <option> | Executa funções administrativas. Veja controle em tempo de execução. |
Exemplos específicos de utilização de parâmetros de linha de comando:
O controle em tempo de execução fornece algumas opções para controle remoto.
Opção | Descrição |
---|---|
log_level_increase | Aumenta nível de log. |
log_level_decrease | Diminui nível de log. |
metrics | Lista de métricas disponíveis. |
version | Exibe versão do agente. |
userparameter_reload | Recarrega parâmetros de usuário do arquivo de configuração atual. Note que o UserParameter é única opção de configuração do agente que será recarregada. |
help | Exibe informações de ajuda sobre controle em tempo de execução. |
Exemplos:
Os parâmetros de configuração do Agent 2 são predominantemente compatíveis com o Zabbix Agent com algumas exceções.
Novos parâmetros | Descrição |
---|---|
ControlSocket | O caminho para o socket de controle em tempo de execução. O Agent 2 usa um socket de controle para comandos em tempo de execução. |
EnablePersistentBuffer, PersistentBufferFile, PersistentBufferPeriod |
Estes parâmetros são usados para configurar o armazenamento persistente no Agent 2 para itens ativos. |
Plugins | Plugins podem ter seus próprios parâmetros, no formato Plugins.<Nome do plugin>.<Parâmetro>=<valor> . Um parâmetro de plugin comum é Capacity (capacidade), configurando o limite de verificações que podem ser executadas ao mesmo tempo. |
StatusPort | A porta na qual o Agent 2 aguardará comunicação (listening) para requisições de estado HTTP e exibição de uma lista de plugins configurados e alguns parâmetros internos |
Parâmetros descontinuados | Descrição |
AllowRoot, User | Não suportado porque operação como daemon (daemonization) não é suportada. |
LoadModule, LoadModulePath | Módulos carregáveis não são suportados. |
StartAgents | Este parâmetro era usado no Zabbix Agent para aumentar a concorrência de verificações passivas ou desabilitá-los. No Agent 2, a concorrência é configurada no nível do plugin e pode ser limitada por uma configuração de capacidade. Considerando que desabilitar verificações passivas não é atualmente suportado. |
HostInterface, HostInterfaceItem | Não suportado ainda. |
Para mais detalhes veja as opções do arquivo de configuração para zabbix_agent2.
A partir da versão 4.4.8 o Zabbix Agent 2 também pode ser compilado com versões mais antigas do OpenSSL (1.0.1, 1.0.2).
Neste caso o Zabbix oferece mutexes para travamento no OpenSSL. Se um travamento ou destravamento mutex falhar então uma mensagem de erro é apresentada na saída de erro padrão (STDERR) e o Agent 2 sai com código de erro 2 ou 3, respectivamente.