2 Registrazione automatica dell'agente attivo
Panoramica
È possibile consentire l'autoregistrazione dell'agent Zabbix attivo, dopo la quale il server può iniziare a monitorarlo. In questo modo è possibile aggiungere nuovi host al monitoraggio senza configurarli manualmente sul server.
L'autoregistrazione può avvenire quando un agent attivo precedentemente sconosciuto richiede i controlli.
Questa funzionalità può essere molto utile per il monitoraggio automatico di nuovi nodi Cloud. Non appena si dispone di un nuovo nodo nel Cloud, Zabbix inizierà automaticamente a raccogliere i dati sulle prestazioni e sulla disponibilità dell'host.
L'autoregistrazione dell'agent attivo supporta anche il monitoraggio degli host aggiunti con controlli passivi.
Quando l'agent attivo richiede i controlli, a condizione che i parametri di configurazione ListenIP o ListenPort siano definiti nel file di configurazione, questi vengono inviati al server.
Se sono specificati più indirizzi IP, il primo viene inviato al server.
Quando aggiunge il nuovo host autoregistrato, il server utilizza l'indirizzo IP e la porta ricevuti per configurare l'agent. Se non viene ricevuto alcun valore di indirizzo IP, viene utilizzato quello usato per la connessione in ingresso. Se non viene ricevuto alcun valore di porta, viene utilizzato 10050.
È possibile specificare che l'host debba essere autoregistrato con un nome DNS come interfaccia agent predefinita.
L'autoregistrazione viene eseguita nuovamente:
- se cambiano le informazioni dei metadati dell'host:
- perché HostMetadata è stato modificato e l'agent è stato riavviato
- perché è cambiato il valore restituito da HostMetadataItem
- per gli host creati manualmente con metadati mancanti
- se un host viene modificato manualmente per essere monitorato da un altro Zabbix proxy
- se l'autoregistrazione per lo stesso host proviene da un nuovo Zabbix proxy
L'heartbeat di autoregistrazione dell'agent attivo per Zabbix server e Zabbix proxy è di 120 secondi. Quindi, nel caso in cui un host individuato venga eliminato, l'autoregistrazione verrà eseguita nuovamente dopo 120 secondi.
Configurazione
Specificare il server
Assicurarsi di avere il server Zabbix identificato nel file di configurazione dell'agent - zabbix_agentd.conf:
ServerActive=10.0.0.1
A meno che non si definisca esplicitamente un Hostname in zabbix_agentd.conf, il nome host di sistema della posizione dell'agent verrà utilizzato dal server per assegnare il nome al host.
Il nome host di sistema in Linux può essere ottenuto eseguendo il comando hostname.
Se Hostname è definito nella configurazione dell'agent Zabbix come un elenco di host delimitato da virgole, verranno creati host per tutti i nomi host elencati.
Riavviare l'agent dopo aver apportato qualsiasi modifica al file di configurazione.
Azione per l'autoregistrazione attiva dell'agent
Quando il server riceve una richiesta di autoregistrazione da un agent, richiama un'azione. Per l'autoregistrazione dell'agent deve essere configurata un'azione con origine evento "Autoregistration".
La configurazione del rilevamento di rete non è necessaria per consentire agli agent attivi di autoregistrarsi.
Nel frontend di Zabbix, andare su Avvisi → Azioni, selezionare Azioni di autoregistrazione e fare clic su Crea azione:
- Nella scheda Azione, assegnare un nome all'azione
- Facoltativamente, specificare le condizioni. È possibile eseguire una corrispondenza per sottostringa o tramite espressione regolare nelle condizioni per nome host/metadati host. Se si intende utilizzare la condizione "Metadati host", vedere la sezione successiva.
- Nella scheda Operazioni, aggiungere le operazioni pertinenti, ad esempio: 'Aggiungi host', 'Aggiungi al gruppo host' (per esempio, Host rilevati), 'Collega template', ecc.
Se è probabile che gli host che si autoregistreranno siano supportati solo per il monitoraggio attivo (ad esempio host protetti da firewall rispetto al server Zabbix), potrebbe essere utile creare un template specifico come Template_Linux-active da collegare.
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 dal gruppo host (specificando "Host rilevati") e aggiungere anche un'operazione Aggiungi al gruppo host (specificando un altro gruppo host), perché un host deve appartenere a un gruppo host.
Autoregistrazione sicura
Un metodo sicuro di autoregistrazione è possibile configurando l'autenticazione basata su PSK con connessioni cifrate.
Il livello di cifratura viene configurato globalmente in Administration > General > Autoregistration. È possibile selezionare nessuna cifratura, la cifratura TLS con autenticazione PSK oppure entrambe (in modo che alcuni host possano registrarsi senza cifratura mentre altri tramite connessione cifrata).
L'autenticazione tramite PSK viene verificata da Zabbix server prima di aggiungere un host. Se la verifica ha esito positivo, l'host viene aggiunto e Connections from/to host viene impostato solo su 'PSK' con identità/chiave precondivisa uguale a quella dell'impostazione globale di autoregistrazione.
Per garantire la sicurezza dell'autoregistrazione nelle installazioni che utilizzano proxy, deve essere abilitata la cifratura tra Zabbix server e proxy.
Utilizzo di DNS come interfaccia predefinita
I parametri di configurazione HostInterface e HostInterfaceItem consentono di specificare un valore personalizzato per l'interfaccia del host durante l'autoregistrazione.
Più precisamente, sono utili se il host deve essere autoregistrato con un nome DNS come interfaccia agent predefinita anziché con il suo indirizzo IP. In tal caso, il nome DNS deve essere specificato o restituito come valore dei parametri HostInterface o HostInterfaceItem. Se il valore di uno di questi parametri cambia, ad esempio da un indirizzo IP a un nome DNS o viceversa, l'interfaccia predefinita del host autoregistrato verrà aggiornata di conseguenza. Questo aggiornamento viene applicato al host esistente, senza crearne uno nuovo. Per inviare il nuovo valore, è necessario riavviare l'agent affinché riavvii il processo di autoregistrazione.
Se i parametri HostInterface o HostInterfaceItem non sono configurati, viene invece utilizzato il parametro listen_dns. Questo valore viene determinato eseguendo una ricerca DNS inversa dell'indirizzo IP dell'agent. Se il DNS inverso non è configurato correttamente o restituisce un nome non valido, ciò può causare un'autoregistrazione errata o non riuscita a causa di un valore dell'interfaccia non valido.
Utilizzo dei metadati del host
Quando l'agent invia una richiesta di autoregistrazione al server, invia il proprio hostname. In alcuni casi (ad esempio, nodi cloud Amazon) un hostname non è sufficiente perché il server Zabbix distingua i host rilevati. I metadati del host possono essere utilizzati facoltativamente per inviare altre informazioni da un agent al server.
I metadati del host si configurano nel file di configurazione dell'agent - zabbix_agentd.conf.
Esistono 2 modi per specificare i metadati del host nel file di configurazione:
HostMetadata
HostMetadataItem
Vedere la descrizione delle opzioni nel link sopra.
Il parametro HostMetadataItem può restituire fino a 65535 punti di codice UTF-8. Un valore più lungo verrà troncato.
Si noti che in MySQL la lunghezza massima effettiva in caratteri sarà inferiore se il valore restituito contiene caratteri multibyte. Ad esempio, un valore contenente solo caratteri a 3 byte sarà limitato a 21844 caratteri totali, mentre un valore contenente solo caratteri a 4 byte sarà limitato a 16383 simboli.
Un tentativo di autoregistrazione avviene ogni volta che un agent attivo invia al server una richiesta di aggiornamento dei controlli attivi. L'intervallo tra le richieste è specificato nel parametro RefreshActiveChecks dell'agent. La prima richiesta viene inviata immediatamente dopo il riavvio dell'agent.
Esempi
Autoregistrazione per OS utilizzando HostMetadata
Supponiamo di voler fare in modo che gli host vengano autoregistrati dal server Zabbix. Nella rete sono presenti agent Zabbix attivi (vedere la sezione "Configuration" sopra). Nella rete sono presenti host Windows e host Linux e nel frontend Zabbix sono disponibili i template "Linux by Zabbix agent" e "Windows by Zabbix agent". Quindi, al momento della registrazione dell'host, si desidera che al host in fase di registrazione venga applicato il template Linux/Windows appropriato. Per impostazione predefinita, durante l'autoregistrazione viene inviato al server solo il nome host, il che potrebbe non essere sufficiente. Per assicurarsi che al host venga applicato il template corretto, è necessario utilizzare i metadati dell'host.
Configurazione del frontend
La prima cosa da fare è configurare il frontend. Creare 2 azioni. La prima azione:
- Nome: Registrazione automatica del host Linux
- Condizioni: I metadati del host contengono Linux
- Operazioni: Collegare i template: Linux by Zabbix agent
In questo caso è possibile saltare un'operazione "Add host". Il collegamento di un template a un host richiede prima l'aggiunta del host, quindi il server lo farà automaticamente.
La seconda azione:
- Nome: Registrazione automatica del host Windows
- Condizioni: I metadati del host contengono Windows
- Operazioni: Collegare i template: Windows by Zabbix agent
Configurazione dell'agent
Ora è necessario configurare gli agent. Aggiungere la riga seguente ai file di configurazione dell'agent:
HostMetadataItem=system.uname
In questo modo ci si assicura che i metadati del host contengano "Linux" o "Windows" a seconda del host su cui è in esecuzione un agent. Un esempio di metadati del host in questo 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
Non dimenticare di riavviare l'agent dopo aver apportato qualsiasi modifica al file di configurazione.
Utilizzo di HostMetadata per controllare l'autoregistrazione e i template
Passaggio 1 - Proteggere la registrazione con HostMetadata
Utilizzare i metadati dell'host per consentire una protezione di base contro la registrazione di host indesiderati.
Configurazione del frontend
Creare un'azione nel frontend, utilizzando un codice segreto difficile da indovinare per impedire host indesiderati:
- Nome: Azione di autoregistrazione Linux
- Condizioni:
- Tipo di calcolo: AND
- Condizione (A): I metadati dell'host contengono //Linux//
- Condizione (B): I metadati dell'host contengono //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
- Operazioni:
- Invia messaggio agli utenti: Admin tramite tutti i supporti
- Aggiungi ai gruppi host: Server Linux
- Collega template: Linux by Zabbix agent
Si noti che questo metodo da solo non fornisce una protezione efficace, poiché i dati vengono trasmessi in testo semplice. Per rendere immediatamente effettive le modifiche è necessario ricaricare la cache di configurazione.
Configurazione dell'agent
Aggiungere la riga seguente al file di configurazione dell'agent:
HostMetadata=Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
dove "Linux" è una piattaforma e il resto della stringa è il testo segreto difficile da indovinare.
Non dimenticare di riavviare l'agent dopo aver apportato qualsiasi modifica al file di configurazione.
Passaggio 2 - Aggiungere il template al host registrato
È possibile aggiungere template aggiuntivi per un host già registrato.
In questo caso, il template MySQL by Zabbix agent verrà collegato solo ai host il cui HostMetadata contiene il token MySQL.
Configurazione del frontend
Aggiornare l'azione nel frontend:
- Nome: Azione di autoregistrazione Linux
- Condizioni:
- Tipo di calcolo: AND
- Condizione (A): I metadati dell'host contengono Linux
- Condizione (B): I metadati dell'host contengono 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
- Condizione (C): I metadati dell'host contengono MySQL
- Operazioni:
- Invia messaggio agli utenti: Admin tramite tutti i supporti
- Aggiungi ai gruppi host: Server Linux
- Collega i template: Linux by Zabbix agent
- Collega i template: MySQL by Zabbix Agent
Configurazione dell'agent
Aggiornare la riga seguente nel file di configurazione dell'agent:
HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
Non dimenticare di riavviare l'agent dopo aver apportato qualsiasi modifica al file di configurazione.