3 Agent 2

Visão geral

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

  • Reduzir o número de conexões TCP;
  • Fornecer concorrência de verificações aprimorada;
  • Ser facilmente extensível com plugins que fornecem verificações simples com código mínimo e oferecem suporte a verificações complexas compostas por scripts de longa execução e coleta de dados independente com envio periódico de relatórios;
  • Funcionar como substituto do Zabbix agent, com suporte a todos os recursos anteriores.

Todas as métricas no Zabbix agent 2 são coletadas por plugins.

Esses recursos são específicos dos plugins:

  • Intervalos agendados e flexíveis para verificações passivas e ativas
  • Gerenciamento da fila de tarefas com relação ao agendamento e à concorrência de tarefas
  • Timeouts no nível do plugin
  • Verificação de compatibilidade do Zabbix agent 2 e seus plugins na inicialização

Existem dois tipos de plugins:

Você também pode criar seus próprios plugins.

Plugins criados sob medida não precisam ser incorporados ao agent 2. Você pode adicioná-los como plugins carregáveis, simplificando assim a criação de plugins para novas métricas.

Plugins carregáveis podem ser adicionados em tempo de execução, sem recompilar o Zabbix agent 2.

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 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 Zabbix agent 2 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, a distribuição do SO e a versão do SO) e siga as instruções.
  • Códigos-fonte do Zabbix - baixe os arquivos-fonte e compile o agent configurando com a opção --enable-agent2.

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.

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 nativo a 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 obter detalhes adicionais sobre a instalação do 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 items 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 várias 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 - atrasar a inicialização do serviço após a conclusão da inicialização dos serviços iniciados automaticamente;
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 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:

  • Aumentando 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

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 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 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, 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.