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.

Passive and active checks

Passive checks work similarly to Zabbix agent. Active checks support scheduled/flexible intervals and check concurrency within one active server.

By default, after a restart, Zabbix agent 2 will schedule the first data collection for active checks at a conditionally random time within the item's update interval to prevent spikes in resource usage. To perform active checks that do not have Scheduling update interval immediately after the agent restart, set ForceActiveChecksOnStart parameter (global-level) or Plugins.<Plugin name>.System.ForceActiveChecksOnStart (affects only specific plugin checks) in the configuration file. Plugin-level parameter, if set, will override the global parameter. Forcing active checks on start is supported since Zabbix 6.0.2.

Check concurrency

Checks from different plugins can be executed concurrently. The number of concurrent checks within one plugin is limited by the plugin capacity setting. Each plugin may have a hardcoded capacity setting (100 being default) that can be lowered using the Plugins.<PluginName>.System.Capacity=N setting in the Plugins configuration parameter. Former name of this parameter Plugins.<PluginName>.Capacity is still supported, but has been deprecated in Zabbix 6.0.

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.