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.sh
di 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
|
|
CUMULATIVE , INT64 gce_instance |
proto_handler
|
workload.googleapis.com/tomcat.max_time
|
|
GAUGE , INT64 gce_instance |
proto_handler
|
workload.googleapis.com/tomcat.processing_time
|
|
CUMULATIVE , INT64 gce_instance |
proto_handler
|
workload.googleapis.com/tomcat.request_count
|
|
CUMULATIVE , INT64 gce_instance |
proto_handler
|
workload.googleapis.com/tomcat.sessions
|
|
GAUGE , DOUBLE 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