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.
Checagens passivas e ativas
O Zabbix agent 2 suporta checagens passivas e ativas, assim como o Zabbix agent. Além disso, as checagens ativas do Zabbix agent 2 suportam intervalos flexíveis/agendados e concorrência de checagens dentro de um mesmo server ativo.
Por padrão, após uma reinicialização, o Zabbix agent 2 agendará a primeira coleta de dados para checagens ativas em um momento condicionalmente aleatório
dentro do intervalo de atualização do item para evitar picos no uso de recursos. Para realizar checagens ativas que não possuem
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 checagens de plugins específicos)
no arquivo de configuração. O parâmetro no nível do plugin, se definido, substituirá o parâmetro global.
Verificação de concorrência
As 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 (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 agent 2 do Zabbix 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 agent Zabbix 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 agent Zabbix 2 não possui suporte interno à execução como daemon no Linux.
O agent pode ser iniciado executando:
systemctl start zabbix-agent2
Para parar, reiniciar ou verificar o status do agent Zabbix 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:
- Binários pré-compilados do Zabbix agent - baixe o pacote instalador MSI do agent e siga as instruções na página Instalação do agent no Windows a partir de MSI.
- Códigos-fonte do Zabbix - baixe os arquivos-fonte e siga as instruções na página Compilando o Zabbix agent 2 no Windows.
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 |
|---|---|
| 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 diferente do padrã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 |
| -f --foreground | Executa o Zabbix agent em primeiro plano (padrão: true). |
| -p --print | Exibe os items conhecidos e sai. Observação: Para retornar também os resultados de parâmetros de usuário, 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 sai. Observação: Para retornar também os resultados de parâmetros de usuário, 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 sai. |
| -h --help | Exibe as informações de ajuda e sai. |
| -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 as informações de licença. |
| -R --runtime-control <option> | Executa funções administrativas. Veja controle em tempo de execução. |
| Somente agent Windows | |
| -m --multiple-agents | Usa várias instâncias do agent (com as opções -i, -d, -s, -x). Para diferenciar 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 - atrasa o início do serviço até que os serviços iniciados automaticamente tenham concluído a inicialização;manual - inicia o serviço manualmente (por um usuário ou aplicativo);disabled - desabilita 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 | 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 de parâmetros de linha de comando:
- exibir todos os items integrados do agent com valores
- testar um parâmetro de usuário com a chave "mysql.ping" definida no arquivo de configuração especificado
- instalar um serviço "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 "Zabbix Agent" instalado para Windows usando o arquivo de configuração zabbix_agent2.conf localizado na mesma pasta que o 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.
| Opção | Descrição |
|---|---|
| log_level_increase | Aumenta o nível de log. |
| log_level_decrease | Diminui o nível de log. |
| metrics | Lista as métricas disponíveis. |
| version | Exibe a versão do agent. |
| userparameter_reload | Recarrega os valores das opções UserParameter e Include do arquivo de configuração atual. |
| help | Exibe informações de ajuda sobre o controle em tempo de execução. |
Exemplos:
- aumentando o nível de log para o agent 2
- imprimindo 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 escrevem a saída em stdout (saída padrão) em vez de stderr (erro padrão).
Arquivo de configuração
Os parâmetros de configuração do Zabbix agent 2 correspondem, em sua maioria, aos do Zabbix agent, com algumas exceções:
| Parâmetros | Descrição | |
|---|---|---|
| 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 itens 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 solicitações HTTP de status e exibirá uma lista de 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 à execução como daemon. | |
| 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, Plugins.Log.MaxLinesPerSecond e Plugins.SystemRun.LogRemoteCommands são usados 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 para Zabbix agent2.
Códigos de saída
O agent 2 do Zabbix também pode ser compilado com versões mais antigas do OpenSSL (1.0.1, 1.0.2).
Neste caso, o Zabbix fornece mutexes para bloqueio no OpenSSL. Se um bloqueio ou desbloqueio de mutex falhar, uma mensagem de erro será impressa no fluxo de erro padrão (STDERR) e o Agent 2 será encerrado com o código de retorno 2 ou 3, respectivamente.