1 Individuazione all'interno della rete

Panoramica

Zabbix offre una funzionalità di network discovery automatica efficace e molto flessibile.

Con la network discovery configurata correttamente è possibile:

  • velocizzare il deployment di Zabbix
  • semplificare l'amministrazione
  • utilizzare Zabbix in ambienti in rapido cambiamento senza un'amministrazione eccessiva

La network discovery di Zabbix si basa sulle seguenti informazioni:

  • intervalli IP
  • disponibilità di servizi esterni (FTP, SSH, WEB, POP3, IMAP, TCP, ecc.)
  • informazioni ricevute da Zabbix agent (è supportata solo la modalità non cifrata)
  • informazioni ricevute da SNMP agent

NON fornisce:

  • rilevamento della topologia di rete

La network discovery consiste fondamentalmente in due fasi: rilevamento e azioni.

Individuazione

Zabbix esegue periodicamente la scansione degli intervalli IP definiti nelle regole di individuazione di rete. La frequenza del controllo è configurabile singolarmente per ciascuna regola.

Ogni regola dispone di un insieme di controlli dei servizi definiti da eseguire per l'intervallo IP.

Le regole di individuazione vengono elaborate dal discovery manager. Il discovery manager crea un job per ciascuna regola con un elenco di task (controlli di rete). I controlli di rete vengono eseguiti in parallelo dai discovery worker disponibili (il numero è configurabile nel frontend per ciascuna regola). Solo i controlli con lo stesso IP e la stessa porta vengono pianificati in sequenza, perché alcuni dispositivi non accettano connessioni parallele sulla stessa porta.

La dimensione della coda dei controlli di rete è limitata a 2000000 oppure a circa 4 GB di memoria. Se la coda si riempie, la regola di individuazione verrà saltata e nel log verrà stampato un messaggio di avviso. Puoi usare l'item interno zabbix[discovery_queue] per monitorare il numero di controlli di individuazione nella coda.

I controlli di individuazione vengono elaborati indipendentemente dagli altri controlli. Se alcuni controlli non trovano un servizio (o falliscono), gli altri controlli verranno comunque elaborati.

Se una regola di individuazione viene modificata durante l'esecuzione, l'esecuzione corrente dell'individuazione verrà interrotta.

Ogni controllo di un servizio e di un host (IP) eseguito dal modulo di individuazione di rete genera un evento di individuazione.

Evento Risultato del controllo del servizio
Servizio individuato Il servizio è 'up' dopo essere stato 'down' oppure quando viene individuato per la prima volta.
Servizio up Il servizio è 'up', dopo essere già stato 'up'.
Servizio perso Il servizio è 'down' dopo essere stato 'up'.
Servizio down Il servizio è 'down', dopo essere già stato 'down'.
Host individuato Almeno un servizio di un host è 'up' dopo che tutti i servizi di quell'host erano 'down' oppure viene individuato un servizio che appartiene a un host non registrato.
Host up Almeno un servizio di un host è 'up', dopo che almeno un servizio era già 'up'.
Host perso Tutti i servizi di un host sono 'down' dopo che almeno uno era 'up'.
Host down Tutti i servizi di un host sono 'down', dopo essere già stati 'down'.

Azioni

Gli eventi di discovery possono costituire la base per azioni pertinenti, quali:

  • Invio di notifiche
  • Aggiunta/rimozione di host
  • Abilitazione/disabilitazione di host
  • Aggiunta di host a un gruppo
  • Rimozione di host da un gruppo
  • Aggiunta di tag a un host
  • Rimozione di tag da un host
  • Collegamento di un template agli host/scollegamento di un template dagli host
  • Esecuzione di script remoti

Queste azioni possono essere configurate in base al tipo di dispositivo, IP, stato, uptime/downtime, ecc. Per i dettagli completi sulla configurazione delle azioni per eventi basati sulla network discovery, vedere le pagine operation e conditions dell'azione.

Poiché le azioni di network discovery sono basate su eventi, verranno attivate sia quando un host rilevato è online sia quando è offline. Si consiglia vivamente di aggiungere la condition dell'azione Discovery status: up per evitare che azioni come Add host vengano attivate in caso di eventi Service Lost/Service Down. In caso contrario, se un host rilevato viene rimosso manualmente, continuerà comunque a generare eventi Service Lost/Service Down e verrà ricreato durante il successivo ciclo di discovery.

Il collegamento di template a un host rilevato non riuscirà nel suo complesso se uno qualsiasi dei template collegabili contiene un'entità univoca (ad esempio una chiave item) uguale a un'entità univoca (ad esempio una chiave item) già esistente sull'host o su un altro dei template collegabili.

Creazione di host

Un host viene aggiunto se è selezionata l'operazione Aggiungi host. Un host viene aggiunto anche se l'operazione Aggiungi host manca, se si selezionano operazioni che comportano azioni su un host. Tali operazioni sono:

  • abilita host
  • disabilita host
  • aggiungi host a un gruppo host
  • collega template a un host

Gli host creati vengono aggiunti al gruppo Host rilevati (per impostazione predefinita, configurabile in Amministrazione > Generale > Altro). Se si desidera che gli host vengano aggiunti a un altro gruppo, aggiungere un'operazione Rimuovi dai gruppi host (specificando "Host rilevati") e aggiungere anche un'operazione Aggiungi ai gruppi host (specificando un altro gruppo host), perché un host deve appartenere a un gruppo host.

L'indirizzo IP del dispositivo rilevato, insieme alla sorgente di discovery (Zabbix server, Zabbix proxy o gruppo proxy) e al tipo di interfaccia, viene utilizzato come criterio per trovare un host nel sistema. Se esiste già un host con lo stesso indirizzo IP, lo stesso tipo di interfaccia e la stessa sorgente di discovery, tale host sarà la destinazione per l'esecuzione delle operazioni. Se la sorgente di discovery è diversa, l'entità rilevata viene trattata come un host diverso e può essere creato un nuovo host.

Se l'indirizzo IP dell'host rilevato viene modificato o l'interfaccia viene eliminata, al successivo rilevamento verrà creato un nuovo host.

Denominazione degli host

Quando si aggiungono host, il nome host è il risultato di una ricerca DNS inversa oppure l'indirizzo IP se la ricerca inversa non riesce. La ricerca viene eseguita dal server Zabbix o dal proxy Zabbix, a seconda di quale dei due stia effettuando il discovery. Se la ricerca non riesce sul proxy, non viene ritentata sul server. Se esiste già un host con tale nome, al nome dell'host successivo verrà aggiunto _2, poi _3 e così via.

È anche possibile ignorare la ricerca DNS/IP e utilizzare invece il valore di un item come nome host, ad esempio:

  • È possibile individuare più server con Zabbix agent in esecuzione utilizzando un item Zabbix agent per il discovery e assegnare automaticamente nomi corretti in base al valore stringa restituito da questo item
  • È possibile individuare più dispositivi di rete SNMP utilizzando un item SNMP agent per il discovery e assegnare automaticamente nomi corretti in base al valore stringa restituito da questo item

Se il nome host è stato impostato utilizzando il valore di un item, non viene aggiornato durante i successivi controlli di discovery. Se non è possibile impostare il nome host utilizzando il valore di un item, viene usato il valore predefinito (nome DNS).

Se esiste già un host con l'indirizzo IP individuato e l'origine del discovery (server Zabbix, proxy o gruppo di proxy) non è cambiata, non viene creato un nuovo host. Se l'origine del discovery è diversa, l'entità individuata viene trattata come distinta e può essere creato un nuovo host. Tuttavia, se l'azione di discovery contiene operazioni (collegamento di template, aggiunta a un gruppo di host, ecc.), queste vengono eseguite sull'host esistente che corrisponde per indirizzo IP, tipo di interfaccia e origine del discovery.

Rimozione degli host

Gli host rilevati da una regola di network discovery vengono rimossi automaticamente da Monitoring > Discovery se un'entità rilevata non è più nell'intervallo IP della regola. Gli host vengono rimossi immediatamente.

Creazione delle interfacce durante l'aggiunta degli host

Quando gli host vengono aggiunti come risultato del rilevamento di rete, le relative interfacce vengono create secondo queste regole:

  • I servizi rilevati - ad esempio, se un controllo SNMP ha avuto esito positivo, verrà creata un'interfaccia SNMP.
  • Se un host risponde sia alle richieste di Zabbix agent sia a quelle SNMP, verranno creati entrambi i tipi di interfaccia.
  • Se i criteri di unicità sono dati restituiti da Zabbix agent o SNMP, la prima interfaccia trovata per un host verrà creata come interfaccia predefinita. Gli altri indirizzi IP verranno aggiunti come interfacce aggiuntive. Le condizioni dell'azione (come Host IP) non influiscono sull'aggiunta delle interfacce. Si noti che questo funzionerà se tutte le interfacce vengono rilevate dalla stessa regola di rilevamento. Se una regola di rilevamento diversa rileva un'interfaccia diversa dello stesso host, verrà aggiunto un host aggiuntivo.
  • Se un host risponde solo ai controlli agent, verrà creato solo con un'interfaccia agent. Se in seguito iniziasse a rispondere a SNMP, verrebbero aggiunte ulteriori interfacce SNMP.
  • Se inizialmente sono stati creati 3 host separati, rilevati in base ai criteri di unicità "IP", e poi la regola di rilevamento viene modificata in modo che gli host A, B e C abbiano un risultato dei criteri di unicità identico, B e C vengono creati come interfacce aggiuntive per A, il primo host. I singoli host B e C rimangono. In Monitoring > Discovery le interfacce aggiunte verranno visualizzate nella colonna "Discovered device", in nero e rientrate, ma la colonna "Monitored host" mostrerà solo A, il primo host creato. "Uptime/Downtime" non viene misurato per gli IP considerati interfacce aggiuntive.

Modifica dell'impostazione del proxy

Gli host individuati da proxy diversi non vengono sempre trattati come host diversi. I controlli di discovery e di unicità dipendono dalla struttura del gruppo di proxy: quando un proxy esegue una regola di discovery e crea un host, tale host viene aggiunto al gruppo di proxy padre del proxy, non assegnato al proxy stesso. Quando Zabbix valuta l'unicità dell'IP durante la discovery, controlla gli host monitorati dal gruppo di proxy padre. Gli host monitorati dai singoli proxy all'interno di quel gruppo (incluso il proxy che ha eseguito la discovery) vengono ignorati per il controllo di unicità, il che può comportare host duplicati se più proxy monitorano subnet sovrapposte.

Sebbene questo comportamento consenta alla discovery di operare su intervalli IP sovrapposti utilizzati da subnet diverse, modificare il proxy assegnato a una subnet già monitorata è più complesso, perché le modifiche del proxy devono essere applicate in modo coerente agli host individuati e all'appartenenza al gruppo di proxy padre per evitare duplicati.

Ad esempio, i passaggi per sostituire il proxy in una regola di discovery sono:

  1. disabilitare la regola di discovery
  2. sincronizzare la configurazione del proxy
  3. sostituire il proxy nella regola di discovery
  4. sostituire il proxy per tutti gli host individuati da questa regola (assicurarsi che gli host nel gruppo di proxy padre e tutti gli host monitorati dai singoli proxy in quel gruppo vengano aggiornati per evitare duplicati)
  5. abilitare la regola di discovery