Un punto di discussione in cui spesso ci imbattiamo nelle conversazioni con i clienti è: monitoraggio agent-based vs. agentless.

Si tratta di un argomento interessante da discutere, quindi in questo articolo esploreremo più a fondo questo tema, più precisamente parleremo del monitoraggio agentless e del motivo per cui riteniamo che il termine sia spesso usato in modo improprio.

I dipartimenti IT di solito utilizzano una soluzione software di monitoraggio per avere (tra le altre cose) una migliore panoramica dello stato di salute della propria infrastruttura IT e per essere avvisati il prima possibile di potenziali problemi che potrebbero portare a interruzioni delle operazioni quotidiane o causare interruzioni.

Con la crescita delle aziende, cresce anche la complessità dei loro sistemi interni. Oggi gli amministratori di sistema devono monitorare tutti i tipi di dispositivi sia fisici (ad esempio server, router, switch, dispositivi di storage) che virtuali (ad esempio macchine virtuali, container e infrastrutture cloud), nonché middleware e applicazioni.

Per fornire una panoramica accurata delle prestazioni di un sistema, un software di monitoraggio IT deve poter raccogliere i dati da tutti i dispositivi collegati. Questo processo comporta in genere l'installazione di un agente, un piccolo file eseguibile fornito dal fornitore della soluzione di monitoraggio IT scelta, sul dispositivo di destinazione (da qui il termine monitoraggio basato su agenti).

Il compito dell'agente è raccogliere dati sulle prestazioni del dispositivo e riportarli al software di monitoraggio IT. Piuttosto semplice, no?

Che cos'è il monitoraggio agentless?

Come per qualsiasi altro tipo di tecnologia che utilizziamo, esistono anche delle eccezioni all'approccio sopra menzionato, ovvero quei dispositivi che non richiedono l'installazione di un agente di terze parti per monitorare le prestazioni.

Questi sistemi possono fornire dati attraverso un'API specifica per l'applicazione (ad esempio, VMware) o affidarsi a una tecnologia standardizzata. In questa sede ci riferiamo principalmente a due diverse tecnologie, SNMP (Simple Network Management Protocol) e WMI (Windows Management Instrumentation), sebbene ve ne siano molte altre che possono essere utilizzate. Senza entrare troppo nei dettagli:

- WMI è la tecnologia di Microsoft utilizzata per il monitoraggio e la gestione dei sistemi basati su Windows. Le soluzioni di monitoraggio IT utilizzano il protocollo WMI per accedere ai dati di vari parametri e valori di stato. Tuttavia, questo approccio ha un impatto elevato sulle prestazioni del sistema e può causare problemi.

- SNMP è più universale e consente agli utenti di monitorare una gamma più ampia di sistemi (Windows, Linux, Unix) e altri dispositivi (router, switch ecc.). Presenta una serie di svantaggi, ad esempio problemi di coerenza dei dati e difficoltà di protezione.

Ci sono vantaggi e svantaggi in entrambe le parti, quindi una discussione dettagliata sui pro e i contro dell'uso di WMI o SNMP farà parte di un altro articolo.

Ora, il motivo per cui diciamo che non esiste un monitoraggio agentless è che quando i fornitori di software parlano della loro soluzione come di una capacità di "monitoraggio agentless", in genere intendono dire che non è necessario installare un agente di terze parti per monitorare il dispositivo di destinazione.

Naturalmente, c'è un'eccezione: quando si monitora solo utilizzando le API, il monitoraggio è effettivamente agentless. Ma questo è tipicamente possibile solo per le applicazioni e i sistemi virtualizzati. Quasi tutti gli hardware e i sistemi operativi non dispongono di tali API, pertanto in questo articolo escluderemo questo aspetto.

Perché?

È una questione di definizione: su alcuni dispositivi (ad esempio router e switch) non è necessario o non è possibile installare un agente di terze parti. Inoltre, i fornitori di tali dispositivi aggiungono per impostazione predefinita un agente di monitoraggio integrato (basato su standard industriali definiti) in grado di fornire dati sulle prestazioni del dispositivo.

Tecnicamente parlando, è possibile eseguire il monitoraggio senza agente su questi dispositivi. In realtà, i dati vengono ricevuti da un agente software nativo integrato nella piattaforma (eliminando così la necessità di installare un agente di monitoraggio di terze parti).

Si utilizza comunque un agente di monitoraggio per raccogliere dati sul dispositivo, ma non è quello fornito dal fornitore di software di monitoraggio IT scelto. Pertanto, si distingue tra l'utilizzo di un agente di monitoraggio dedicato (monitoraggio agent-based) e l'utilizzo di una soluzione nativa e integrata (monitoraggio agentless).

Differenze pratiche tra agent e agentless discovery

Per determinare lo stato della rete e i dispositivi da monitorare, è necessaria una fase di rilevamento sia per i metodi di monitoraggio basati su agenti che per quelli senza agenti. Viene quindi avviato un processo in due fasi. Con Checkmk questo significa scoprire automaticamente le risorse presenti sulla rete inviando pacchetti TCP/IP a tutti i dispositivi possibili. Questi possono essere laptop, server, desktop, stampanti, macchine virtuali, router e così via. Una volta identificate tutte le risorse attraverso l'agente precedentemente installato, i servizi di ogni dispositivo scoperto vengono aggiunti all'inventario per il monitoraggio.

Anche se queste fasi vengono eseguite sia nelle soluzioni di monitoraggio con agente che in quelle senza agente, sono piuttosto diverse. Con un metodo basato su agenti, l'agente installato si occupa di raccogliere le informazioni sul dispositivo e di rispondere alle query dell'istanza di monitoraggio principale. Senza un agente, è compito dell'appliance principale interrogare il sistema operativo di ogni asset attraverso vari protocolli o API e disporre di autorizzazioni sufficienti per raccogliere le metriche desiderate.

È facile capire che le differenze pratiche tra il rilevamento tramite agente e quello agentless riguardano chi svolge il lavoro. Se è installato un agente, sarà suo compito raccogliere le informazioni sul dispositivo e inviarle al server di monitoraggio periodicamente o quando richiesto. Senza di esso, la fase di inventario avviene quando il server principale la richiede. Inoltre, una soluzione di monitoraggio agentless di solito invia più dati in rete rispetto a una soluzione agent-based.

I pro e i contro del monitoraggio agentless

Anche se non siamo d'accordo con l'uso tipico di questo termine, spesso fuorviante, vorremmo continuare discutendo i pro e i contro di questo approccio.

Vantaggi del monitoraggio agentless

L'uso dell'agente di monitoraggio nativo e integrato presenta un paio di vantaggi, che possono essere riassunti come segue:

  • Implementazione semplificata: è un modo "meno invasivo" di monitorare i dispositivi (anche se solleva seri problemi di sicurezza, di cui parleremo tra poco).
  • Rapidità di implementazione: è facile e veloce da implementare (implica la presenza di un minor numero di parti mobili nell'ambiente di monitoraggio).
  • Manutenzione: costi di manutenzione inferiori, poiché non è necessario aggiornare costantemente gli agenti.
  • Costi: costo totale di proprietà (TCO) inferiore.

Svantaggi del monitoraggio agentless

Ecco alcuni dei difetti del monitoraggio agentless e perché un approccio di monitoraggio basato su agenti ha più senso:

  • Problemi di sicurezza: il monitoraggio agentless utilizza interfacce che consentono l'accesso remoto. Con WMI o SNMP, oltre ad accedere ai dati sulle prestazioni di un dispositivo, l'utente ottiene anche l'accesso alla gestione delle capacità (ad esempio, il riavvio di un server). Sebbene una configurazione adeguata contribuisca a ridurre il rischio di comportamenti indesiderati, con questo approccio la responsabilità è lasciata interamente all'utente e al suo livello di comprensione delle tecnologie agentless che sta utilizzando. Inoltre, se l'appliance principale viene compromessa, vengono compromessi anche tutti i dispositivi che le hanno consentito l'accesso in locale. Negli ambienti attenti alla sicurezza, il monitoraggio agentless è spesso considerato un singolo punto di vulnerabilità.
  • Metriche approfondite: se da un lato il monitoraggio agentless è meno invasivo, dall'altro è anche limitato in termini di dati raccolti. In qualità di amministratori IT, è molto probabile che vogliate andare oltre le metriche standard per la vostra infrastruttura IT, ed è qui che entra in gioco l'approccio di monitoraggio basato su agenti. Offre capacità di monitoraggio più ampie e profonde e un insieme più ricco di informazioni per l'analisi.
  • Flessibilità di configurazione: in una configurazione di monitoraggio agent-based, questi  possono spesso essere estesi per monitorare più di un aspetto (ad esempio, raccogliere dati generali sul sistema operativo e dati specifici per le applicazioni). Estendere le capacità di monitoraggio di una soluzione agentless per includere monitoraggi personalizzati di applicazioni e servizi è molto difficile da implementare o semplicemente non è possibile.
  • Overhead: con una soluzione di monitoraggio agent-based, è facile calcolare l'overhead di ciascun agente. Si tratta semplicemente di controllare l'utilizzo delle risorse del processo. Con una soluzione agentless, questo è molto più difficile, poiché non esiste più un singolo processo sotto il quale viene eseguito l'agente.

I pro e i contro del monitoraggio agent-based

Abbiamo anche raccolto alcuni vantaggi e svantaggi del monitoraggio agent-based.

Vantaggi del monitoraggio agent-based

Come facilmente immaginabile, le carenze dell'approccio di monitoraggio agentless sono state il fulcro di quello basato sugli agenti. In particolare:

  • Sicurezza: un agente abbinato allo strumento di monitoraggio principale può concentrarsi maggiormente su un trasferimento sicuro delle metriche. Mentre con una soluzione agentless si deve fare affidamento sulla qualità dello sviluppo dell'interfaccia, dal punto di vista della sicurezza, una soluzione agent-based può sviluppare e migliorare l'agente stesso, garantendo così l'approccio tecnologicamente più avanzato. Le connessioni TLS/SSL su TCP sono comuni con gli strumenti basati su agenti.
  • Metriche dettagliate: gli strumenti di monitoraggio agentless sono generalmente limitati nelle informazioni che possono fornire. Questo può essere sufficiente in casi limitati, ma spesso nelle moderne infrastrutture IT non lo è. Un agente installato su vari host e dispositivi può raccogliere una gamma più ampia di metriche, più profonde e più granulari, aiutando notevolmente il monitoraggio di potenziali problemi e la risoluzione di quelli reali.
  • Flessibilità: un agente può essere sviluppato e configurato in molte direzioni. Se un dato specifico non è ancora riportato, può esserlo con una versione più recente o scrivendo un plug-in. La flessibilità di utilizzo è impareggiabile.
  • Prestazioni: gli agenti nelle soluzioni di monitoraggio agent-based hanno un ingombro ridotto e pesano poco sull'hardware sottostante. Nonostante la raccolta di un maggior numero di dati, possono operare senza utilizzare troppe risorse.
  • Ambito di applicazione: mentre le soluzioni agentless si concentrano su un'area specifica da monitorare, gli strumenti di monitoraggio basati su agenti possono raccogliere dati da più tipi di dispositivi e host, organizzandoli insieme per fornire una panoramica dell'intera infrastruttura. È possibile monitorare componenti come ambienti cloud, container e server virtuali, cosa che non è possibile con uno strumento agentless.

Svantaggi del monitoraggio agent-based

Non tutto è roseo nella terra degli strumenti di monitoraggio agent-based e ci sono alcuni svantaggi:

  • Configurabilità: offrire un maggior numero di opzioni e di possibilità è la cosa migliore a lungo termine, ma a breve termine significa che ci sono più passaggi e componenti di cui occuparsi prima di iniziare il monitoraggio. Tuttavia, la maggior parte delle soluzioni moderne sta puntando a semplificare la fase di configurazione.
  • Manutenzione: un maggior numero di componenti da installare e configurare comporta costi di manutenzione più elevati. Non solo lo strumento di monitoraggio deve essere aggiornato, ma anche i vari agenti installati sulla rete, un'operazione noiosa. Ciò comporta l'accesso da parte dell'amministratore a tutto l'hardware da monitorare.
  • Costi: alcune soluzioni di monitoraggio agent-based possono avere un costo di licenza iniziale più elevato.

Quale approccio di monitoraggio utilizzare?

Quale approccio è migliore? È meglio optare per un monitoraggio basato su agenti o senza agenti?

Dipende molto dai sistemi che si desidera monitorare, ad esempio la maggior parte dell'hardware può essere monitorata solo tramite SNMP. D'altra parte, alcuni sistemi non sono dotati di un agente di monitoraggio preinstallato, ad esempio in Linux è necessario installare e configurare un agente SNMP. Pertanto, la scelta è piuttosto limitata e diventa irrilevante decidere tra l'uno o l'altro approccio. Una buona soluzione di monitoraggio deve incorporare sia le opzioni di monitoraggio basate su agenti che quelle senza agenti.

Pertanto, riteniamo che vi siano diversi aspetti più rilevanti:

  • Il sistema di monitoraggio utilizza agenti/ API preinstallati, nel caso in cui esistano già e siano affidabili, sicuri e forniscano informazioni sufficienti?
  • Il sistema di monitoraggio ha agenti propri, che sono leggeri, sicuri e facili da mantenere per tutti gli altri casi?
  • Il sistema di monitoraggio ha un'ampia copertura degli aspetti che si desidera monitorare, senza sforare il budget?

Come si può notare, la domanda è irrilevante a livello generico. Pertanto, nei prossimi articoli di questa serie, approfondiremo argomenti quali: