É possível permitir que um agente ativo do Zabbix se auto registre, após isso o servidor inicia automaticamente a sua monitoração. Desta forma os novos hosts poderão ser adicionados para monitorar sem precisar de configuração manual no servidor.
O processo de autorregistro pode ocorrer quando um agente até então desconhecido requisita a lista de monitoração a executar.
Esta funcionalidade é muito útil para monitorar automaticamente novos nós na nuvem. Assim que um novo nó e criado na nuvem o Zabbix passa a monitorar automaticamente os dados de performance e disponibilidade do novo host.
O autorregistro de um agente ativo também suporta a adição de hosts monitorados da forma passiva. Quando o agente ativo requisita a lista de verificações a executar ele fornece o seu 'ListenIP' e 'ListenPort', conforme estiverem definidos em seu arquivo de configuração, estes dados são enviados ao servidor. (Se existirem vários IPs o primeiro será enviado ao servidor.)
No lado do servidor, quando adicionar o novo host autorregistrado, utiliza o IP recebido e porta para configurar o agente. Se não for fornecido um endereço IP será utilizado o ip de origem da conexão. Se não for fornecida uma porta, será utilizada a porta 10050.
Certifique-se que você tem o Zabbix Server identificado no arquivo de configuração do agente - zabbix_agentd.conf
Se você não tiver especificado o parâmetro Hostname no zabbix_agentd.conf
, o nome de sistema do agente será utilizado pelo servidor para nomear o host. O nome do sistema no linux pode ser obtido através do comando 'hostname'.
Reinicie o agente após modificar o seu arquivo de configuração.
Quando um servidor recebe uma requisição de autorregistro ele chamará uma ação. Uma ação com origem de evento em "autorregistro" precisa ser configurada para permitir o autorregistro.
Configurar uma regra de descoberta de rede não é obrigatória para ter o autorregistro de agentes ativos.
Na interface web, acesse Configuração → Ações, selecione Autorregistro como origem do evento e clique no botão Criar ação:
Se os hosts se registraram automaticamente, então provavelmente eles suportam a monitoração ativa (muito útil para hosts que estão em subredes protegidas - DMZs) e pode ser necessário o uso de um template específico para monitoração ativa como o Template_Linux-active.
Quando um agente envia um pedido de autorregistro ao servidor ele envia junto o seu 'hostname'. Em alguns casos (por exemplos nós na nuvem da Amazon) apenas o 'hostname' não será suficiente para o Zabbix Server diferenciar os hosts descoebrtos. O metadado do hotst poderá conter opcionalmente outras informações para identificar o agente junto ao servidor.
O metadado do host é configurado do lado do agente no seu arquivo de configuração - zabbix_agentd.conf. Existem dois parâmetros que podem ser utilizados para definir o metadado do host:
Veja a descrição de ambos no link abaixo.
<note:important>Uma tentativa de autorregistro irá ocorrer toda vez que um agente ativo enviar uma solicitação de atualização da lista de itens a monitorar. O intervalo entre as requisições da lista de itens a monitorar é definida pelo parâmetro RefreshActiveChecks no arquivo de configuração do agente. A primeira requisição é feita imediatamente após o agente ser carregado. :::
Usando o metadado para dinstinguir hosts Linux e Windows.
Digamos que você queira que os hosts se autorregistrem no Zabbix Server. Você tem agentes ativos (consulte a seção de "Configuração" acima) na sua rede. Existem servidores com sistema operacional Windows e Linux e você possui um template para monitorar cada um deles ( "Template OS Linux" e "Template OS Windows"). Logo o registro de um host deverá ser compatível com o template de monitoração a ser utilizado. Por padrão apenas o nome do host será enviado para o Zabbix Server durante o processo de autorregistro, mas para que seja possível a configuração do tempalte correto será necessário também que o metadado seja enviado.
A primeira coisa a fazer é configurar os agentes, adicione a linha a seguir em seus arquivos de configuração:
Desta forma você terá certeza que o metadado do host contenha "Linux" ou "Windows", dependendo de seu sistema operacional. Um exemplo de metadado de 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 esqueça de reiniciar o agente após alterar sua configuração e antes de testar os valores.
Agora será necessário configurar a interface web. Crie duas ações, a primeira::
Você pode ignorar a operação de "Adicionar host" neste caso pois a tarefa de "Associar host a template" irá fazer isso automaticamente.
A segunda ação:
Utilizando o metadado do host para evitar que hosts indesejados sejam registrados.
Adicione a linha a seguir no arquivo de configuração do agente:
Com esta descrição queremos indicar que o sistema operacional é o "Linux" e o resto do texto é uma chave secreta.
Não esqueça de reiniciar o agente após alterar seu arquivo de configuração.
Crie uma ação na interface web, usando uma condição que verifique se a chave secreta está presente no metadado do host:
* Tipo do cálculo: E
* Condição (A): Metadado do host como //Linux//
* Condição (B): Metadado do host como //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
* Operações:
* Enviar mensagem para os usuários: Admin através de todas as mídias
* Adicionar hosts aos grupos: Linux servers
* Associar com templates: Template OS Linux
Observe que este método sozinho não provê forte proteção pois os dados são transmitidos em texto plano.
Update the action in the frontend:
* Type of calculation: AND
* Condition (A): Host metadata contains Linux
* Condition (B): Host metadata contains 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
* Operations:
* Send message to users: Admin via all media
* Add to host groups: Linux servers
* Link to templates: Template OS Linux
* Link to templates: Template DB MySQL
Update the next line in the agent configuration file:
Do not forget to restart the agent after making any changes to the configuration file.