É 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.
Create an action in the frontend, using some hard-to-guess secret code to disallow unwanted hosts:
* 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
Please note that this method alone does not provide strong protection because data is transmitted in plain text. Configuration cache reload is required for changes to have an immediate effect.
Add the next line to the agent configuration file:
where "Linux" is a platform, and the rest of the string is the hard-to-guess secret text.
Do not forget to restart the agent after making any changes to the configuration file.
Step 2
It is possible to add additional monitoring for an already registered host.
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.