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 avvierà automaticamente la raccolta dei 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 impiegato 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 senza metadati
- se un host viene modificato manualmente per essere monitorato da un altro proxy Zabbix
- se l'autoregistrazione per lo stesso host proviene da un nuovo proxy Zabbix
L'heartbeat di autoregistrazione dell'agent attivo per Zabbix server e Zabbix proxy è di 120 secondi. Quindi, nel caso in cui un host rilevato venga eliminato, l'autoregistrazione verrà eseguita nuovamente entro 120 secondi.
Configurazione
Specificare il server
Assicurati di aver identificato il server Zabbix nel file di configurazione dell'agent - zabbix_agentd.conf:
ServerActive=10.0.0.1
A meno che tu non definisca esplicitamente un Hostname in zabbix_agentd.conf, il nome host di sistema della macchina su cui si trova l'agent verrà usato dal server per assegnare il nome all'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 separati da virgole, verranno creati host per tutti i nomi host elencati.
Riavvia l'agent dopo aver apportato eventuali modifiche al file di configurazione.
Azione per l'autoregistrazione dell'agent attivo
Quando il server riceve una richiesta di autoregistrazione da un agent, richiama un action. Per l'autoregistrazione dell'agent deve essere configurato un action con origine evento "Autoregistration".
La configurazione di network discovery non è necessaria affinché gli agent attivi si autoregistrino.
Nel frontend di Zabbix, vai su Alerts → Actions, seleziona Autoregistration actions e fai clic su Create action:
- Nella scheda Action, assegna un nome al tuo action
- Facoltativamente, specifica conditions. Puoi usare una corrispondenza per sottostringa o un'espressione regolare nelle condizioni per host name/host metadata. Se intendi usare la condizione "Host metadata", consulta la sezione successiva.
- Nella scheda Operations, aggiungi le operazioni pertinenti, come - 'Add host', 'Add to host group' (ad esempio, Discovered hosts), 'Link templates', ecc.
Se gli host che si autoregistreranno saranno probabilmente supportati solo per il monitoraggio attivo (ad esempio host protetti da firewall rispetto al tuo server Zabbix), potresti voler creare un template specifico come Template_Linux-active da collegare.
Gli host creati vengono aggiunti al gruppo Discovered hosts (per impostazione predefinita, configurabile in Administration > General > Other). Se desideri che gli host vengano aggiunti a un altro gruppo, aggiungi un'operazione Remove from host group (specificando "Discovered hosts") e aggiungi anche un'operazione Add to host group (specificando un altro host group), perché un host deve appartenere a un host group.
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 del DNS come interfaccia predefinita
HostInterface e HostInterfaceItem parametri di configurazione consentono di specificare un valore personalizzato per l'interfaccia dell'host durante l'autoregistrazione.
Più precisamente, sono utili se l'host deve essere autoregistrato con un nome DNS come interfaccia predefinita dell'agent anziché con il suo indirizzo IP. In tal caso, il nome DNS deve essere specificato o restituito come valore di uno 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 dell'host autoregistrato verrà aggiornata di conseguenza. Questo aggiornamento viene applicato all'host esistente, non creando un nuovo host. Per inviare il nuovo valore, l'agent deve essere riavviato in modo da riavviare il processo di autoregistrazione.
Se i parametri HostInterface o HostInterfaceItem non sono configurati, viene utilizzato invece 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, può causare un'autoregistrazione errata o non riuscita a causa di un valore di interfaccia non valido.
Utilizzo dei metadati dell'host
Quando agent invia una richiesta di autoregistrazione al server, invia il proprio hostname. In alcuni casi (ad esempio, nodi cloud di Amazon), un hostname non è sufficiente per consentire a Zabbix server di distinguere gli host rilevati. I metadati dell'host possono essere usati facoltativamente per inviare altre informazioni da un agent al server.
I metadati dell'host sono configurati nel file di configurazione dell'agent - zabbix_agentd.conf.
Esistono 2 modi per specificare i metadati dell'host nel file di configurazione:
HostMetadata
HostMetadataItem
Vedere la descrizione delle opzioni nel link sopra.
Il parametro HostMetadataItem può restituire fino a 65535 code point UTF-8. Un valore più lungo verrà troncato.
Si noti che su 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 una richiesta per aggiornare i controlli attivi al server. Il ritardo 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.