Descoberta de rede
Visão geral
O Zabbix oferece funcionalidade de descoberta automática de rede que é eficaz e muito flexível.
Com a descoberta de rede configurada corretamente, você pode:
- Acelerar a implantação do Zabbix.
- Simplificar a administração.
- Usar o Zabbix em ambientes que mudam rapidamente sem administração excessiva.
A descoberta de rede do Zabbix é baseada nas seguintes informações:
- Intervalos de IP
- Disponibilidade de serviços externos (FTP, SSH, WEB, POP3, IMAP, TCP, etc)
- Informações recebidas do agent do Zabbix (somente o modo não criptografado é suportado)
- Informações recebidas do agent SNMP
Ela NÃO fornece descoberta da topologia de rede.
A descoberta de rede basicamente consiste em duas fases: descoberta e ações.
Descoberta
O Zabbix verifica periodicamente os intervalos de IP definidos nas regras de descoberta de rede. A frequência da verificação é configurável individualmente para cada regra.
Cada regra tem um conjunto de verificações de serviço definido para ser executado no intervalo de IP.
As regras de descoberta são processadas pelo discovery manager. O discovery manager cria um job para cada regra com uma lista de tarefas (verificações de rede). As verificações de rede são executadas em paralelo pelos discovery workers disponíveis (o número é configurável no frontend para cada regra). A exceção são as verificações SNMPv3, que são processadas por um único worker. Somente 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 das 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 zabbix[discovery_queue] item interno 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 de serviço |
|---|---|
| Service Discovered | O serviço está 'up' após estar 'down' ou quando é descoberto pela primeira vez. |
| Service Up | O serviço está 'up', após já estar 'up'. |
| Service Lost | O serviço está 'down' após estar 'up'. |
| Service Down | O serviço está 'down', após já estar 'down'. |
| Host Discovered | Pelo menos um serviço de um host está 'up' após todos os serviços desse host estarem 'down' ou um serviço é descoberto e pertence a um host não registrado. |
| Host Up | Pelo menos um serviço de um host está 'up', após pelo menos um serviço já estar 'up'. |
| Host Lost | Todos os serviços de um host estão 'down' após pelo menos um estar 'up'. |
| Host Down | Todos os serviços de um host estão 'down', após já estarem 'down'. |
Ações
Eventos de descoberta podem ser a base de ações relevantes, como:
- Enviar notificações
- Adicionar/remover hosts
- Habilitar/desabilitar hosts
- Adicionar hosts a um grupo
- Remover hosts de um grupo
- Adicionar tags a um host
- Remover tags de um host
- Vincular um template a hosts/desvincular um template de hosts
- Executar scripts remotos
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: up para evitar que ações como Adicionar host sejam acionadas em eventos Serviço perdido/Serviço inativo. Caso contrário, se um host descoberto for removido manualmente, ele ainda gerará eventos 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.
Criação de host
Um host é adicionado se a operação Add host estiver selecionada. Um host também é adicionado, mesmo que a operação Add host esteja ausente, se você selecionar operações que resultem em ações em um host. Essas operações são:
- Enable host.
- Disable host.
- Add host to a host group.
- Link template to a host.
Os hosts criados são adicionados ao grupo Discovered hosts (por padrão, configurável em Administration > General > Other). Se você quiser que os hosts sejam adicionados a outro grupo, adicione uma operação Remove from host groups (especificando "Discovered hosts") e também adicione uma operação Add to host groups (especificando outro host group), porque um host deve pertencer a um host group.
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 localizar 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 será tratada como um host diferente e um novo host poderá 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.
Nomeação de hosts
Ao adicionar hosts, o nome do host é o resultado de uma consulta reversa de DNS ou o endereço IP se a consulta reversa falhar. A consulta é realizada a partir do Zabbix server ou Zabbix proxy, dependendo de qual está realizando a descoberta. Se a consulta 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 consulta DNS/IP e, em vez disso, usar o valor de um item para o nome do host, por exemplo:
- Você pode descobrir vários servidores com o Zabbix agent em execução usando um item do Zabbix agent para descoberta e atribuir nomes apropriados a eles automaticamente, com base no valor de string retornado por esse item
- Você pode descobrir vários dispositivos de rede SNMP usando um item do agente SNMP para descoberta e atribuir nomes apropriados a eles automaticamente, com base no valor de string retornado por esse item
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 mudado, um novo host não é 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 realizadas no host existente que corresponde pelo endereço IP, tipo de interface e fonte de descoberta.
Remoção de host
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.
Criação de interface ao adicionar hosts
Quando hosts são adicionados como resultado da descoberta de rede, as interfaces são criadas de acordo com estas regras:
- Os serviços detectados - por exemplo, se uma verificação SNMP foi bem-sucedida, uma interface SNMP será criada.
- Se um host respondeu tanto a solicitações do Zabbix agent quanto do SNMP, ambos os tipos de interface serão criados.
- Se os critérios de unicidade forem dados retornados pelo Zabbix agent ou pelo SNMP, a primeira interface encontrada para um host será criada como a padrão. Outros endereços IP serão adicionados como interfaces adicionais. As condições da ação (como Host IP) não afetam a adição de interfaces. Observe que isso funcionará se todas as interfaces forem descobertas pela mesma regra de descoberta. Se uma regra de descoberta diferente descobrir uma interface diferente do mesmo host, um host adicional será adicionado.
- Se um host respondeu apenas a verificações do agent, ele será criado somente com uma interface agent. Se ele começar a responder a SNMP posteriormente, interfaces SNMP adicionais serão adicionadas.
- Se 3 hosts separados foram criados inicialmente, tendo sido descobertos pelos critérios de unicidade "IP", e depois a regra de descoberta for modificada de modo que os hosts A, B e C tenham o mesmo resultado de critérios de unicidade, B e C serão criados como interfaces adicionais para A, o primeiro host. Os hosts individuais B e C permanecem. Em Monitoring > Discovery, as interfaces adicionadas serão exibidas na coluna "Discovered device", em fonte preta e com recuo, mas a coluna "Monitored host" exibirá apenas A, o primeiro host criado. "Uptime/Downtime" não é medido para IPs que são considerados interfaces adicionais.
Alterando a configuração de proxy
Os hosts descobertos por diferentes proxies nem sempre são tratados como hosts diferentes. As verificações de descoberta e de unicidade 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, e não atribuído ao próprio proxy. Quando o Zabbix avalia a unicidade de 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 na verificação de unicidade, 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 complexo, porque as alterações de proxy devem ser aplicadas de forma consistente aos hosts descobertos e à associação ao grupo de proxy pai para evitar duplicidades.
Por exemplo, os passos para substituir o proxy em uma regra de descoberta:
- Desative a regra de descoberta.
- Sincronize a configuração do proxy.
- Substitua o proxy na regra de descoberta.
- Substitua o proxy para todos os hosts descobertos por esta regra (garanta que os hosts no grupo de proxy pai e quaisquer hosts monitorados por proxies individuais nesse grupo sejam atualizados para evitar duplicidades).
- Ative a regra de descoberta.