O Zabbix oferece uma funcionalidade de descoberta automática de rede que é eficaz e muito flexível.
Com a descoberta de rede devidamente configurada, você pode:
A descoberta de rede do Zabbix é baseada nas seguintes informações:
Ela NÃO fornece:
A descoberta de rede basicamente consiste em duas fases: descoberta e ações.
O Zabbix periodicamente escaneia os intervalos de IP definidos nas regras de descoberta de rede. A frequência da verificação é configurável para cada regra individualmente.
Cada regra possui um conjunto de verificações de serviço definidas para serem executadas no intervalo de IP.
As regras de descoberta são processadas pelo gerenciador de descoberta. O gerenciador de descoberta cria um trabalho para cada regra com uma lista de tarefas (verificações de rede). As verificações de rede são realizadas em paralelo pelos workers de descoberta disponíveis (o número é configurável no frontend para cada regra). Apenas verificações com o mesmo IP e porta são agendadas sequencialmente porque alguns dispositivos não aceitam conexões paralelas na mesma porta.
O tamanho da fila de verificações de rede é limitado a 2000000 ou aproximadamente 4 GB de memória. Se a fila ficar cheia, a regra de descoberta será ignorada e uma mensagem de aviso será registrada no log. Você pode usar o item interno zabbix[discovery_queue] para monitorar o número de verificações de descoberta na fila.
As verificações de descoberta são processadas independentemente das outras verificações. Se alguma verificação não encontrar um serviço (ou falhar), as outras verificações ainda serão processadas.
Se uma regra de descoberta for alterada durante a execução, a execução atual da descoberta será abortada.
Cada verificação de um serviço e de um host (IP) realizada pelo módulo de descoberta de rede gera um evento de descoberta.
| Evento | Resultado da verificação do serviço |
|---|---|
| Serviço Descoberto | O serviço está 'ativo' após estar 'inativo' ou quando descoberto pela primeira vez. |
| Serviço Ativo | O serviço está 'ativo', após já estar 'ativo'. |
| Serviço Perdido | O serviço está 'inativo' após estar 'ativo'. |
| Serviço Inativo | O serviço está 'inativo', após já estar 'inativo'. |
| Host Descoberto | Pelo menos um serviço de um host está 'ativo' após todos os serviços desse host estarem 'inativos' ou um serviço é descoberto que pertence a um host não registrado. |
| Host Ativo | Pelo menos um serviço de um host está 'ativo', após pelo menos um serviço já estar 'ativo'. |
| Host Perdido | Todos os serviços de um host estão 'inativos' após pelo menos um estar 'ativo'. |
| Host Inativo | Todos os serviços de um host estão 'inativos', após já estarem 'inativos'. |
Eventos de descoberta podem ser a base de ações relevantes, como:
Essas ações podem ser configuradas com base no tipo de dispositivo, IP, status, tempo de atividade/inatividade, etc. Para detalhes completos sobre como configurar ações para eventos baseados em descoberta de rede, consulte as páginas de operações e condições de ação.
Como as ações de descoberta de rede são baseadas em eventos, elas serão acionadas tanto quando um host descoberto estiver online quanto quando estiver offline. É altamente recomendado adicionar uma condição de ação Discovery status: up para evitar que ações como Add host sejam acionadas em eventos Service Lost/Service Down. Caso contrário, se um host descoberto for removido manualmente, ele ainda gerará eventos Service Lost/Service Down e será recriado durante o próximo ciclo de descoberta.
Vincular templates a um host descoberto falhará coletivamente se qualquer um dos templates vinculáveis tiver uma entidade única (por exemplo, chave de item) que seja igual a uma entidade única (por exemplo, chave de item) já existente no host ou em outro dos templates vinculáveis.
Um host é adicionado se a operação Adicionar host for selecionada. Um host também é adicionado, mesmo que a operação Adicionar host esteja ausente, se você selecionar operações que resultem em ações em um host. Tais operações são:
Os hosts criados são adicionados ao grupo Hosts descobertos (por padrão, configurável em Administração → Geral → Outros). Se você deseja que os hosts sejam adicionados a outro grupo, adicione uma operação Remover de grupos de hosts (especificando "Hosts descobertos") e também adicione uma operação Adicionar a grupos de hosts (especificando outro grupo de hosts), pois um host deve pertencer a um grupo de hosts.
O endereço IP do dispositivo descoberto é o critério para encontrar um host no sistema. Se já existir um host com esse endereço IP e tipo de interface, esse host será o alvo para a execução das operações.
Se o endereço IP do host descoberto for alterado ou a interface for excluída, um novo host será criado na próxima descoberta.
Ao adicionar hosts, o nome do host é o resultado da pesquisa reversa de DNS ou do endereço IP se a pesquisa reversa falhar. A pesquisa é realizada a partir do Zabbix server ou do Zabbix proxy, dependendo de qual está realizando a descoberta. Se a pesquisa falhar no proxy, ela não será repetida no server. Se já existir um host com esse nome, o próximo host terá _2 adicionado ao nome, depois _3 e assim por diante.
Também é possível substituir a pesquisa de DNS/IP e, em vez disso, usar o valor de um item para o nome do host, por exemplo:
Se o nome do host foi definido usando o valor de um item, ele não é atualizado durante as verificações de descoberta subsequentes. Se não for possível definir o nome do host usando o valor de um item, o valor padrão (nome DNS) é usado.
Se já existir um host com o endereço IP descoberto, um novo host não é criado. No entanto, se a ação de descoberta contiver operações (vincular template, adicionar ao grupo de hosts, etc.), elas serão executadas no host existente.
Hosts descobertos por uma regra de descoberta de rede são removidos automaticamente de Monitoramento → Descoberta se uma entidade descoberta não estiver mais no intervalo de IPs da regra. Os hosts são removidos imediatamente.
Quando hosts são adicionados como resultado da descoberta de rede, eles recebem interfaces criadas de acordo com estas regras:
Os hosts descobertos por diferentes proxies são sempre tratados como hosts diferentes. Embora isso permita realizar a descoberta em intervalos de IP correspondentes usados por diferentes sub-redes, alterar o proxy para uma sub-rede já monitorada é complicado porque as alterações de proxy também devem ser aplicadas a todos os hosts descobertos.
Por exemplo, os passos para substituir o proxy em uma regra de descoberta: