Autoregistro do agent ativo

Visão geral

É possível permitir a autoregistração do agent ativo do Zabbix, após o que o server pode começar a monitorá-los. Dessa forma, novos hosts podem ser adicionados para monitoramento sem configurá-los manualmente no server.

A autoregistração pode ocorrer quando um agent ativo anteriormente desconhecido solicita verificações.

O recurso pode ser muito útil para o monitoramento automático de novos nós na nuvem. Assim que você tiver um novo nó no Zabbix Cloud, a coleta de dados de desempenho e disponibilidade do host será iniciada automaticamente.

A autoregistração do agent ativo também oferece suporte ao monitoramento de hosts adicionados com verificações passivas. Quando o agent ativo solicita verificações, desde que os parâmetros de configuração ListenIP ou ListenPort estejam definidos no arquivo de configuração, eles são enviados ao server. Se vários endereços IP forem especificados, o primeiro é enviado ao server.

O server, ao adicionar o novo host autoregistrado, usa o endereço IP e a porta recebidos para configurar o agent. Se nenhum valor de endereço IP for recebido, será usado o endereço IP da conexão de entrada. Se nenhum valor de porta for recebido, 10050 será usado.

É possível especificar que o host deve ser autoregistrado com um nome DNS como interface padrão do agent.

A autoregistração é executada novamente:

  • se as informações de metadados do host forem alteradas:
    • devido à alteração de HostMetadata e reinicialização do agent
    • devido à alteração do valor retornado por HostMetadataItem
  • para hosts criados manualmente com metadados ausentes
  • se um host for alterado manualmente para ser monitorado por outro Zabbix proxy
  • se a autoregistração do mesmo host vier de um novo Zabbix proxy

O heartbeat da autoregistração do agent ativo para o Zabbix server e o Zabbix proxy é de 120 segundos. Portanto, caso um host descoberto seja excluído, a autoregistração será executada novamente em 120 segundos.

Configuração

Especificar o server

Certifique-se de que o server do Zabbix esteja identificado no arquivo de configuração do agent (zabbix_agentd.conf):

ServerActive=10.0.0.1

A menos que você defina especificamente um Hostname em zabbix_agentd.conf, o nome do host do sistema onde o agent está localizado será usado pelo server para nomear o host. No Linux, o nome do host do sistema pode ser obtido executando o comando hostname.

Se Hostname for definido na configuração do agent do Zabbix como uma lista de hosts separada por vírgulas, serão criados hosts para todos os nomes de host listados.

Reinicie o agent após fazer qualquer alteração no arquivo de configuração.

Ação para o registro automático de agent ativo

Quando o server recebe uma solicitação de registro automático de um agent, ele chama uma ação. Uma ação com a origem do evento "Registro automático" deve ser configurada para o registro automático de agent.

Não é necessário configurar a descoberta de rede para que os agents ativos sejam registrados automaticamente.

No frontend do Zabbix:

  1. Acesse Alertas > Ações.
  2. Selecione Ações de registro automático.
  3. Clique em Criar ação.
  4. Na aba Ação, dê um nome à sua ação.
  5. Opcionalmente, especifique condições. É possível usar correspondência de substring ou de expressão regular nas condições para nome do host/metadados do host. Se você pretende usar o tipo de condição Metadados do host, consulte Usando metadados do host.
  6. Na aba Operações, adicione as operações relevantes, como Adicionar host, Adicionar ao grupo de hosts (por exemplo, Hosts descobertos), Vincular templates etc.

Se for provável que os hosts que serão registrados automaticamente sejam compatíveis apenas com o monitoramento ativo (como hosts protegidos por firewall em relação ao seu Zabbix server), talvez seja interessante criar um template específico, como Template_Linux-active, para vinculá-lo.

Os hosts criados são adicionados ao grupo Hosts descobertos (por padrão, configurável em Administração > Geral > Outros). Se quiser que os hosts sejam adicionados a outro grupo, adicione uma operação Remover do grupo de hosts (especificando "Hosts descobertos") e também uma operação Adicionar ao grupo de hosts (especificando outro grupo de hosts), pois um host deve pertencer a um grupo de hosts.

Autoregistro seguro

É possível realizar o autoregistro de forma segura configurando a autenticação baseada em PSK com conexões criptografadas.

O nível de criptografia é configurado globalmente em Administração > Geral > Autoregistro. É possível selecionar nenhuma criptografia, criptografia TLS com autenticação PSK ou ambas (para que alguns hosts possam se registrar sem criptografia, enquanto outros utilizem criptografia).

A autenticação por PSK é verificada pelo Zabbix server antes de adicionar um host. Se for bem-sucedida, o host será adicionado e Conexões de/para o host serão definidas como 'PSK', usando a mesma identidade/chave pré-compartilhada configurada na definição global de autoregistro.

Para garantir a segurança do autoregistro em instalações que utilizam proxies, a criptografia entre o Zabbix server e o proxy deve ser habilitada.

Usando DNS como interface padrão

Os parâmetros de configuração HostInterface e HostInterfaceItem configuration parameters permitem especificar um valor personalizado para a interface do host durante a autoregistration.

Mais especificamente, eles são úteis se o host deve ser autoregistrado com um nome DNS como a interface padrão do agent, em vez do endereço IP. Nesse caso, o nome DNS deve ser especificado ou retornado como valor de um dos parâmetros HostInterface ou HostInterfaceItem. Se o valor de um desses parâmetros mudar — por exemplo, de um endereço IP para um nome DNS ou vice-versa — a interface padrão do host autoregistrado será atualizada de acordo. Essa atualização é aplicada ao host existente, e não pela criação de um novo. Para enviar o novo valor, o agent deve ser reiniciado para que inicie novamente o processo de autoregistration.

Se os parâmetros HostInterface ou HostInterfaceItem não estiverem configurados, o parâmetro listen_dns será usado em seu lugar. Esse valor é determinado por meio de uma consulta DNS reversa do endereço IP do agent. Se o DNS reverso não estiver configurado corretamente ou retornar um nome inválido, isso pode resultar em autoregistration incorreta ou com falha devido a um valor de interface inválido.

Usando metadados do host

Quando o agent envia uma solicitação de registro automático ao server, ele envia o nome do host. Em alguns casos (por exemplo, nós de nuvem da Amazon), um nome de host não é suficiente para que o server do Zabbix diferencie os hosts descobertos. Os metadados do host podem ser usados opcionalmente para enviar outras informações de um agent para o server.

Os metadados do host são configurados no arquivo de configuração do agent (zabbix_agentd.conf). Há 2 maneiras de especificar os metadados do host no arquivo de configuração:

HostMetadata
HostMetadataItem

Consulte a descrição das opções no link acima.

O parâmetro HostMetadataItem pode retornar até 65535 pontos de código UTF-8. Um valor mais longo será truncado.

Observe que, no MySQL, o comprimento máximo efetivo em caracteres será menor se o valor retornado contiver caracteres multibyte. Por exemplo, um valor contendo apenas caracteres de 3 bytes será limitado a 21844 caracteres no total, enquanto um valor contendo apenas caracteres de 4 bytes será limitado a 16383 símbolos.

Uma tentativa de registro automático ocorre sempre que um agent ativo envia uma solicitação ao server para atualizar as verificações ativas. O intervalo entre as solicitações é especificado no parâmetro RefreshActiveChecks do agent. A primeira solicitação é enviada imediatamente após a reinicialização do agent.

Exemplos

Autoregistro por SO usando HostMetadata

Suponha que você queira que os hosts sejam registrados automaticamente pelo Zabbix server. Você possui agents Zabbix ativos (veja a seção "Configuração" acima) em sua rede. Existem hosts Windows e hosts Linux em sua rede e você tem os templates "Linux by Zabbix agent" e "Windows by Zabbix agent" disponíveis em seu frontend Zabbix. Portanto, no registro do host, você gostaria que o template Linux/Windows apropriado fosse aplicado ao host que está sendo registrado. Por padrão, apenas o nome do host é enviado ao server no autoregistro, o que pode não ser suficiente. Para garantir que o template correto seja aplicado ao host, você deve usar metadados do host.

Configuração do frontend

A primeira coisa a fazer é configurar o frontend. Crie 2 ações. A primeira ação:

  • Nome: Autoregistro de host Linux
  • Condições: Metadados do host contém Linux
  • Operações: Vincular templates: Linux pelo agent Zabbix

Você pode pular a operação "Adicionar host" neste caso. Vincular um template a um host requer adicionar o host primeiro, então o server fará isso automaticamente.

A segunda ação:

  • Nome: Autoregistro de host Windows
  • Condições: Metadados do host contém Windows
  • Operações: Vincular templates: Windows pelo agent Zabbix

Configuração do agent

Agora você precisa configurar os agents. Adicione a seguinte linha aos arquivos de configuração do agent:

HostMetadataItem=system.uname

Dessa forma, você garante que os metadados do host conterão "Linux" ou "Windows", dependendo do host em que o agent está sendo executado. Um exemplo de metadados do host neste caso:

Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32

Não se esqueça de reiniciar o agent após fazer qualquer alteração no arquivo de configuração.

Usando HostMetadata para controlar o registro automático e os templates

Etapa 1 - Proteger o registro com HostMetadata

Usando metadados do host para permitir alguma proteção básica contra o registro de hosts indesejados.

Configuração do frontend

Crie uma ação no frontend, usando algum código secreto difícil de adivinhar para impedir hosts indesejados:

  • Nome: Ação de autorregistro Linux
  • Condições:
    • Tipo de cálculo: AND
    • Condição (A): Metadados do host contém //Linux//
    • Condição (B): Metadados do host contém //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
  • Operações:
    • Enviar mensagem para usuários: Admin via todos os meios
    • Adicionar aos grupos de hosts: Servidores Linux
    • Associar templates: Linux pelo agent Zabbix

Observe que este método sozinho não fornece proteção forte porque os dados são transmitidos em texto simples. É necessário recarregar o cache de configuração para que as alterações tenham efeito imediato.

Configuração do agent

Adicione a seguinte linha ao arquivo de configuração do agent:

HostMetadata=Linux    21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

onde "Linux" é uma plataforma e o restante da string é o texto secreto difícil de adivinhar.

Não se esqueça de reiniciar o agent após fazer qualquer alteração no arquivo de configuração.

Etapa 2 - Adicionar template ao host registrado

É possível adicionar templates adicionais para um host já registrado. Neste caso, o template MySQL by Zabbix agent será vinculado apenas aos hosts cujo HostMetadata contenha o token MySQL.

Configuração do frontend

Atualize a ação no frontend:

  • Nome: Autoregistration action Linux
  • Condições:
    • Tipo de cálculo: AND
    • Condição (A): Host metadata contém Linux
    • Condição (B): Host metadata contém 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
    • Condição (C): Host metadata contém MySQL
  • Operações:
    • Enviar mensagem para usuários: Admin via todos os meios
    • Adicionar aos grupos de hosts: Linux servers
    • Associar templates: Linux by Zabbix agent
    • Associar templates: MySQL by Zabbix Agent

Configuração do agent

Atualize a seguinte linha no arquivo de configuração do agent:

HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

Não se esqueça de reiniciar o agent após fazer qualquer alteração no arquivo de configuração.