Ep. 51: Creazione automatica di host in Checkmk
[0:00:00] | Mappatura automatica degli oggetti Cloud tramite registrazione automatica e creazione automatica di host. |
[0:00:15] | Benvenuti nel canale Checkmk. Nell'ultimo video abbiamo configurato la modalità push e registrato i nostri agenti per utilizzare questa opzione di configurazione. Si è trattato di un'operazione manuale in cui abbiamo prima installato l'agente sull'host di destinazione e poi abbiamo utilizzato i comandi cmk_agent ctl to per registrare l'agente rispetto al ricevitore dell'agente. |
[0:00:42] | Oggi vi mostrerò come automatizzare questo processo utilizzando la registrazione automatica e la creazione automatica dell'host. Quindi, senza ulteriori indugi, iniziamo. |
[0:00:49] | Per questa demo sto usando la versione 2.20p6 di Checkmk Cloud Edition e sto usando alcune istanze EC2, circa 10. Tutte con lo stesso tag. Tutte con lo stesso tag, che userò per eseguire un comando remoto su queste dieci istanze EC2. Sono tutte basate su Ubuntu e l'obiettivo è che queste macchine siano state lanciate di recente tramite la console AWS e non abbiano alcun agente installato. |
[0:01:19] | Il nostro obiettivo sarà quello di installare l'agente su queste macchine e, dopo l'installazione dell'agente, verranno create automaticamente e anche la loro registrazione avverrà automaticamente. Passiamo quindi all'interfaccia web di Checkmk e configuriamo i prerequisiti. |
[0:01:41] | Come primo prerequisito, configureremo l'utente che ci servirà per la registrazione automatica. Perché abbiamo bisogno di questo utente speciale? Perché in Checkmk 2.2 abbiamo introdotto un ruolo molto specifico che è stato implementato solo per la registrazione degli agenti. Ha un'autorizzazione molto limitata che fondamentalmente lo separa dalle attività di amministrazione di Checkmk, motivo per cui si raccomanda di utilizzare il ruolo utente di registrazione dell'agente. |
[0:02:18] | Potete semplicemente selezionare il segreto di automazione, io incollo il mio segreto di automazione, potete anche generare il vostro facendo clic su questo dado e copiare la password e usarla per scaricare gli agenti o eseguire qualsiasi tipo di attività che desiderate fare con questo ruolo di registrazione automatica. L'ho già configurato, ora possiamo semplicemente salvarlo. |
[0:02:40] | Il prossimo prerequisito è impostare una cartella in cui memorizzare tutte le istanze EC2. Ho nominato la cartella come host AWS, non ho un indirizzo IP per loro, quindi lo imposterò senza IP. Per l'integrazione API, l'agente Checkmk può rimanere con il valore predefinito e l'opzione di configurazione più importante è la modalità di connessione, che in questo caso sarà "push". Naturalmente, vorremo anche creare l'agente, quindi faremo clic sui pacchetti, selezioneremo la voce Crea un pacchetto agente generico per questa cartella, perché tutti gli host che faranno parte di questa cartella riceveranno questo pacchetto e ogni nuovo host che verrà aggiunto a questa cartella riceverà automaticamente questo pacchetto. |
[0:03:29] | Non abbiamo SNMP, non abbiamo bisogno di dati di piggyback, quindi salviamo semplicemente la cartella. Ora possiamo procedere con la configurazione della registrazione dell'agente. Questa operazione si svolge in due fasi. Una configurazione di registrazione deve essere eseguita sul lato server di Checkmk, sotto il menu di configurazione, e la seconda deve essere eseguita per l'agente. |
[0:03:59] | Questo verrà fatto tramite Agent Bakery ed è per questo che abbiamo scelto l'opzione bake generic agent package per questa cartella perché vogliamo che la seconda configurazione, questa, venga applicata a tutti gli host di quella cartella. |
[0:04:13] | Procediamo con la registrazione dell'agente sul lato server, facendo clic su registrazione agente. Fare clic su Aggiungi regola. È divisa in diverse sezioni, la prima è quella delle proprietà, in cui si chiede di definire l'ID della regola, il titolo della regola e poi la casella dei criteri di corrispondenza, in cui si specifica quali etichette devono essere accettate quando il server della chiave di controllo riceve una richiesta di registrazione da un agente. |
[0:04:47] | Le etichette degli agenti che vedete qui sono utilizzate esclusivamente per la registrazione automatica e sono molto diverse dalle etichette altrimenti utilizzate in Checkmk per identificare gli host e i servizi. |
[0:05:02] | Per impostazione predefinita, sono definite due etichette per gli agenti che possono essere utilizzate immediatamente: "hostname-simple" e "os -family". "Hostname-simple" fornisce fondamentalmente un nome univoco senza il componente del nome di dominio, mentre la famiglia OS indica il sistema operativo dell'agente, se si tratta di un server Windows o Linux. |
[0:05:32] | Infine, è possibile creare la propria etichetta definendo un'etichetta personalizzata in questo valore e scegliendo il valore appropriato. All'interno del valore sono disponibili diverse opzioni che consentono di dire se la mia chiave è accessibile, se la chiave non esiste, se la chiave è uguale a un particolare valore o se la chiave è uguale a un valore per il quale posso anche definire un'espressione regolare. Quindi, per la mia esercitazione di oggi, userò semplicemente la chiave hostname-simple. |
[0:06:07] | Inoltre, utilizzerò un'etichetta personalizzata, che sarà my_autoregister_label, e ho detto che il valore deve esistere. La sezione successiva è quella delle azioni, in cui definiamo se vogliamo creare gli host o se non vogliamo crearli. Quindi seleziono semplicemente crea host. |
[0:06:32] | La sezione successiva riguarda il calcolo del nome dell'host, dove in pratica si decide come devono apparire i nomi quando vengono creati automaticamente in Checkmk. Qui $cmk/hostname-simple è l'etichetta dell'agente che ho ottenuto dalle etichette dell'agente che ho definito in precedenza. Quando i miei host vengono creati, useranno questo modello di hostname. Se ho dei casi ascendenti che possono anche fare la traduzione dei casi, posso convertirli in maiuscolo/minuscolo, oppure posso anche scegliere di non convertire nulla. Se voglio fare una mappatura esplicita del nome di host, come se ricevessi un host A e volessi cambiarlo in un host B, posso farlo. Se ho più host e voglio tradurre i nomi degli host in un unico passaggio, posso anche usare più espressioni regolari. |
[0:07:25] | È possibile trovare maggiori informazioni su queste impostazioni facendo clic sull'aiuto in linea, dove si può scegliere come usare le espressioni regolari, come usare i gruppi di corrispondenza e tutto il resto. Nascondiamo la guida in linea e poi l'ultima sezione, ma non la meno importante, è la creazione dell'host. |
[0:07:45] | Qui si definisce sostanzialmente la cartella in cui si desidera creare l'host. Voglio scegliere l'host AWS e poi si possono definire diversi attributi. Io mi atterrò all'attributo predefinito, ovvero l'agente di monitoraggio impostato su API integration o su Checkmk agent. E salviamo semplicemente questa regola. |
[0:08:08 | La seconda parte della configurazione è la registrazione dell'agent controller, lato agente. Che si trova sotto le regole dell'agente. Quindi facciamo clic qui, facciamo clic su aggiungi regola e qui c'è un solo elemento di configurazione, ovvero l'agent controller, la registrazione automatica, dove in pratica vengono richieste informazioni su quale lato questo controllore agente deve registrarsi. Utilizzerò quindi questo sito Checkmk standalone che sto usando in questa esercitazione. |
[0:08:43] | Altrimenti, se si utilizza il monitoraggio distribuito, provare a inserire lo stesso nome host o indirizzo IP del sito corrispondente. La seconda impostazione è la porta dell'agent receiver; qui si hanno due opzioni, prima di tutto se si vuole determinare la porta del ricevitore dell'agente si può semplicemente accedere alla riga di comando di Checkmk e digitare omd config show e 'grep' per la parola "receiver". |
[0:09:18] | Si vedrà che la porta del ricevitore dell'agente è attiva e che la porta del ricevitore dell'agente per il proprio sito Checkmk è 8000. Se ci sono più siti, questo numero continuerà ad aumentare. Torniamo quindi all'interfaccia web di Checkmk: posso configurare direttamente la porta di ricezione dell'agente oppure scegliere di rilevarla automaticamente. Con la seconda opzione è sufficiente che la porta 8000 sia aperta tra l'host di destinazione e il server di monitoraggio. |
[0:09:53] | Ma se scelgo l'opzione di rilevamento automatico, l'host di destinazione deve prima accedere ad Apache sulla porta 80 o 443 e poi determinare la porta di ricezione dell'agente. Quindi in questo caso devo aprire due o tre porte. L'impostazione successiva è il sito con cui registrarsi, per impostazione predefinita è il sito del cloud e poi sotto l'autorizzazione posso selezionare l'utente di registrazione automatica che ho usato per fare questa registrazione automatica. Poi, si deve definire l'etichetta in base alla quale deve avvenire il filtraggio o i criteri di corrispondenza che si definiscono. |
[0:10:36] | Quindi la mia etichetta di autoregistrazione ha un valore e nei criteri di corrispondenza ho scelto che la chiave debba esistere. Se avete già delle connessioni esistenti in cui lo stesso host è monitorato da più siti, potete scegliere di mantenere le connessioni esistenti o di dire semplicemente 'No'. |
[0:10:55] | Sul mio host sono host freschi e non ho altre connessioni, quindi ho deciso di mantenere questa impostazione su 'No' e ora assegnerò semplicemente questa regola alla cartella host AWS e la salverò. Passiamo alla configurazione degli agenti, dove possiamo vedere la configurazione dell'agente, per la quale dobbiamo fare clic su "Bake agents" e ora abbiamo a disposizione la configurazione dell'agente cotto. |
[0:11:23] | Attiviamo anche le modifiche perché abbiamo creato un utente, abbiamo creato una cartella, abbiamo modificato gli attributi della cartella e poi abbiamo creato queste due regole. Quindi, se torniamo di nuovo agli agenti, questo è il pacchetto che ora dobbiamo distribuire su tutti i nostri host di destinazione, ovvero le dieci istanze EC2. Come ho già detto, queste sono basate sul sistema operativo Ubuntu, posso semplicemente scaricare questo pacchetto e usare Ansible o una copia parallela SSH su queste macchine o posso semplicemente usare il servizio AWS per farlo. |
[0:12:04] | Passiamo quindi alla console AWS e utilizziamo il servizio AWS systems manager per installare l'agente su queste dieci istanze EC2. Per questo ho preparato anche il comando. Questo comando si basa sul nostro endpoint API REST: si tratta di un semplice curl che in pratica inserisce il pacchetto in questo file, che include alcune intestazioni e questo è l'endpoint API REST principale in cui sono presenti l'IP del sito Checkmk, il nome del sito, l'intero endpoint API, la cartella dell'host AWS è persino inclusa, il tipo di sistema operativo è Linux Deb e il tipo di agente è generico, dopodiché installo semplicemente il pacchetto qui. |
[0:12:51] | Quindi possiamo copiare questi due comandi e andare direttamente alla console AWS, nella ricerca possiamo cercare systems manager, aprirlo in una nuova scheda, fare clic su run command e poi cercare semplicemente "shell", selezionare lo script AWS run shell che si trova un po' più in basso, incollare questi due comandi e assegnare semplicemente questo comando al tag che assegniamo a tutte le nostre istanze EC2. Quindi, se la chiave era name e il valore del tag era automated-push-mode, possiamo semplicemente copiarlo da qui e incollarlo nel valore. |
[0:13:49] | Clicchiamo su "Aggiungi" e andiamo a capo, non dobbiamo modificare nient'altro e clicchiamo semplicemente su "Esegui". Non appena faccio clic su "Esegui", si può vedere che l'ID del comando è stato generato e che i comandi sono stati inviati con successo. Possiamo semplicemente aggiornare la pagina. E si può già vedere che il comando è stato eseguito su quelle 10 istanze EC2. |
[0:14:20] | Ora possiamo tornare all'interfaccia web di Checkmk, ci vogliono alcuni minuti per creare gli agenti. Gli host sono già presenti e possiamo fare clic direttamente su queste 10 modifiche per vedere cosa è successo. Possiamo già vedere che utilizzando l'utente di registrazione automatica sono state aggiunte 10 istanze EC2 con l'etichetta hostname-simple che abbiamo scelto nei criteri di corrispondenza. |
[0:14:48] | Ricarichiamo di nuovo la pagina e vediamo che anche i servizi ottenuti tramite l'agente sono stati salvati. E forse nel prossimo aggiornamento le modifiche sono state attivate. Quindi, se facciamo clic sul numero di host, possiamo vedere che hanno già i check standard dell'agente che riceve dall'agente Checkmk. |
[0:15:18] | Riceve i check del carico della CPU, i check dell'IO del disco, tutti i check del file system, delle opzioni di montaggio, di systemd e, se l'agente è stato arricchito di un plug-in o di un check locale, anche questi check verranno eseguiti dall'agente e mostrati nella vista dei servizi. |
[0:15:45] | Per oggi è tutto, grazie per aver guardato, non dimenticate di mettere "Mi piace" e di iscrivervi. Ci vediamo presto. |
Vuoi saperne di più su Checkmk? Partecipa al nostro webinar "Introduzione a Checkmk".