Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

3 Agent 2

Visão geral

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:

  • reduzir o número de conexões TCP
  • fornecer concorrência aprimorada de verificações
  • ser facilmente extensível com plugins. Um plugin deve ser capaz de:
    • fornecer verificações triviais consistindo de apenas poucas linhas simples de código
    • fornecer verificações complexas consistindo de scripts de longa execução e aquisição de dados isolada com envio periódico dos dados de volta
  • ser uma substituição opcional para o Zabbix Agent (em que ele suporta todas as funcionalidades anteriores)

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.

Plataformas suportadas

O Agent 2 é suportado pelas plataformas Linux e Windows.

Se instalando a partir dos pacotes, o Agent 2 é suportado em:

  • RHEL/CentOS 6, 7, 8
  • SLES 15 SP1+
  • Debian 9, 10
  • Ubuntu 18.04, 20.04

No Windows o Agent 2 é suportado em:

  • Windows Server 2008 R2 e mais recente
  • Windows 7 e mais recente

Instalação

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.

Opções

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:

  • apresenta todos os itens nativos com valores
  • testa um parâmetro de usuário com a chave "mysql.ping" definida no arquivo de configuração especificado
shell> zabbix_agent2 --print
       shell> zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
Controle em tempo de execução (runtime)

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:

  • aumentando o nível de log para o Agent 2
  • apresenta opções de controle em tempo de execução
shell> zabbix_agent2 -R log_level_increase
       shell> zabbix_agent2 -R help

Arquivo de configuração

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.

Códigos de saída

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.