Un inventario automatico senza dizionari è una CMDB di cui nessuno si fida. Ogni agent riporta "Dell Inc.", "DELL" e "Dell Technologies" come produttori diversi, e il responsabile apre il report del parco con tre righe per la stessa cosa. I dizionari di GLPI risolvono questo all'ingresso dei dati, ma funzionano davvero solo quando mappa prima il disordine, capisce che rifiutare è distruttivo ed esegue il replay senza mandare giù il server. Questa guida è il percorso che usiamo nella manutenzione di parchi GLPI dei clienti.
Perché l'inventario arriva sporco
Quando il GLPI Agent raccoglie dati da centinaia di macchine, lo stesso oggetto reale compare con diverse grafie perché ogni fornitore scrive la stringa a modo suo nel BIOS, nel registro di Windows o nel pacchetto. I casi classici:
- Produttori: "Dell Inc.", "Dell", "DELL", "Dell Technologies" diventano quattro record.
- Modelli: "Latitude 5520", "LATITUDE 5520" e "Dell Latitude 5520" non si raggruppano.
- Software: centinaia di KB e voci "Update for Windows" affogano il software che deve davvero gestire.
- Sistema operativo: "Windows 10 Pro", "Microsoft Windows 10 Professional" e "Win10Pro" frammentano qualsiasi conteggio di licenze.
L'effetto pratico: dashboard con totali gonfiati, un report di conformità software inutile e decisioni di acquisto basate sul numero sbagliato. Standardizzare non è estetica: è ciò che rende affidabile la CMDB.
Mappi il disordine prima di scrivere la prima regola
L'errore di chi inizia è mettersi a creare regole al buio. Prima misuri. Una query SQL in sola lettura direttamente sul database mostra la dimensione del problema e dà priorità allo sforzo. La esegua su una replica o fuori dalle ore di punta:
-- Produttori con grafie divergenti dello stesso gruppo
SELECT id, name
FROM glpi_manufacturers
WHERE name LIKE 'Dell%' OR name LIKE '%DELL%'
ORDER BY name;
-- Volume di "inquinamento" nel catalogo software (KB e update)
SELECT COUNT(*) AS software_spazzatura
FROM glpi_softwares
WHERE name LIKE 'KB%'
OR name LIKE 'Update for%'
OR name LIKE 'Security Update for%';
-- Top 20 dei nomi di software piu ripetuti (candidati a regola)
SELECT name, COUNT(*) AS occorrenze
FROM glpi_softwares
GROUP BY name
ORDER BY occorrenze DESC
LIMIT 20;
Con questi numeri sa dove la regola rende di più. Nella maggior parte dei parchi, produttore e software concentrano gran parte del disordine.
I tipi di dizionario e quando usare ciascuna azione
In Amministrazione > Dizionari trova dizionari per software, produttore, modelli (computer, monitor, stampante, telefono, rete), tipi e sistema operativo. Ciò che cambia tra loro è l'azione che sceglie. Questa matrice riassume la decisione:
| Situazione nell'inventario | Dizionario | Azione consigliata | Reversibile? | Trappola |
|---|---|---|---|---|
| Produttore con più grafie | Produttore | Assegnare un nome fisso | Sì | Il merge può lasciare una voce orfana nel menu a tendina |
| Modello che porta il prefisso del produttore | Modelli | Regex + assegnare il gruppo catturato | Sì | Richiede il criterio "espressione regolare", non "contiene" |
| KB e update che inquinano il catalogo | Software | Ignora importazione | Parziale | Il replay CANCELLA il software già importato |
| Versioni di SO frammentate | Sistema operativo | Assegnare SO / edizione | Sì | Nome del SO ed edizione sono campi separati |
| Più software che sono lo stesso prodotto | Software | Assegnare nome + produttore | Sì | Raggruppa le versioni; verifica prima di unire |
Normalizzare produttori e modelli (passo dopo passo)
- Nel dizionario Produttore, crei la regola: criterio Nome - contiene -
Dell; azione Assegna Nome =Dell. Questo riduce tutte le grafie a un solo record. - Per i modelli che portano il prefisso del produttore, "contiene" non basta: usi una regex. Imposti il criterio su espressione regolare e catturi solo la parte utile.
# Dizionario dei Modelli di computer
# Criterio -> Nome | l'espressione regolare corrisponde:
/^(?:Dell\s+)?(Latitude\s+\d+)/i
# Azione -> Nome | Assegna il valore dell'espressione regolare:
#1
# Risultato:
# "Dell Latitude 5520" -> "Latitude 5520"
# "LATITUDE 5520" -> "Latitude 5520"
# "Latitude 5520" -> "Latitude 5520"
#1 è il primo gruppo catturato; #0 sarebbe la stringa intera. Questo dettaglio inganna molti: l'azione "assegna il valore dell'espressione regolare" funziona solo se il criterio è impostato come espressione regolare. Con "contiene", #1 diventa testo letterale.
Rifiutare i KB senza far esplodere l'inventario
Per togliere gli aggiornamenti dal catalogo, crei nel dizionario Software una regola con l'azione Ignora importazione:
- Criterio: Nome - inizia con -
KB- azione Ignora importazione. - Criterio: Nome - contiene -
Update for Windows- azione Ignora importazione.
Da quel momento, le nuove importazioni saltano quegli elementi. Il dettaglio che quasi nessuno anticipa: quando esegue il replay di quella regola, GLPI cancella il software già importato che corrisponde al criterio. È l'azione giusta per pulire, ma è distruttiva: per questo passi sempre prima da un ambiente di collaudo.
Replay: applicare le regole ai dati esistenti
Una regola di dizionario agisce solo all'ingresso. Per i dati già nel database, usi il pulsante Riproduci le regole del dizionario dentro ogni dizionario. Due accortezze operative imparate a caro prezzo:
- Lo spezzi per produttore. Nel replay del dizionario software, GLPI permette di scegliere il produttore. Eseguirlo tutto insieme su un catalogo grande sfora il
max_execution_timedi PHP e restituisce un errore 500. Lo esegua a lotti. - Finestra di basso traffico. Il replay rielabora migliaia di righe; lo pianifichi fuori dall'orario lavorativo.
Dopo il replay, confermi che il consolidamento ha funzionato con un semplice conteggio:
-- Deve rimanere 1 record "Dell" (e non 4)
SELECT id, name FROM glpi_manufacturers
WHERE name LIKE '%Dell%';
-- I software KB devono tendere a zero dopo il replay con "Ignora importazione"
SELECT COUNT(*) AS kb_rimanenti
FROM glpi_softwares
WHERE name LIKE 'KB%';
L'errore comune nella manutenzione dei clienti
Su un parco cliente di circa 3.000 asset, il dizionario software che rifiutava KB e update ha fatto scendere il catalogo da decine di migliaia di "software" a poche migliaia di elementi reali: il report di conformità è finalmente diventato leggibile. Ma abbiamo eseguito il replay con "ignora importazione" direttamente in produzione e il cliente ha perso traccia di quali macchine avevano ciascun KB, perché il rifiuto cancella il record, non lo nasconde soltanto. La decisione diventata regola per tutti gli ambienti: il replay del dizionario nasce in collaudo, il rifiuto è trattato come operazione distruttiva e un merge di produttore è sempre seguito da una pulizia dei valori orfani nel menu a tendina, che GLPI non rimuove da solo. È il tipo di dettaglio che emerge solo dopo averlo fatto su un parco vero.
Buone pratiche che evitano rilavorazioni
- Inizi da produttore e software: concentrano gran parte del disordine e rendono in fretta.
- L'ordine delle regole conta: metta le più specifiche prima di quelle generiche.
- Testi sempre in collaudo e validi il replay con un SQL di conteggio prima e dopo.
- Riveda i dizionari dopo ogni grande ondata di inventario (un nuovo lotto di macchine, un'acquisizione, un cambio di fornitore).
- Documenti ogni regola: un dizionario senza lo storico del "perché" diventa una scatola nera alla manutenzione successiva.
Standardizzare l'inventario è la base per indicatori affidabili e per il ciclo di vita degli asset. Se il Suo parco è cresciuto e la CMDB è diventata un groviglio di duplicati, NexTool esegue questo risanamento nell'ambito della manutenzione: mappatura del disordine, regole di dizionario testate in collaudo e un replay controllato, senza mandare giù il Suo GLPI.
Revisionato dal team NexTool Solutions.