Windows sta riguadagnando popolarità nel mondo dei server. Pertanto, un buon monitoraggio deve essere in grado di gestire bene Windows. Con il nostro agente per Windows offriamo diversi vantaggi rispetto al monitoraggio tramite WMI o SNMP, come il consumo minimo di risorse, l'accesso a dati che non possono essere letti con WMI o SNMP e la possibilità di creare estensioni personalizzate.

Con Checkmk 1.6, abbiamo completamente riprogettato il nostro vecchio agente Windows per consentire un funzionamento più fluido. Ciò si è reso necessario perché il vecchio agente aveva raggiunto i suoi limiti. Mathias Kettner ha originariamente costruito il primo agente Windows sotto Linux utilizzando la sua toolchain Linux. Tuttavia, questo 'primo' agente Windows funzionava abbastanza bene e abbiamo continuato a svilupparlo. Si trattava fondamentalmente di un'implementazione basata su una 'API di basso livello' di Windows - come Mathias ha riferito in occasione del lancio del nuovo agente alla Checkmk Conference #5 dello scorso anno.

La toolchain basata su Linux del vecchio agente Windows, tuttavia, comportava un impegno sempre maggiore per noi durante il debug e la programmazione di nuove estensioni. Nel 2019, con il rilascio di Checkmk 1.6, era giunto il momento di portare il monitoraggio dei sistemi Windows a un nuovo livello e di lavorare con gli strumenti di sviluppo nativi di Windows. In questo modo abbiamo voluto semplificare il lavoro e il monitoraggio con il nuovo agente e rendere più fluido il suo funzionamento per gli utenti.

Marcel Arentz (a sinistra) e Sergey Knipis (a destra) con in mano la loro Presentazione virtuale.
Marcel Arentz (a sinistra) e Sergey Kipnis (a destra) durante la presentazione virtuale del nuovo agente Windows in Checkmk 2.0.

Retrospettivamente, siamo riusciti nell'intento, poiché da allora abbiamo dovuto gestire meno di 80 ticket di assistenza e meno di dieci correzioni di bug relativi al nuovo agente Windows, come hanno riferito il Product Manager Marcel Arentz e lo sviluppatore Sergey Kipnis nella loro conferenza alla Checkmk Conference #6.

In particolare, la migrazione dalla versione 1.5 alla versione 1.6, le modifiche strutturali apportate all'agente con la 1.6 e la soluzione del problema causato dalla generazione di falsi positivi da parte del programma di aggiornamento dell'agente nei programmi antivirus di alcuni sistemi hanno rappresentato la maggior parte delle richieste degli utenti, come ha spiegato Marcel.

Le richieste di assistenza tipiche erano, ad esempio, perché la vecchia versione non viene eliminata quando viene installato il nuovo agente? Inoltre, gli utenti non sapevano quando disinstallare il vecchio agente e perché Checkmk non cancellasse automaticamente tutti i dati del vecchio agente. Mentre il processo di installazione del nuovo agente non è cambiato, la rimozione del vecchio agente è diversa, ha spiegato Marcel. Non viene disinstallato per impostazione predefinita, ma viene disattivato ed è quindi ancora presente nel sistema. Inoltre, i vecchi dati originali vengono conservati per poter ripristinare il vecchio agente, se la migrazione al nuovo agente va male.

Se l'aggiornamento al nuovo agente Windows è andato a buon fine, Marcel raccomanda la disinstallazione automatica - e non manuale - del vecchio agente tramite il programma di disinstallazione, oppure attivando la casella di controllo per la disinstallazione nel programma di installazione, ad esempio quando vengono distribuiti gli host rimanenti. Una terza opzione è la rimozione automatica mediante la creazione e l'esecuzione di una regola corrispondente in 'Legacy Agent Management' tramite Agent Bakery, come ha continuato Marcel.

Questa diapositiva mostra diversi modi per rimuovere il vecchio agente per Windows.
Esistono tre opzioni per rimuovere il vecchio agente dal sistema.

I dati aggiunti manualmente con il vecchio agente, come i plug-in o i dati di configurazione, che non appartengono al programma di installazione, rimangono nella cartella anche dopo la disinstallazione del vecchio agente. Secondo Marcel, se l'utente non ha più bisogno dei dati, questi devono essere eliminati manualmente. Per ulteriori informazioni sulla migrazione dell'agente dalla versione 1.5 alla 1.6, consultare il manuale d'uso. Le differenze tra la versione 1.5 e la 1.6 sono riportate nei capitoli 3, 6 e 7 del manuale dell'agente Windows.

Con la versione 2.0, l'agente per Windows riceverà anche funzioni aggiuntive, come il supporto nativo per i plug-in Python, la configurazione automatica del firewall, nonché l'esecuzione di plug-in con autorizzazioni specifiche e la disinstallazione controllata dell'agente. Ora vogliamo approfondire un po' questi punti.

Supporto dei plug-in Python nativi

I vantaggi del supporto per i plug-in Python nativi includono:

  • condizioni Python standardizzate su ogni host Windows,
  • plug-in programmabili in Python 3.8,
  • possibilità di plug-in multipiattaforma,
  • maggiore affidabilità e prestazioni e...
  • fornitura di plug-in standard, come logwatch, agentupdater, ecc. senza pyinstaller, in modo da evitare falsi positivi con i programmi antivirus.

Configurazione centralizzata del firewall

Con la versione 2.0, la configurazione e l'amministrazione centralizzata del firewall tramite il server Checkmk dovrebbe consentire una configurazione iniziale senza problemi su più host. A tal fine, l'utente configura il pacchetto di installazione desiderato con la porta richiesta nella Agent Bakery. Se poi si installa l'agente sull'host locale, questo regola automaticamente il firewall di conseguenza.

In passato, in alcuni casi Checkmk non riusciva ad accedere a un host Windows a causa di un problema con il firewall. Per risolvere il problema, era necessario impostare una regola del firewall per l'agente in Windows Firewall. Poiché le porte e i programmi cambiano di volta in volta, la configurazione centralizzata del firewall di Windows aiuta ad adattarsi facilmente alle modifiche in un secondo momento, come ha spiegato Sergey. Gli amministratori che non hanno bisogno di questa funzione possono disattivare questa opzione nella Agent Bakery, anche se Sergey non lo consiglia.

Esecuzione di plug-in con permessi specifici

Con la versione 2.0 ci sarà anche la possibilità di eseguire i plug-in all'interno di account virtuali. Il monitoraggio di alcune risorse con un solo account amministrativo è estremamente complicato o addirittura impossibile, come ha notato Sergey. D'altra parte, i diritti di amministrazione non sono sempre appropriati. Pertanto, con la nuova versione saranno disponibili due nuove opzioni. La prima opzione prevede che un agente locale abbia un utente specifico, temporaneo e invisibile che può essere definito per un gruppo locale. Questo utente può eseguire i plug-in per conto dell'agente. Questo metodo non supporta Active Directory e non richiede credenziali o file di configurazione sul server e sull'host.

La seconda opzione consente di impostare un utente e una password. Non ci sono limiti alle autorizzazioni specifiche. A questo punto, però, Sergey sottolinea che la password viene memorizzata in chiaro in Checkmk e sull'host. I casi d'uso tipici di questa opzione sono il monitoraggio dei database o il monitoraggio delle condivisioni di rete.

Disinstallazione dell'agente

Poiché abbiamo ricevuto spesso richieste su come rimuovere correttamente l'agente, con la versione 2.0 saranno apportati dei miglioramenti. In futuro, per impostazione predefinita, una rimozione dovrebbe eliminare anche tutti i file e le cartelle appartenenti a un agente. Secondo Sergey, con la nuova versione è anche possibile eliminare tutti i dati per effettuare un'installazione completamente pulita. Esiste anche l'opzione di non cancellare nessuno dei vecchi dati per poter avviare un'analisi in caso di errore.

Nel prossimo post sulla Checkmk Conference #6 vi parleremo dei nostri progetti per voi, la comunità Checkmk!