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 tem um conjunto de verificações de serviço definidas para serem realizadas 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 2.000.000 ou aproximadamente 4 GB de memória. Se a fila ficar cheia, a regra de descoberta será ignorada e uma mensagem de aviso será impressa 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ção 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 Status da descoberta: ativo para evitar que ações como Adicionar host sejam acionadas em eventos de Serviço perdido/Serviço inativo. Caso contrário, se um host descoberto for removido manualmente, ele ainda gerará eventos de Serviço perdido/Serviço inativo 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. Essas 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), porque um host deve pertencer a um grupo de hosts.
O endereço IP do dispositivo descoberto, juntamente com a origem da descoberta (Zabbix server, Zabbix proxy ou grupo de proxy) e o tipo de interface, é usado como critério para encontrar um host no sistema. Se já existir um host com o mesmo endereço IP, tipo de interface e origem da descoberta, esse host será o alvo para a execução das operações. Se a origem da descoberta for diferente, a entidade descoberta é tratada como um host diferente e um novo host pode ser criado.
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 o endereço IP se a pesquisa reversa falhar. A pesquisa é realizada a partir do Zabbix server ou 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 e a fonte de descoberta (Zabbix server, proxy ou grupo de proxy) não tiver sido alterada, um novo host não será criado. Se a fonte de descoberta for diferente, a entidade descoberta é tratada como distinta e um novo host pode ser 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 que corresponde pelo endereço IP, tipo de interface e fonte de descoberta.
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 de descoberta de rede, eles recebem interfaces criadas de acordo com estas regras:
Os hosts descobertos por proxies diferentes nem sempre são tratados como hosts diferentes. A descoberta e as verificações de exclusividade dependem da estrutura do grupo de proxy: quando um proxy executa uma regra de descoberta e cria um host, esse host é adicionado ao grupo de proxy pai do proxy, não atribuído ao próprio proxy. Quando o Zabbix avalia a exclusividade do IP durante a descoberta, ele verifica os hosts monitorados pelo grupo de proxy pai. Hosts monitorados por proxies individuais dentro desse grupo (incluindo o proxy que executou a descoberta) são ignorados para a verificação de exclusividade, o que pode resultar em hosts duplicados se vários proxies monitorarem sub-redes sobrepostas.
Embora esse comportamento permita que a descoberta opere em intervalos de IP sobrepostos usados por diferentes sub-redes, alterar o proxy atribuído a uma sub-rede já monitorada é mais complicado porque as alterações de proxy devem ser aplicadas de forma consistente aos hosts descobertos e à associação do grupo de proxy pai para evitar duplicatas.
Por exemplo, as etapas para substituir o proxy em uma regra de descoberta: