Tomcat Apache

L'integrazione Apache Tomcat raccoglie metriche relative al traffico, ad esempio il numero di sessioni attive o la velocità effettiva di rete. L'integrazione raccoglie anche i log di accesso e Catalina. I log di accesso vengono analizzati in un payload JSON incentrato sui dettagli della richiesta, mentre i log Catalina vengono analizzati per trovare informazioni generali. Il ricevitore tomcat raccoglie la telemetria dalla Java Virtual Machine (JVM) del server Tomcat tramite JMX.

Per ulteriori informazioni su Apache Tomcat, visita il sito tomcat.apache.org.

Prerequisiti

Per raccogliere e importare log e metriche di Tomcat, devi installare Ops Agent versione 2.9.0 o successive.

Questo ricevitore supporta Apache Tomcat versioni 9.0.x e 10.x.

Configura la tua istanza di Tomcat

Per esporre un endpoint JMX, devi impostare la proprietà di sistema com.sun.management.jmxremote.port all'avvio della JVM. Ti consigliamo inoltre di impostare la proprietà del sistema com.sun.management.jmxremote.rmi.port sulla stessa porta. Per esporre un endpoint JMX da remoto, devi anche impostare la proprietà di sistema java.rmi.server.hostname.

Per impostazione predefinita, queste proprietà sono impostate in un file tomcat-env.shdi deployment di Tomcat.

Per impostare le proprietà di sistema utilizzando argomenti della riga di comando, anteponi il nome della proprietà a -D all'avvio di JVM. Ad esempio, per impostare com.sun.management.jmxremote.port sulla porta 8050, specifica quanto segue all'avvio di JVM:

-Dcom.sun.management.jmxremote.port=8050

Configura l'agente operativo per Tomcat

Segui la guida per configurare l'agente operativo, aggiungi gli elementi necessari per raccogliere log e metriche dalle istanze di Tomcat e riavvia l'agente.

Configurazione di esempio

Il comando seguente crea il file di configurazione per raccogliere e importare log e metriche per Apache Tomcat e riavvia l'agente operativo su Linux.

sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
  receivers:
    tomcat_system:
      type: tomcat_system
    tomcat_access:
      type: tomcat_access
  service:
    pipelines:
      tomcat:
        receivers:
          - tomcat_system
          - tomcat_access
metrics:
  receivers:
    tomcat:
      type: tomcat
  service:
    pipelines:
      tomcat_pipeline:
        receivers:
          - tomcat
EOF
sudo service google-cloud-ops-agent restart

Configura la raccolta dei log

Per importare i log da Tomcat, devi creare dei destinatari per i log prodotti da Tomcat, quindi creare una pipeline per i nuovi destinatari.

Per configurare un ricevitore per i log tomcat_system, specifica i seguenti campi:

Campo predefinita Descrizione
type Il valore deve essere tomcat_system.
include_paths [/opt/tomcat/logs/catalina.out] I file di log da leggere. Nei percorsi è possibile utilizzare un carattere jolly (*), ad esempio /var/log/apache*/*.log.
exclude_paths I file di log da escludere, se include_paths contiene un glob o una directory.


Per configurare un ricevitore per i log tomcat_access, specifica i seguenti campi:

Campo predefinita Descrizione
type Il valore deve essere tomcat_access.
include_paths [/opt/tomcat/logs/localhost_access_log.*.txt] I file di log da leggere.
exclude_paths [] I file di log da escludere, se include_paths contiene un glob o una directory.

Che cosa viene registrato

I logName dei log tomcat_system e tomcat_access sono ricavati dagli ID destinatario specificati nella configurazione. Di seguito sono riportati i campi dettagliati all'interno di LogEntry.

tomcat_system
Questi log contengono i seguenti campi in LogEntry:

Campo Tipo Descrizione
timestamp stringa (Timestamp) Ora in cui è stata ricevuta la richiesta
jsonPayload.module string Modulo del tomcat da cui ha origine il log
jsonPayload.source string Origine della provenienza del log
jsonPayload.message string Messaggio di log, inclusa l'analisi dello stack dettagliata quando fornita
severity stringa (LogSeverity) Livello di voce di log (tradotto)

tomcat_access
Questi log contengono i seguenti campi in LogEntry:

Campo Tipo Descrizione
httpRequest.protocol string Protocollo utilizzato per la richiesta
httpRequest.referer string Contenuto dell'intestazione Referer
httpRequest.requestMethod string Metodo HTTP
httpRequest.requestUrl string URL richiesta (in genere solo la parte del percorso dell'URL)
httpRequest.responseSize stringa (int64) Dimensione della risposta
httpRequest.status number Codice di stato HTTP
httpRequest.userAgent string Contenuto dell'intestazione User-Agent
jsonPayload.host string Contenuto dell'intestazione Host
jsonPayload.user string Nome utente autenticato per la richiesta
timestamp stringa (Timestamp) Ora in cui è stata ricevuta la richiesta

Configurazione della raccolta di metriche

Per raccogliere metriche da Tomcat, devi creare un ricevitore per le metriche Tomcat, quindi creare una pipeline per il nuovo ricevitore. Per configurare un ricevitore per le metriche Tomcat, specifica i seguenti campi:

Campo predefinita Descrizione
type Il valore deve essere tomcat.
endpoint localhost:8050 L'URL o l'host di servizio JMX utilizzato per creare l'URL del servizio. Questo valore deve essere nel formato service:jmx:<protocol>:<sap> o host:port. I valori nel modulo host:port vengono utilizzati per creare un URL di servizio per service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi.
collect_jvm_metrics true Consente di configurare il destinatario in modo che raccolga anche le metriche JVM supportate.
username Il nome utente configurato se JMX è configurato in modo da richiedere l'autenticazione.
password La password configurata se JMX è configurato per richiedere l'autenticazione.
collection_interval 60s Un valore time.Duration, ad esempio 30s o 5m.

Che cosa viene monitorato

La seguente tabella fornisce l'elenco delle metriche che l'agente operativo raccoglie dall'istanza Tomcat.

Tipo di metrica
Tipo, tipo
Risorse monitorate
Etichette
workload.googleapis.com/tomcat.errors
CUMULATIVEINT64
gce_instance
proto_handler
workload.googleapis.com/tomcat.max_time
GAUGEINT64
gce_instance
proto_handler
workload.googleapis.com/tomcat.processing_time
CUMULATIVE, INT64
gce_instance
proto_handler
workload.googleapis.com/tomcat.request_count
CUMULATIVEINT64
gce_instance
proto_handler
workload.googleapis.com/tomcat.sessions
GAUGEDOUBLE
gce_instance
 
workload.googleapis.com/tomcat.threads
GAUGE, INT64
gce_instance
proto_handler
workload.googleapis.com/tomcat.traffic
CUMULATIVE, INT64
gce_instance
proto_handler
direction

Dashboard di esempio

Puoi visualizzare le metriche di questa integrazione utilizzando una dashboard di Cloud Monitoring di esempio. Completa la procedura per l'installazione delle dashboard di esempio per importare la dashboard di Tomcat GCE Overview dalla libreria di esempio e visualizza i grafici che mostrano le metriche di Apache Tomcat.

Verificare la configurazione

Puoi utilizzare Esplora log e Esplora metriche per verificare di avere configurato correttamente il ricevitore Tomcat. L'avvio della raccolta di log e metriche da parte dell'agente operativo potrebbe richiedere uno o due minuti.

Per verificare l'importazione dei log, vai a Esplora log ed esegui la query seguente per visualizzare i log di Tomcat:

resource.type="gce_instance"
logName=("projects/PROJECT_ID/logs/tomcast_system" OR "projects/PROJECT_ID/logs/tomcat_access")


Per verificare l'importazione delle metriche, accedi a Metrics Explorer ed esegui la query seguente nella scheda MQL.

fetch gce_instance
| metric 'workload.googleapis.com/tomcat.sessions'
| align rate(1m)
| every 1m

Passaggi successivi

Per una panoramica su come utilizzare Ansible per installare l'agente operativo, configurare un'applicazione di terze parti e installare una dashboard di esempio, guarda il video dedicato a l'agente operativo per risolvere i problemi delle applicazioni di terze parti.