Monitoring Monitoring tramite RHQ RHQ è un progetto della famiglia di JBOSS , una suite che fornisce degli ottimi strumenti anche per il monitoring e l’alarming. A tale scopo integra dentro di se le potenzialità di JOPR. Si basa su una architettura server / agent Necessita di un database ( abbiamo utilizzato Postgres perché consigliato e testato) nel quale il server memorizza tutte le statistiche che raccoglie dai vari nodi sui quali è presente una istanza di infinispan. Monitoring tramite RHQ Tra i vantaggi vi è la facilità di uso e di configurazione ma anche il fatto che già fornisce una interfaccia grafica nella quale è possibile avere l’accesso ad una serie di statistiche e parametri memorizzati dinamicamente, prodotti dalla nostra applicazione. Ogni nodo del cluster possiede il proprio agent . Esso, una volta rilevato il server, rileva anche tutte le caratteristiche della macchina sul quale viene lanciato (hardware e software) e permette di stabilire in base ad esse diversi tipi di configurazione. Server -> Agent Agent -> Server Agent -> Server protocollo raw socket porta 16163 protocollo http porta 7080 protocollo https porta 7443 JMX Questa tecnologia definisce gli aspetti legati alla comunicazione in generale. - Ogni risorsa è inglobata in un oggetto particolare che in java prende il nome di Mbean. Ogni Mbean è registrato in un Mbean server. - Tramite i cosiddetti “connettori JMX” possiamo accedere agli agenti JMX da applicazioni remote. Proprio per questo motivo una applicazione può gestire le risorse in modo trasparente, indipendentemente dal protocollo di comunicazione utilizzato. Inventario Prima che una risorsa possa essere gestita, deve entrare a far parte dell’inventario. Possono essere considerate risorse allo stesso modo sia un sistema operativo, sia un piccolo servizio. Ecco come appare all’utente Gerarchia delle risorse Connesso all’inventario c’è la gerarchia delle risorse, nella quale si cerca di rappresentare come i processi ed i programmi sono strutturati nella piattaforma. La piattaforma comprende i server di JBoss e Postgres (che potrebbero avere altre risorse figlie) ma anche servizi diretti come le CPU, i filesystems ecc… La configurazione delle risorse avviene tramite la console web di RHQ. Da lì è possibile aggiungere, rimuovere o modificare le proprietà della configurazione Monitoring 1/2 L’obiettivo principale è la raccolta dei dati relativi alle misurazioni da ognuna delle risorse presenti nell’inventario. Tali dati vengono utilizzati per rappresentare sia graficamente sia in forma tabellare lo stato delle risorse nel sistema. In RHQ, integrato al sottosistema di monitoring vi è anche il sottosistema di allarme che notifica all’amministratore quando si raggiungono certi valori limite Monitoring 2/2 Naturalmente i dati collezionati dipendono dal tipo di server o di servizio che viene monitorato. Ad esempio se si monitora una piattaforma linux si possono ottenere info riguardanti - la memoria totale, libera, condivisa, utilizzata - info riguardanti la CPU ecc… Se si monitora una istanza di un server Tomcat, si possono invece ottenere dei dettagli come - il numero dei thread attivi - la memoria totale della JVM - il tempo di un processo in memoria condivisa -… x abilitare il monitoring nella nostra applicazione… 1 Nelle proprietà di avvio dell’applicazione abbiamo dovuto specificare i seguenti comandi : - Dcom.sun.management.jmxremote.port=6996 – - Dcom.sun.management.jmxremote.ssl=false - Dcom.sun.management.jmxremote.authenticate=false 2 Modifica al file di configurazione .xml Nel tag <default> specificare <jmxStatistics enabled="true"/> Tale parametro specifica che le statistiche della cache vengono raccolte e gestite tramite l’uso della tecnologia JMX Nel tag <global> avviene una cosa molto simile ma stavolta si considerano le statistiche globali, ovvero le statistiche che riguardano tutte le cache appartenenti allo stesso cache manager. Per far ciò è sufficiente specificare : <globalJmxStatistics enabled="true“ jmxDomain = “infinispan”/ >