Guida alle tecnologie

Come monitorare e gestire Apache Tomcat

8 min read Monitoraggio Aggiornato 19 Sep 2025
Monitorare e gestire Apache Tomcat
Monitorare e gestire Apache Tomcat

Intento principale e varianti di ricerca

  • Intento principale: monitoraggio Apache Tomcat
  • Varianti correlate: gestione Tomcat, sensori JMX, contatori prestazioni Tomcat, allarmi Tomcat, integrazione Verax NMS

Sommario rapido

  • Aggiunta di Tomcat all’inventario dispositivi
  • Configurazione sensori JMX e HTTP
  • Creazione contatori di prestazioni e modelli JMX
  • Impostazione allarmi e politiche di notifica
  • Best practice, sicurezza e playbook operativo

Introduzione

Questa guida fornisce un flusso operativo per monitorare e gestire Apache Tomcat con uno strumento di monitoraggio (es. Verax NMS). Copre i passaggi concreti: registrare l’applicazione, configurare sensori (JMX e HTTP), raccogliere metriche JMX, e impostare allarmi. Definizione rapida: JMX è il protocollo Java Management Extensions usato per esporre metriche e operazioni di runtime.


1. Panoramica delle funzionalità di monitoraggio

Tomcat può essere monitorato tramite:

  • Query JMX per attributi e operazioni MBean.
  • Sensori HTTP per verificare disponibilità e tempi di risposta delle applicazioni web.
  • Contatori di prestazioni basati su JMX (es. thread pool, heap, GC, request count).
  • Visualizzazioni on-demand che restituiscono statistiche di runtime.

Importante: la guida assume l’uso di Verax NMS come esempio; i concetti sono trasferibili ad altri sistemi che supportano JMX e sensori HTTP.

2. Aggiungere Apache Tomcat all’inventario dispositivi

Per includere un’istanza Tomcat in Verax NMS, aggiungi un’applicazione all’interno del dispositivo che esegue Tomcat.

Passaggi operativi:

  1. Effettua l’accesso a Verax NMS e seleziona Home dal menu principale.
  2. Dall’albero aspetti a sinistra, seleziona il dispositivo che esegue l’istanza Tomcat.

Albero aspetti dispositivo con nodo Tomcat

  1. Nella scheda Riepilogo (Summary) seleziona Manage applications dalla sezione azioni.

Finestra azioni 'Manage applications' nella scheda Riepilogo

  1. Verrà mostrata una finestra di dialogo per la gestione applicazioni.

Dialog di aggiunta applicazione

  1. Seleziona Add application dal menu contestuale e clicca Go. Si apre il pannello di inserimento.

Selezione tipo applicazione: Apache Tomcat

  1. Scegli Apache Tomcat tra i tipi di applicazione.

Fornire i parametri specifici dell’istanza (descrizione e note):

  • Instance name — nome arbitrario per identificare l’istanza.
  • Host — indirizzo IP o hostname del dispositivo dove gira Tomcat.
  • Port — porta del server Tomcat (es. 8080 o porta HTTP/HTTPS esposta).
  • User / Password — credenziali se richieste dalla connessione gestionale.
  • JMX Connection — URL di connessione JMX (es. service:jmx:rmi:///jndi/rmi://HOST:PORT/jmxrmi).
  • JMX User / JMX Password — credenziali JMX, se l’autenticazione è abilitata.

Nota: i parametri richiesti dipendono dal tipo di applicazione selezionato.

  1. Compila i campi obbligatori e clicca Save changes.
  2. Il sistema chiederà se aggiungere un set di sensori predefiniti: per questo esempio selezioniamo No e aggiungeremo sensori manualmente.
  3. L’istanza Tomcat appena aggiunta apparirà nell’albero aspetti sotto Managed Applications.

Tomcat aggiunto nell'albero aspetti sotto Managed Applications

3. Preparare Tomcat per JMX (configurazione server)

Per monitorare via JMX è necessario avviare Tomcat con i parametri Java che attivano il connettore JMX. Esempio (Windows):

set CATALINA_OPTS=-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=%my.jmx.port% \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false

Note:

4. Tipologie di sensori disponibili per Tomcat

I sensori sono controlli attivi periodici che interrogano servizi sul dispositivo e valutano le risposte.

Tipi comuni per l’applicazione Tomcat:

  • JMX Operation — verifica che l’invocazione di un’operazione su un MBean ritorni un risultato.
  • JMX Attribute — legge un attributo MBean e verifica il valore.
  • HTTP — verifica che un indirizzo HTTP/HTTPS ritorni il codice di risposta atteso e, opzionalmente, che il corpo contenga una regex.

Comportamento del sensore:

  • Se la risposta è attesa => servizio considerato disponibile.
  • Se la risposta è assente o non valida => servizio considerato non disponibile.

5. Aggiungere sensori per Apache Tomcat

Passaggi per aggiungere sensori:

  1. Seleziona il dispositivo dall’albero aspetti nella vista Home.

  2. Vai alla scheda Monitors e clicca sul link Sensor list in alto a destra per visualizzare l’elenco sensori.

  3. Clicca Add dal menu azioni globali e poi Go per aprire il wizard.

Finestra di dialogo wizard per aggiungere sensori

  1. Seleziona il sensore desiderato (es. JMX Attribute) e clicca Next.

Elenco sensori disponibili per Tomcat

  1. Compila i parametri del sensore (MBean name, attributo, soglia timeout, espressioni di match) e clicca Finish.
  2. Una volta creati, i sensori appariranno nella lista sensori (Monitors tab) e inizieranno a raccogliere dati.

Esempi di sensori utili

  • ThreadPool.activeCount (JMX Attribute): numero thread attivi nel pool connector.
  • GlobalRequestProcessor.requestCount (JMX Attribute): contatore totale richieste per connector.
  • HeapMemoryUsage.used (JMX Attribute): heap usato in byte.
  • HTTP health endpoint (HTTP sensor): verifica pagina /health o un endpoint di readiness.

6. Contatori di prestazioni e modelli JMX

Per metriche storiche e grafici, crea contatori JMX periodici:

  • Usa template JMX predefiniti quando disponibili per evitare errori di stringhe MBean.
  • Raccogli metriche con intervalli coerenti (es. 60s) per confronti e SLA.
  • Normalizza unità: converti byte in MiB per dashboard di facile lettura.

Fact box:

  • Intervallo consigliato: 30–60 secondi per metriche applicative.
  • Metri importanti: heap usato, non-heap, GC pauses, thread active, request per secondo.

7. Allarmi e politiche di notifica

Imposta regole di allarme basate su soglie e condizioni di trend:

  • Allarme critico se HeapMemoryUsage.used > 90% per > 5 minuti.
  • Allarme warning se request latency > soglia per > 5 minuti.
  • Notifiche a canali differenti per severità (Email per warn, Pager/SMS per critico).

Consiglio operativo: definirti playbook con runbook per ogni allarme (vedi sezione Playbook operativo).

8. Sicurezza e hardening del monitoraggio

  • Proteggi JMX: abilita autenticazione e SSL/TLS su JMX in produzione.
  • Limitare accesso di rete: usare firewall o tunnel (SSH, VPN) per connessioni di monitoraggio.
  • Segregare credenziali: usare vault o segreti gestiti, non inserire password in chiaro nelle interfacce.

Nota: disabilitare jmxremote.authenticate=false è utile in lab, ma non è sicuro in produzione.

9. Playbook operativo e procedure

SOP rapida per un allarme critico di memoria:

  1. Ricezione allarme: notifica critico HeapMemory > 90%.
  2. Prima azione (operatore): raccogli stack thread e dump heap.
  3. Analisi: verificare spike di richieste o leak di memoria nelle webapp.
  4. Azioni correttive: riavviare il servizio app se necessario, scalare istanze, applicare rollback.
  5. Post-mortem: registrare causa, tempo di risoluzione e miglioramenti.

Criteri di accettazione

  • Sensori attivi raccolgono metriche ogni 60s.
  • Dashboard mostra Heap, Thread, Request/sec e Latency.
  • Allarmi vengono inviati ai canali configurati entro 60s dalla condizione.

10. Ruoli e checklist

Sviluppatore:

  • Esporre metriche custom via MBeans.
  • Verificare che gli endpoint health siano affidabili.

SRE/Operazioni:

  • Configurare JMX in modo sicuro.
  • Creare template e dashboard.
  • Testare procedure di escalation.

Checklist di deploy monitoring:

  • JMX attivo e raggiungibile
  • Sensori JMX configurati e senza errori
  • Endpoint health controllato via HTTP
  • Allarmi e canali notifica verificati

11. Test cases e casi d’accettazione

Test 1: Disponibilità JMX

  • Azione: arrestare il servizio Tomcat.
  • Risultato atteso: sensore JMX scrive stato non disponibile entro timeout.

Test 2: Soglia memoria

  • Azione: simulare carico fino a superare 90% heap.
  • Risultato atteso: generazione allarme critico e notifica ai canali predisposti.

12. Risoluzione dei problemi comuni

  • Connessione JMX fallisce: verificare porta, firewall, URL JMX e che Tomcat sia avviato con le opzioni JMX.
  • Sensore HTTP segnala 200 ma HTML cambiato: aggiornare la regex o controllare endpoint di health.
  • Metriche mancanti: controllare permessi e se gli MBean sono esposti dall’applicazione.

Edge-case gallery:

  • JVM multi-tenant: se più JVM sulla stessa macchina, assicurarsi che le porte JMX siano univoche.
  • Autenticazione JMX abilitata: verifica credenziali e uso di keystore/truststore.

13. Alternative e integrazioni

  • Strumenti APM (NewRelic, Datadog, Dynatrace) possono offrire tracciamento distribuito e più visibilità sulle transazioni utente.
  • SNMP può essere usato per metriche di sistema, ma non espone internamente MBean Tomcat.
  • Prometheus + JMX Exporter: alternativa open-source per scraping e alerting basato su PromQL.

14. Glossario rapido

  • JMX: Java Management Extensions, protocollo di gestione per JVM.
  • MBean: Management Bean, oggetto esposto via JMX.
  • Heap: memoria gestita dalla JVM per oggetti Java.

15. Esempio di playbook breve (rollback)

Se un aggiornamento dell’applicazione causa errori 5xx ripetuti:

  1. Disabilitare nuovo deployment dal bilanciatore.
  2. Riavviare l’istanza Tomcat interessata.
  3. Se problema persiste, effettuare rollback alla versione precedente.
  4. Notificare il team e aprire post-mortem.

16. Sommario

  • Configura JMX in Tomcat in modo sicuro.
  • Aggiungi l’applicazione a Verax NMS e crea sensori JMX/HTTP.
  • Raccogli metriche regolari e definisci soglie di allarme.
  • Documenta playbook e verifica con test di accettazione.

Importante: non lasciare JMX non autenticato in produzione; usa canali sicuri per il monitoraggio.

Autore
Redazione

Materiali simili

Rimuovere i tuoi dati dai data broker
Privacy

Rimuovere i tuoi dati dai data broker

Sfondi diversi per ogni schermata Android
Android Personalizzazione

Sfondi diversi per ogni schermata Android

Monitorare e gestire Apache Tomcat
Monitoraggio

Monitorare e gestire Apache Tomcat

Disney Plus non funziona? Guida rapida di risoluzione
Supporto streaming

Disney Plus non funziona? Guida rapida di risoluzione

Pianificare script Python con Task Scheduler
Automazione

Pianificare script Python con Task Scheduler

Revoca app Google, Drive e dispositivi
Sicurezza Account

Revoca app Google, Drive e dispositivi