3 Agent 2

Visão geral

O agent 2 do Zabbix é uma nova geração do agent do Zabbix, escrito em Go (com algum código C reutilizado do agent do Zabbix). Ele foi projetado para:

  • Reduzir o número de conexões TCP.
  • Fornecer melhor concorrência de verificações.
  • Ser facilmente extensível com plugins, que fornecem verificações simples com código mínimo e suportam verificações complexas consistindo em scripts de longa execução e coleta de dados independente com relatórios periódicos.
  • Funcionar como um substituto para o agent do Zabbix, suportando todos os recursos anteriores.

Todas as métricas suportadas pelo agent 2 do Zabbix são coletadas por plugins.

Verificações passivas e ativas

O Zabbix agent 2 suporta verificações passivas e ativas, assim como o Zabbix agent. Além disso, as verificações ativas do Zabbix agent 2 suportam intervalos flexíveis/de agendamento e concorrência de verificações dentro de um único server ativo.

Por padrão, após uma reinicialização, o Zabbix agent 2 agendará a primeira coleta de dados para verificações ativas em um horário condicionalmente aleatório dentro do intervalo de atualização do item, para evitar picos no uso de recursos. Para executar verificações ativas que não tenham o intervalo de atualização de agendamento imediatamente após a reinicialização do agent, defina o parâmetro ForceActiveChecksOnStart (nível global) ou Plugins.<Plugin name>.System.ForceActiveChecksOnStart (afeta apenas verificações de plugins específicos) no arquivo de configuração. Se definido, o parâmetro no nível do plugin substituirá o parâmetro global.

Concorrência de verificações

Verificações de diferentes plugins podem ser executadas simultaneamente. O número de verificações simultâneas dentro de um plugin é limitado pela configuração de capacidade do plugin. Cada plugin pode ter uma configuração de capacidade codificada no próprio código (1000 sendo o padrão) que pode ser reduzida usando a configuração Plugins.<PluginName>.System.Capacity=N no parâmetro de configuração Plugins.

Plataformas suportadas

Para plataformas suportadas, consulte a página de Requisitos.

Agent 2 em sistemas Unix-like

O Zabbix agent 2 em sistemas Unix-like é executado no host que está sendo monitorado.

Instalação

O agent 2 do Zabbix pode ser instalado em sistemas baseados em Linux usando um dos seguintes métodos:

  • Pacotes Zabbix - selecione o componente Agent 2 (após selecionar sua versão do Zabbix, distribuição do SO e versão do SO) e siga as instruções.
  • Fontes do Zabbix - baixe os arquivos fonte e compile o agent configurando com a opção --enable-agent2.

As capacidades de monitoramento do agent 2 do Zabbix podem ser estendidas com plugins carregáveis, que estão disponíveis separadamente. Para mais detalhes, consulte Plugins carregáveis.

Se instalado como pacote

O Zabbix agent 2 é executado como um processo em primeiro plano e depende de um gerenciador de serviços externo (por exemplo, systemd) para execução em segundo plano. O Zabbix agent 2 não possui suporte integrado para daemonização no Linux.

O agent pode ser iniciado executando:

systemctl start zabbix-agent2

Para parar, reiniciar ou verificar o status do Zabbix agent 2, use os seguintes comandos:

systemctl stop zabbix-agent2
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
Iniciar manualmente

Você pode iniciar o agent do Zabbix localizando o binário zabbix_agent2 e executando-o diretamente; por exemplo:

zabbix_agent2

Agent 2 em sistemas Windows

O agent 2 do Zabbix é executado como um processo independente; no entanto, também pode ser executado como um serviço do Windows.

Instalação

O Zabbix agent 2 pode ser instalado no Windows usando um dos seguintes métodos:

Os recursos de monitoramento do Zabbix agent 2 podem ser estendidos com plugins carregáveis, que estão disponíveis separadamente. Para mais detalhes, consulte Plugins carregáveis.

Consulte a página Zabbix agent no Microsoft Windows para mais detalhes sobre como instalar o Zabbix agent 2 (a partir de um arquivo ZIP) como um serviço do Windows.

Opções

Os seguintes parâmetros de linha de comando podem ser usados com o Zabbix agent 2:

Parameter Description
UNIX and Windows agent
-c --config <config-file> Caminho para o arquivo de configuração.
Você pode usar esta opção para especificar um arquivo de configuração que não seja o padrão.
-f --foreground Executa o Zabbix agent em primeiro plano (padrão: true).
-p --print Exibe os items conhecidos e encerra.
Observe que, para retornar também os resultados de user parameter, você deve especificar o arquivo de configuração (se ele não estiver no local padrão).
-t --test <item key> Testa o item especificado e encerra.
Observe que, para retornar também os resultados de user parameter, você deve especificar o arquivo de configuração (se ele não estiver no local padrão).
-T --test-config Valida o arquivo de configuração e encerra.
-h --help Exibe informações de ajuda e encerra.
-v --verbose Exibe informações de depuração. Use esta opção com as opções -p e -t.
-V --version Exibe a versão do agent e informações de licença.
-R --runtime-control <option> Executa funções administrativas. Consulte runtime control.
Windows agent only
-m --multiple-agents Usa múltiplas instâncias do agent (com as opções -i, -d, -s, -x).
Para distinguir os nomes de serviço das instâncias, cada nome de serviço incluirá o valor de Hostname do arquivo de configuração especificado.
-S --startup-type <value> Define o tipo de inicialização do serviço do Zabbix Windows agent. Valores permitidos:
automatic - (padrão) inicia o serviço automaticamente na inicialização do Windows;
delayed - adia a inicialização do serviço após a conclusão da inicialização dos serviços iniciados automaticamente;
manual - inicia o serviço manualmente (por um usuário ou aplicativo);
disabled - desabilita o serviço, de modo que ele não possa ser iniciado por um usuário ou aplicativo.
Você pode usar esta opção junto com a opção -i, ou separadamente, para modificar o tipo de inicialização de um serviço já instalado.
-i --install Instala o Zabbix Windows agent como serviço.
-d --uninstall Desinstala o serviço do Zabbix Windows agent.
-s --start Inicia o serviço do Zabbix Windows agent.
-x --stop Interrompe o serviço do Zabbix Windows agent.

Exemplos específicos de uso dos parâmetros de linha de comando:

  • Exibir todos os items integrados do agent com valores.
  • Testar um user parameter com a chave mysql.ping definida no arquivo de configuração especificado.
  • Instalar um serviço do Zabbix Agent para Windows usando o caminho padrão para o arquivo de configuração C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf.
  • Modificar o tipo de inicialização de um serviço do Zabbix Agent para Windows já instalado usando o arquivo de configuração zabbix_agent2.conf localizado na mesma pasta do executável do agent.
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agent2.exe -i
zabbix_agent2.exe -c zabbix_agent2.conf -S delayed
Controle em tempo de execução

O controle em tempo de execução fornece algumas opções para controle remoto.

Option Description
log_level_increase Aumentar o nível de log.
log_level_decrease Diminuir o nível de log.
metrics Listar as métricas disponíveis.
version Exibir a versão do agent.
userparameter_reload Recarregar os valores das opções UserParameter e Include do arquivo de configuração atual.
help Exibir informações de ajuda sobre o controle em tempo de execução.

Exemplos:

  • Aumentar o nível de log para o agent 2.
  • Exibir as opções de controle em tempo de execução.
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help

Desde o Zabbix 7.4.1, os comandos de controle em tempo de execução do agent 2 gravam a saída em stdout (saída padrão) em vez de stderr (saída de erro padrão).

Arquivo de configuração

O caminho padrão para o arquivo de configuração é:

  • No UNIX, o padrão é /usr/local/etc/zabbix_agent2.conf ou o definido pelas variáveis de tempo de compilação --sysconfdir ou --prefix.
  • No Windows, o padrão é C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf.

Se uma única instância do agent estiver em execução em um host, ela pode usar o arquivo de configuração padrão ou um arquivo de configuração especificado na linha de comando. No caso de várias instâncias, cada instância do agent deve ter seu próprio arquivo de configuração (uma das instâncias pode usar o arquivo de configuração padrão).

Os parâmetros de configuração do Zabbix agent 2 correspondem, em sua maioria, aos do Zabbix agent, com algumas exceções:

Parameters Description
Parâmetros de configuração específicos do Zabbix agent 2
ControlSocket O caminho do socket de controle em tempo de execução. O Zabbix agent 2 usa um socket de controle para comandos em tempo de execução.
EnablePersistentBuffer,
PersistentBufferFile,
PersistentBufferPeriod
Esses parâmetros são usados para configurar o armazenamento persistente no Zabbix agent 2 para items ativos.
ForceActiveChecksOnStart Determina se o agent deve executar verificações ativas imediatamente após a reinicialização ou distribuí-las uniformemente ao longo do tempo.
Plugins Os plugins podem ter seus próprios parâmetros, no formato Plugins.<Plugin name>.<Parameter>=<value>. Um parâmetro comum de plugin é System.Capacity, que define o limite de verificações que podem ser executadas ao mesmo tempo.
StatusPort A porta na qual o Zabbix agent 2 ficará escutando por solicitações HTTP de status e exibirá uma lista dos plugins configurados e alguns parâmetros internos.
Parâmetros de configuração específicos do Zabbix agent não suportados no Zabbix agent 2
AllowRoot,
User
Não suportados no Zabbix agent 2 porque ele não oferece suporte à daemonização.
EnableRemoteCommands Obsoleto; os parâmetros AllowKey e DenyKey são usados em ambos os agents.
ListenBacklog Usado no Zabbix agent para definir o número máximo de conexões pendentes na fila TCP. Não suportado no Zabbix agent 2.
LoadModule,
LoadModulePath
Módulos carregáveis não são suportados no Zabbix agent 2.
MaxLinesPerSecond,
LogRemoteCommands
No Zabbix agent 2, são usados Plugins.Log.MaxLinesPerSecond e Plugins.SystemRun.LogRemoteCommands.
StartAgents Esse parâmetro é usado no Zabbix agent para aumentar a concorrência de verificações passivas ou desativá-las. No Zabbix agent 2, a concorrência é configurada no nível do plugin e pode ser limitada por uma configuração de capacidade. As verificações passivas são desativadas no Zabbix Agent 2 se o parâmetro Server não for especificado.

Para mais detalhes, consulte as opções do arquivo de configuração para Zabbix agent2.

Códigos de saída

O Zabbix agent 2 também pode ser compilado com versões mais antigas do OpenSSL (1.0.1, 1.0.2).

Nesse caso, o Zabbix fornece mutexes para bloqueio no OpenSSL. Se uma operação de bloqueio ou desbloqueio de mutex falhar, então uma mensagem de erro é exibida no fluxo de erro padrão (STDERR) e o Agent 2 encerra com o código de retorno 2 ou 3, respectivamente.