A integração do Apache Tomcat coleta métricas relacionadas ao tráfego, como o número de sessões ativas ou a capacidade da rede. A integração também coleta registros de acesso e da Catalina. Os registros de acesso são analisados em um payload JSON com foco nos detalhes da solicitação, enquanto os registros do Catalina são analisados em detalhes gerais. O receptor tomcat
coleta telemetria da máquina virtual Java (JVM, na sigla em inglês) do servidor Tomcat por JMX.
Para mais informações sobre o Tomcat, consulte a documentação do Apache Tomcat.
Pré-requisitos
Para coletar a telemetria do Tomcat, instale o Agente de operações:
- Para métricas, instale a versão 2.9.0 ou mais recente.
- Para registros, instale a versão 2.9.0 ou mais recente.
Essa integração é compatível com o Tomcat versões 10.x e 9.0.x.
Configure sua instância do Tomcat
Para expor um endpoint JMX, você precisa definir a propriedade do sistema com.sun.management.jmxremote.port
ao iniciar a JVM. Também recomendamos configurar a propriedade do sistema com.sun.management.jmxremote.rmi.port
para a mesma porta. Para
expor um endpoint JMX remotamente, você também precisa definir
a propriedade do sistema java.rmi.server.hostname
.
Por padrão, essas propriedades são definidas em um arquivo tomcat-env.sh
da implantação
do Tomcat.
Para definir as propriedades do sistema usando argumentos de linha de comando, adicione -D
ao nome da propriedade ao iniciar a JVM. Por exemplo, para definir
com.sun.management.jmxremote.port
na porta 8050
, especifique o seguinte ao iniciar a
JVM:
-Dcom.sun.management.jmxremote.port=8050
Configure o agente de operações para Tomcat
Seguindo o guia para Configurar o Agente de operações, adicione os elementos necessários para coletar registros das instâncias do Tomcat e reinicie o agente.
Exemplo de configuração
Os comandos a seguir criam a configuração para coletar e ingerir telemetria para o Tomcat e reinicia o agente de operações.
Configurar a coleta de registros
Para ingerir registros do Tomcat, é preciso criar receptores para os registros produzidos pelo Tomcat e, em seguida, criar um pipeline para os novos receptores.
tomcat_system
Para configurar um receptor para os registros , especifique os seguintes campos:
Campo | Padrão | Descrição |
---|---|---|
exclude_paths |
Uma lista de padrões de caminho do sistema de arquivos a serem excluídos do conjunto correspondente a include_paths . |
|
include_paths |
[/opt/tomcat/logs/catalina.out] |
Uma lista de caminhos do sistema de arquivos a serem lidos acompanhando cada
arquivo. Um caractere curinga (* ) pode ser usado nos caminhos. |
record_log_file_path |
false |
Se definido como true , o caminho para o arquivo específico de que a gravação de registro foi recebida aparecerá na entrada de registro de saída como o valor do identificador agent.googleapis.com/log_file_path . Ao usar um caractere curinga, apenas o caminho do arquivo de que o registro foi recebido é gravado. |
type |
O valor precisa ser tomcat_system . |
|
wildcard_refresh_interval |
60s |
O intervalo em que os caminhos de arquivos curinga em include_paths são atualizados. Determinado como uma duração analisável por time.ParseDuration , por exemplo, 30s ou 2m . Essa propriedade pode ser útil com capacidades de registro altas em que os arquivos de registro são alternados mais rapidamente do que o intervalo padrão. |
tomcat_access
Para configurar um receptor para os registros , especifique os seguintes campos:
Campo | Padrão | Descrição |
---|---|---|
exclude_paths |
Uma lista de padrões de caminho do sistema de arquivos a serem excluídos do conjunto correspondente a include_paths . |
|
include_paths |
[/opt/tomcat/logs/localhost_access_log.*.txt] |
Uma lista de caminhos do sistema de arquivos a serem lidos acompanhando cada
arquivo. Um caractere curinga (* ) pode ser usado nos caminhos. |
record_log_file_path |
false |
Se definido como true , o caminho para o arquivo específico de que a gravação de registro foi recebida aparecerá na entrada de registro de saída como o valor do identificador agent.googleapis.com/log_file_path . Ao usar um caractere curinga, apenas o caminho do arquivo de que o registro foi recebido é gravado. |
type |
O valor precisa ser tomcat_access . |
|
wildcard_refresh_interval |
60s |
O intervalo em que os caminhos de arquivos curinga em include_paths são atualizados. Determinado como uma duração analisável por time.ParseDuration , por exemplo, 30s ou 2m . Essa propriedade pode ser útil com capacidades de registro altas em que os arquivos de registro são alternados mais rapidamente do que o intervalo padrão. |
O que é registrado
O logName
é derivado dos
IDs do receptor especificados na configuração. Os campos
detalhados dentro de LogEntry
são os seguintes.
Os registros tomcat_system
contêm os seguintes campos no LogEntry
:
Campo | Tipo | Descrição |
---|---|---|
jsonPayload.level |
string | Nível de entrada de registro |
jsonPayload.message |
string | Mensagem de registro, incluindo stacktrace detalhado, quando fornecido |
jsonPayload.module |
string | Módulo do Tomcat em que o registro foi originado |
jsonPayload.source |
string | Origem da origem do registro |
severity |
string (LogSeverity ) |
Nível de entrada de registro (traduzido). |
Os registros tomcat_access
contêm os seguintes campos no LogEntry
:
Campo | Tipo | Descrição |
---|---|---|
httpRequest |
objeto | Consulte HttpRequest |
jsonPayload.host |
string | Conteúdo do cabeçalho "Host" |
jsonPayload.user |
string | Nome de usuário autenticado da solicitação |
severity |
string (LogSeverity ) |
Nível de entrada de registro (traduzido). |
Configurar a coleta de métricas
Para ingerir métricas do Tomcat, é preciso criar receptores para as métricas produzidas pelo Tomcat e, em seguida, criar um pipeline para os novos receptores.
Para configurar um receptor para suas
métricas do tomcat
, especifique os campos
a seguir:
Campo | Padrão | Descrição |
---|---|---|
collect_jvm_metrics |
true |
Configura o receptor para coletar as métricas do JVM compatíveis. |
collection_interval |
60s |
Um valor de time.Duration, como 30s ou 5m . |
endpoint |
localhost:8050 |
O URL do serviço JMX ou o host e a porta usados para criar o URL do serviço. Esse valor precisa estar na forma de service:jmx:<protocol>:<sap> ou host:port . Os valores no formato host:port são usados para criar um URL de serviço de service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi . |
password |
Senha configurada se o JMX estiver configurado para exigir autenticação. | |
type |
Este valor precisa ser tomcat . |
|
username |
O nome de usuário configurado se o JMX estiver configurado para exigir autenticação. |
O que é monitorado?
A tabela a seguir fornece a lista de métricas que o agente de operações coleta da instância do Tomcat.
Tipo de métrica | |
---|---|
Tipo, tipo Recursos monitorados |
Identificadores |
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 state
|
workload.googleapis.com/tomcat.traffic
|
|
CUMULATIVE , INT64 gce_instance |
direction proto_handler
|
Amostra de painel
Para visualizar as métricas do Tomcat, é necessário ter um gráfico ou um painel configurado. O Cloud Monitoring disponibiliza uma biblioteca de painéis de amostra para integrações, que contêm gráficos pré-configurados. Para informações sobre a instalação desses painéis, consulte Como instalar painéis de amostra.
Verificar a configuração
Nesta seção, descrevemos como verificar se você configurou corretamente o receptor do Tomcat. Pode levar um ou dois minutos para que o agente de operações comece a coletar telemetria.
Para verificar se os registros são ingeridos, acesse o Explorador de registros e execute a seguinte consulta para ver os registros do Tomcat:
resource.type="gce_instance"
(log_id("tomcat_system") OR log_id("tomcat_access"))
Para verificar se as métricas são ingeridas, acesse o Metrics Explorer e execute a seguinte consulta na guia MQL:
fetch gce_instance
| metric 'workload.googleapis.com/tomcat.threads'
| every 1m
A seguir
Para ver um tutorial sobre como usar o Ansible para instalar o agente de operações, configurar um aplicativo de terceiros e instalar um painel de amostra, consulte o vídeo Instalação do agente de operações para resolver problemas de aplicativos de terceiros.