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 duraçã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, de forma semelhante ao 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 Agendamento intervalo de atualização 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 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, veja Plugins carregáveis.

Desde o Zabbix 7.0.5, os pacotes do agent 2 do Zabbix não estão mais disponíveis para RHEL 6 devido ao Go 1.22 (e mais recente) ser incompatível com o GCC 4.4.7 fornecido pelo RHEL 6, o que resulta em erros de compilação. Note, entretanto, que os pacotes do agent do Zabbix ainda são suportados.

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 Zabbix agent 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 obter detalhes adicionais 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
agent UNIX e Windows
-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 Executar o Zabbix agent em primeiro plano (padrão: true).
-p --print Exibir os itens conhecidos e sair.
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> Testar o item especificado e sair.
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 Validar o arquivo de configuração e sair.
-h --help Exibir informações de ajuda e sair.
-v --verbose Exibir informações de depuração. Use esta opção com as opções -p e -t.
-V --version Exibir a versão do agent e informações de licença.
-R --runtime-control <option> Executar funções administrativas. Consulte runtime control.
Somente agent Windows
-m --multiple-agents Usar 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> Definir o tipo de inicialização do serviço do Zabbix agent Windows. Valores permitidos:
automatic - (padrão) iniciar o serviço automaticamente na inicialização do Windows;
delayed - adiar a inicialização do serviço até que os serviços iniciados automaticamente concluam a inicialização;
manual - iniciar o serviço manualmente (por um usuário ou aplicativo);
disabled - desativar o serviço, para 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 Instalar o Zabbix agent Windows como serviço.
-d --uninstall Desinstalar o serviço do Zabbix agent Windows.
-s --start Iniciar o serviço do Zabbix agent Windows.
-x --stop Parar o serviço do Zabbix agent Windows.

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

  • Exibir todos os itens 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 do 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.0.17, 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, conforme 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 para solicitações HTTP de status e exibição de uma lista de plugins configurados e de 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 seu lugar 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 em seu lugar.
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 do 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, uma mensagem de erro será exibida no fluxo de erro padrão (STDERR) e o Agent 2 encerrará com o código de retorno 2 ou 3, respectivamente.