This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. Introduzione
Oltre al monitoraggio tradizionale — ovvero il monitoraggio di stato, log e dati di misurazione — Checkmk include un'altra funzione completamente diversa praticamente a costo zero: l'inventario hardware/software (o inventario HW/SW in breve). Questo permette di identificare automaticamente gli elementi presenti sui tuoi host, come ad esempio:
Quali pacchetti software — e quali versioni di questi — sono installati su un server?
Che tipo di componenti RAM ha un server?
Quale versione del BIOS è installata sulla scheda madre?
I numeri di serie dei dischi rigidi installati.
Se ci sono porte su uno switch che non vengono utilizzate da un po' (e che quindi sono probabilmente libere)?
… e molto altro ancora
I dati ottenuti in questo modo vengono visualizzati per host in un albero strutturato e in varie altre viste, e sono disponibili anche tramite un'API. Ecco un piccolo esempio con i dati della CPU:

hardware.cpu
Con l'inventario HW/SW puoi eseguire una serie di operazioni, come ad esempio:
Fornire dati sul software installato per un sistema di gestione delle licenze
Determinare le denominazioni dei tipi per gli ordini di pezzi di ricambio (RAM, dischi rigidi, ventole)
Fornire dati generali su hardware e software per l'importazione regolare nei CMDB, in modo che questi si basino su dati aggiornati
Tracciare le modifiche all'hardware o al software, ad esempio per determinare quando è stato eseguito un aggiornamento specifico del BIOS
Essere informato se qualcosa è cambiato nell'hardware o nel software
Identificare i server su cui non è stato ancora installato un determinato service pack
Il vantaggio più importante rispetto ad altri sistemi simili è ovvio: puoi semplicemente utilizzare l'infrastruttura esistente di Checkmk e risparmiarti lo sforzo di configurare e amministrare un altro ambiente software. Basta implementare un unico plug-in agente aggiuntivo. Questo non è nemmeno necessario con i dispositivi SNMP, perché lo scanner di inventario supporta anche SNMP e recupera semplicemente i dati tramite questo canale.
Inoltre, Checkmk non ha bisogno di nascondersi dietro altri scanner di inventario. Come per i nostri plug-in di controllo, lavoriamo costantemente per espandere la scansione dei dati. Ogni versione di Checkmk introduce nuovi plug-in per lo scanner di inventario e le informazioni che è possibile raccogliere diventano sempre più dettagliate ed estese.
Oltre ai plug-in disponibili, puoi anche sviluppare i tuoi plug-in di inventario utilizzando un'API dedicata. Le informazioni sullo sviluppo dei plug-in di inventario sono disponibili in un articolo a parte.
2. Installazione
L'installazione dell'inventario HW/SW avviene in due passaggi. Il prerequisito è che l'agente Checkmk sia già stato installato sugli host (se questi non vengono monitorati tramite SNMP):
Attiva l'inventario per gli host desiderati
Distribuisci il plug-in dell'agente di inventario su questi host
2.1. Attivazione dell'inventario per gli host desiderati
Creazione della regola
Come sempre, se vuoi configurare qualcosa per host specifici, puoi farlo con l’aiuto di una regola.
Questo set di regole si trova in Setup > Hosts > HW/SW Inventory rules > Do HW/SW Inventory.
Ovviamente è ancora più facile usare la ricerca delle regole con la parola “inventory”.
Non confonderlo con il set di regole “HW/SW Inventory (Linux, Windows, Solaris, AIX)”, che è per il plug-in dell’agente, come vedremo più avanti.
Nel set di regole Do HW/SW Inventory, alcune regole che fanno riferimento alle etichette degli host sono già attive di default. Se gli host che ti interessano hanno un'etichetta di questo tipo, il servizio per l'inventario HW/SW è già configurato. In caso contrario, devi creare una nuova regola.
Usa
Add rule per creare una nuova regola per gli host per i quali vuoi attivare l'inventario.
Lì troverai diverse impostazioni:

Per ora lascia semplicemente tutto come preimpostato. Le varie opzioni che vedrai qui sono descritte di seguito.
Alla successiva attivazione delle modifiche, la regola che hai appena creato genererà, per ogni host, un controllo attivo che raccoglie tutti i dati di inventario per quell'host, sia dai dati ricevuti da un normale agente Checkmk, sia tramite ulteriori query SNMP. Il nuovo servizio Check_MK HW/SW Inventory è disponibile sugli host nell'elenco dei servizi e avrà un aspetto simile a questo:

Non preoccuparti se il controllo ha trovato solo pochi elementi: questo perché non abbiamo ancora installato il plug-in.
Definizione dell'intervallo
I dati di inventario cambiano raramente e, in ogni caso, riconoscere un cambiamento non è solitamente una questione di urgenza. Per questo motivo è opportuno utilizzare un intervallo regolato durante il quale viene eseguito il controllo dell’inventario, piuttosto che limitarsi a utilizzare il consueto intervallo di un minuto — principalmente perché l’elaborazione dei dati di inventario nel controllo attivo richiede un tempo di elaborazione significativamente maggiore rispetto a quello necessario per un servizio normale.
I siti Checkmk hanno di default una regola nel set di regole "Setup > Service monitoring rules > Service Checks > Normal check interval for service checks" che imposta l'intervallo su un giorno per tutti i servizi con il nome "Check_MK HW/SW Inventory":

Naturalmente, se ritieni che una volta al giorno non sia sufficiente, puoi anche personalizzare questa regola, ad esempio impostandola su quattro o otto ore. Naturalmente c'è sempre anche la possibilità di impostarla in modo diverso utilizzando più regole per host diversi.
2.2. Distribuzione del plug-in dell'agente di inventario su questi host
Il passo più importante è installare il plug-in dell'agente per l'inventario sugli host interessati. Puoi farlo manualmente o con Agent Bakery (solo edizioni commerciali).
Installazione manuale
Per un'installazione manuale, devi prima procurarti il plug-in. Lo trovi nelle edizioni commerciali alla pagina Setup > Agents > Windows, Linux, Solaris, AIX > Related e nella Checkmk Community direttamente alla voce Setup > Agents. In tutte le edizioni troverai lì le voci di menu per i vari sistemi operativi.
A seconda del sistema operativo, usa il seguente plug-in nella casella Plug-ins:
| Sistema operativo | Plug-in |
|---|---|
Windows |
|
Linux |
|
AIX |
|
Solaris |
|
Puoi trovare questi file anche dalla riga di comando nel sito Checkmk, nella sottodirectory
~/share/check_mk/agents/plugins(Linux/Unix) o in ~/share/check_mk/agents/windows/plugins (Windows).
Copia il plug-in sugli host di destinazione nella directory corretta per i plug-in.
Per l'agente Windows è C:\ProgramData\checkmk\agent\plugins.
Per i dettagli, consulta l'articolo sull'agente Windows.
Per Linux e Unix la directory è /usr/lib/check_mk_agent/plugins.
Assicurati che il file sia eseguibile (chmod +x).
Per i dettagli, consulta gli articoli sull'agente Linux.
L'importante è che l'agente venga chiamato da Checkmk, di solito una volta al minuto. Il plug-in dell'agente di inventario, tuttavia, richiede più tempo di elaborazione rispetto ai normali plug-in perché, ad esempio, deve cercare il software installato in molte directory. Inoltre genera quantità di dati significativamente maggiori. Ecco perché è stato progettato per generare e fornire nuovi dati solo ogni quattro ore (14400 secondi).
Quindi, se per qualche motivo importante hai specificato un intervallo inferiore a quattro ore per il tuo controllo dell'inventario, riceverai effettivamente nuovi dati solo ogni quattro ore. Se vuoi davvero raccogliere più dati, in tal caso dovrai modificare l'intervallo di calcolo predefinito.
Per Windows, sostituisci il numero direttamente nel file del plug-in.
Cerca il numero "14400" e sostituiscilo con un numero diverso di secondi.
La posizione in cui si trova è questa (dettagli):
Con Linux e Unix funziona in modo leggermente diverso.
A tal fine, crea un file di configurazione /etc/check_mk/mk_inventory.cfg con la seguente riga (qui nell'esempio con 7200 secondi):
Un'altra nota: Il plug-in dell'agente di inventario è impostato per essere eseguito solo ogni quattro ore. Pertanto, non utilizzare il meccanismo dell'agente per l'esecuzione asincrona dei plug-in a intervalli più lunghi. Installa il plug-in nel modo semplice e consueto per l'esecuzione diretta.
Configurazione tramite Agent Bakery
Naturalmente, se utilizzi Agent Bakery nelle edizioni commerciali per configurare i tuoi agenti, le cose sono molto più semplici.
Esiste un unico set di regole denominato "HW/SW Inventory (Linux, Windows, Solaris, AIX)", indipendente dal sistema operativo.
Questo set di regole controlla la distribuzione del plug-in necessario e la sua configurazione.
Lo trovi all'indirizzo Setup > Agents > Windows, Linux, Solaris, AIX > Agents > Agent rules:

Per Windows, oltre all'intervallo, puoi anche specificare i percorsi in cui cercare i file eseguibili .EXE quando si tratta di individuare il software installato sul sistema.
Puoi anche configurare i percorsi nel registro di Windows, che dovrebbero essere considerati come indicatori del software installato.
2.3. Test
Se hai installato correttamente il plug-in, dovresti trovare molti più record la prossima volta che esegui il controllo dell'inventario dell'host. Il risultato sarà quindi simile a questo:

3. Gestione dei dati di inventario
I dati di inventario sono ovviamente disponibili per ogni singolo host, in parte sotto forma di albero e in parte sotto forma di tabella. Di seguito ti mostriamo come funzionano esattamente e come puoi accedervi. Tuttavia, ci sono anche delle viste, in particolare le ricerche, che riguardano l'intero panorama dei tuoi host. Puoi accedervi tramite la voce "HW/SW Inventory" nel menu "Monitor":

3.1. Visualizzazione ad albero
I dati di inventario degli host vengono visualizzati da un lato in una struttura ad albero per ogni host e, dall'altro, in forma di tabella. Puoi aprire il diagramma ad albero, ad esempio, in una vista host tramite la voce di menu Host > HW/SW Inventory > Inventory of host.
In alternativa, nelle viste che elencano gli host, puoi richiamare il menu "
" di un host e da lì richiamare a sua volta l'inventario "
":

In entrambi i casi si ottiene la vista ad albero dei dati di inventario dell'host.
Partendo dalle tre categorie di base Hardware
, Networking
e Software
, è possibile espandere e comprimere i rami secondari dell'albero:

Nell'immagine sopra puoi vedere dietro le singole voci i percorsi dell'inventario tra parentesi, che puoi visualizzare utilizzando Display > Modify display options e l'opzione Show internal tree paths:

Vedrai quindi le denominazioni interne nell'inventario, quindi, ad esempio, il percorso interno per la sezione Processor si chiama hardware.cpu.
Le denominazioni per il modello e l'architettura della CPU — model e arch — si trovano più in basso nei dati della CPU.
Puoi usare queste denominazioni interne per abilitare solo singoli percorsi per i gruppi di contatti.
Gli utenti di un gruppo di contatti a cui sono state assegnate solo le voci hardware.cpu, model e arch mostrate sopra vedranno quindi solo un inventario ridotto:

3.2. Visualizzazioni tabellari
Molti dei dati dell'inventario sono valori singoli sotto percorsi molto specifici nell'albero, ad esempio la voce Hardware > System > Manufacturer > Apple Inc.. Ma ci sono anche punti nell'albero con tabelle di oggetti simili. Una molto importante è, ad esempio, la tabella Software > Packages:

La particolarità di questa parte dei dati di inventario è che puoi richiamare i pacchetti in una vista separata tramite Host > HW/SW Inventory > Software packages.
Lì troverai i filtri
specifici per la ricerca nei pacchetti (notevolmente ridotti nell'immagine):

Puoi anche effettuare ricerche nei pacchetti software su più host. La vista corrispondente si trova nel menu Monitor alla voce Monitor > HW/SW Inventory > Search software packages. Tutte le altre viste tabellari per l'inventario sono elencate nel menu Monitor, comprese ulteriori ricerche, ad esempio per dati Oracle specifici.
Tieni presente che molti filtri generali per gli host non sono disponibili di default nelle viste. Questi si ottengono modificando la vista e aggiungendo ulteriori filtri host.
Altre operazioni che puoi eseguire con le viste:
Includerle nei report
Esportarle in formato PDF o CSV
Integrarle con i dashboard
A proposito, puoi anche includere tali dati di inventario in viste che non sono di tipo tabellare. Esiste un tipo di colonna per ogni percorso ben noto nell'albero dell'inventario, che puoi aggiungere alle viste degli host. Un esempio è la vista predefinita CPU inventory of all hosts. Si tratta di una tabella di host che mostra dati aggiuntivi dall'inventario per ogni host. Ecco un esempio di una delle definizioni di colonna che aggiunge alla tabella una colonna con il numero di CPU fisiche presenti nell'host:

4. Cronologia dei dati di inventario
Una volta configurato l'inventario HW/SW per un host, Checkmk registrerà ogni modifica ai dati di inventario e ne salverà anche la cronologia. Puoi trovarli nelle viste con i dati di inventario tramite Host > HW/SW Inventory > Inventory history of host.
Ecco un estratto di una cronologia. Nella tabella puoi vedere alcuni dati IP che sono cambiati dall'ultimo controllo:

Se lo desideri, puoi essere informato ogni volta che si verifica una modifica nel software o nell'hardware. Questo avviene tramite lo stato del servizio Check_MK HW/SW Inventory. Per farlo, modifica la regola che hai creato all'inizio di questo articolo (nel set di regole "Do HW/SW Inventory"). Lì, per il valore della regola, troverai una serie di impostazioni che influenzano la cronologia. L'esempio seguente configura il servizio WARN se si verificano modifiche nel software o nell'hardware:

La prossima volta che il controllo dell'inventario rileva delle modifiche, andrà su WARN. A quel punto apparirà così:

Alla successiva esecuzione del controllo, e se nel frattempo non è cambiato nulla, questo si ripristina automaticamente su OK. Attivando manualmente l'esecuzione, hai anche la possibilità di reimpostare manualmente il servizio su OK se non vuoi aspettare la prossima esecuzione periodica normale.
5. Dati di stato
L'albero dei dati di inventario può essere aggiornato automaticamente con i dati di stato più recenti e pertinenti. Questo è molto utile in alcuni casi. Un esempio sono i tablespace Oracle. I dati di inventario effettivi contengono solo informazioni relativamente statiche come il SID, il nome e il tipo. I dati di stato attuali possono integrare queste informazioni con dettagli sulla dimensione attuale, lo spazio libero, ecc.
Se vuoi vedere i dati di stato nella tua struttura ad albero (e non c'è nulla di male in questo), devi solo attivare l'opzione corrispondente nella regola che hai creato all'inizio in "Do HW/SW Inventory":

A proposito, una modifica nei dati di stato non provocherà cambiamenti nella cronologia! Ciò porterebbe quasi sempre a modifiche costanti e renderebbe questa funzione inutile. I dati di stato non vengono memorizzati in file, ma, come i risultati dei controlli, vengono conservati direttamente nella memoria principale del kernel di monitoraggio.
6. Accesso esterno ai dati
6.1. Accesso tramite la propria API web
Puoi esportare i dati di inventario HW/SW di un host tramite l'API web dell'inventario stesso.
Nota: l'API Web dell'inventario di cui si parla qui non è l'API Web che è stata rimossa da Checkmk nella versione 2.2.0.
Il suo URL è:
http://myserver/mysite/check_mk/host_inv_api.py?host=myhost
Il formato di output in questo caso è il codice sorgente Python.
Se preferisci JSON, aggiungi &output_format=json all'URL:
http://myserver/mysite/check_mk/host_inv_api.py?host=myhost&output_format=json
Il risultato, in forma abbreviata, è simile a questo:
Allo stesso modo, puoi anche richiedere l'output in formato XML:
http://myserver/mysite/check_mk/host_inv_api.py?host=myhost&output_format=xml.
Se inserisci l'URL corrispondente nella barra degli indirizzi del browser, vedrai immediatamente il risultato poiché hai già effettuato l'accesso a Checkmk. I dati dell'inventario HW/SW si trovano nel file di output nella sezione successiva alla chiave del risultato. Da uno script, è meglio autenticarsi come utente di automazione.
In caso di errore, ad esempio se l'host specificato non è stato trovato, l'result_codee viene impostato su 1 e viene visualizzato un messaggio di errore appropriato:
{"result": "Found no inventory data for this host.", "result_code": 1}
Interrogazione di più host
Puoi anche interrogare i dati di inventario HW/SW da più host in un unico output. Per farlo, estendi la query a tutti gli host richiesti:
http://myserver/mysite/check_mk/host_inv_api.py?request={"hosts":["myhost","myhost2"]}&output_format=json
Il risultato di questa query sarà quasi identico all'output sopra riportato. Tuttavia, al livello superiore, i nomi degli host vengono utilizzati come chiavi. Le informazioni relative agli host seguono poi di seguito nelle strutture ad albero delle directory:
Se non vengono trovati dati di inventario per un host, quell'host avrà una voce di inventario vuota invece del messaggio di errore.
Limitare la query a dati specifici
Potresti non voler interrogare tutti i dati di inventario, ma solo cercare informazioni specifiche. In tal caso, specifica i cosiddetti percorsi di inventario per individuare le informazioni che desideri. Riceverai quindi solo le informazioni provenienti dagli host che dispongono di questi percorsi / informazioni.
Ad esempio, per visualizzare solo le informazioni relative allo spazio di archiviazione totale e allo spazio di swap per l'host myhost, utilizza questo URL:
http://myserver/mysite/check_mk/host_inv_api.py?host=myhost&request={"paths":[".hardware.memory.total_ram_usable",".hardware.memory.total_swap"]}&output_format=json
Riceverai le informazioni richieste:
6.2. Accesso tramite un file
In alternativa, puoi semplicemente leggere i file generati da Checkmk.
Questi sono in formato Python nella directory ~/var/check_mk/inventory.
Per ogni host c'è un file in versione non compressa (ad es. myhost) e uno in versione compressa (ad es. myhost.gz).
7. Inventario nel monitoraggio distribuito
Nelle edizioni commerciali, l'inventario HW/SW funziona anche nel monitoraggio distribuito.
In questo caso, i dati di inventario vengono prima determinati dai siti locali e memorizzati localmente in
~/var/check_mk/inventory/.
Il demone proxy Livestatus trasferirà periodicamente tutti i dati di inventario aggiornati dal sito remoto al sito centrale, memorizzandoli anche in ~/var/check_mk/inventory/.
Questo è importante perché questi dati sono troppo grandi per essere recuperati in tempo reale al momento della richiesta.
Non appena il sito centrale effettua delle richieste sui dati di inventario, questi file vengono letti e poi uniti ai dati di stato attuali, che vengono poi recuperati dai siti remoti tramite Livestatus.
In breve: non devi preoccuparti di nulla.
In Checkmk Community non c'è un proxy Livestatus, quindi l'inventario HW/SW nella GUI del sito centrale è incompleto e mostra solo i dati di stato.
Puoi aiutarti trasferendo regolarmente i file nella directory
~/var/check_mk/inventory/ al sito centrale con uno script o qualcosa di simile.
È sufficiente copiare i file senza l'estensione .gz.
Per una trasmissione efficiente dei dati, ad esempio, è adatto rsync.
8. File e directory
8.1. Directory sul server Checkmk
| Percorso | Descrizione |
|---|---|
|
Percorso di archiviazione per i plug-in degli agenti per Linux e Unix |
|
Percorso di archiviazione dei plug-in degli agenti per Windows |
|
Dati di inventario dei singoli host come file Python (compressi e non compressi) |
8.2. Directory sugli host monitorati
| Percorso | Descrizione |
|---|---|
|
Percorso di archiviazione del plug-in di inventario dell'agente Windows |
|
Percorso di archiviazione del plug-in di inventario per l'agente Linux/Unix |
|
Configurazione del plug-in di inventario per l'agente Linux/Unix |
