Saiba Mais sobre a Configuração de Recursos Avançados do Java Management Service
O Java Management Service (JMS) é um serviço nativo na Oracle Cloud Infrastructure (OCI). O JMS pode ser usado para gerenciar, monitorar e proteger instalações Java em suas próprias instâncias de computação gerenciadas (on-premises ou na OCI).
Você pode usar JMS para:
- Visibilidade: Descubra e gerencie o Java em toda a empresa
- Insights: Analise a configuração, a segurança, a conformidade e o desempenho do Java Virtual Machine (JVM)
- Ajuste: Segurança, Migração, Otimização e Automação
Você já se perguntou se sua postura de segurança atual está alinhada com as recomendações de segurança feitas pela Oracle para tempos de execução Java e estão atualizadas? O JMS pode ajudá-lo a encontrar uma resposta para isso, ele pode relatar qualquer biblioteca Java problemática usada por seus aplicativos e verificar se seus aplicativos já em execução não têm falhas na área de segurança. Você enfrenta dificuldades com o desempenho de seus aplicativos Java ou acha difícil entender os logs do coletor de lixo Java? O JMS vem para o resgate com análise de desempenho. Você não tem certeza se pode alternar facilmente para uma versão mais recente do Java? Você está familiarizado com o Java Migration Analysis.
Com o JMS, as gravações do Java Flight Recorder (JFR) nunca foram tão fáceis, tudo o que você precisa é apenas selecionar seu aplicativo no JMS, fornecer alguns detalhes e enviar a solicitação de gravação. Quando a solicitação de serviço de gravação do JFR for concluída, você poderá acessá-las facilmente no bucket da frota JMS. E isso não é tudo, o JMS também vem com recursos de gerenciamento do ciclo de vida do Java, como instalação de runtimes Java ou fornecimento de detalhes adicionais sobre seus servidores de aplicativos Java.
Este manual de soluções descreve as etapas para configurar recursos avançados JMS para resolver os problemas de TI Java descritos acima.
Os recursos avançados do JMS podem ser usados para obter insights sobre diferentes aspectos do Java em seu ambiente. Por exemplo, usando os recursos avançados, você pode:
- Procure bibliotecas Java usadas por seus aplicativos para identificar e relatar possíveis vulnerabilidades (CVE) associadas a bibliotecas Java de terceiros.
- Otimize o desempenho da carga de trabalho Java com recomendações de ajuste da JVM aproveitando a Análise de Desempenho.
- Avalie a viabilidade e o esforço necessários para migrar aplicativos Java para versões mais recentes do JDK com a Análise de Migração Java.
- Ajude a manter seus aplicativos seguros usando a Análise de Eventos de Criptografia para identificar usos criptográficos fracos que deixarão de funcionar com as próximas atualizações no roteiro criptográfico do Oracle JRE e JDK.
- Entenda quais serviços e aplicativos estão sendo executados em cada servidor de aplicativos Java verificando os servidores Java.
- Execute o JDK Flight Recorder para reunir remotamente insights de aplicativos.
- Faça download, instale e configure o runtime do Java.
- Remova versões do Oracle Java reportadas.
- Distribua ou remova o Conjunto de Regras de Implantação.
Antes de Começar
O acesso ao Java Management Service requer uma conta do Oracle Cloud (OCI). Você pode usar sua própria conta na nuvem ou pode obter uma conta do OCI Free Tier.
Nos exemplos descritos neste manual de soluções, usamos a ferramenta de linha de comando da OCI. Se você estiver interessado em experimentar esses exemplos por conta própria, configure e configure a CLI do OCI de acordo com o seguinte guia Interface de Linha de Comando (CLI). Requisitos adicionais para executar o exemplo são a presença do utilitário de linha de comando jq
na máquina na qual você executará comandos da ferramenta oci. Você pode obter esse utilitário para quase todas as plataformas na página do projeto GitHub: https://github.com/jqlang/jq.
Certifique-se de que uma máquina do Oracle Linux esteja configurada corretamente para permitir a comunicação com os serviços da OCI. A máquina pode ser:
- Uma instância de computação do OCI que está disponível na sua tenancy. Se você ainda não tiver uma instância configurada, consulte Criar uma instância de computação do OCI.
- Host não OCI, que é on-premises (em seu próprio data center, nuvem de terceiros etc.) que deve ser monitorado por meio do serviço JMS.
Arquitetura
Este manual descreve uma visão geral sobre os recursos avançados do Java Management Service, especificamente para obter insights sobre suas instalações do Java e tomar ações corretivas conforme necessário. Esta solução se aplica à ativação da funcionalidade avançada de recursos no JMS, para instalações da Oracle na OCI, on-premises e nuvem de terceiros.
O agente JMS é instalado nas instâncias gerenciadas para coletar a telemetria de uso Java e os metadados de uso Java. Os dados de telemetria são emitidos e armazenados em sua tenancy para proteção de privacidade.
O diagrama a seguir ilustra a topologia do serviço JMS em produção. O diagrama mostra os agentes implementados para rastrear o Java em execução na OCI, seus desktops on-premises, laptops e servidores e serviços de nuvem de terceiros. Esses agentes são implantados em suas instâncias gerenciadas e estão associados aos seus recursos criados (frotas) em suas tenancies.
Os metadados de uso do Java são exfiltrados da sua tenancy pelo agente instalado em suas tenancies. O JMS usa esses metadados para gerar insights como versão do Java, Linha de Base de Segurança e próximas Atualizações Java e Uso de Aplicativos; que é apresentado quando você faz log-in na Console do OCI. Não há acesso Oracle além do processamento dos metadados exfiltrados.
Usando os recursos avançados disponíveis no JMS, você pode analisar o uso de servidores de aplicativos Java, identificar possíveis vulnerabilidades nas bibliotecas Java usadas por aplicativos em execução no seu ambiente, usar o gravador de voo Java para análise de desempenho e criptografia e gerenciar Oracle Java Runtimes (versões JDK) no seu ambiente. Você pode usar o recurso avançado para gerenciar o Java em execução no seu ambiente.
O seguinte diagrama ilustra esta arquitetura.
Em um nível alto, a seção a seguir descreve como os dados fluem entre o agente JMS instalado na sua instância gerenciada e o serviço JMS no OCI:
- Você instala o agente na Instância Gerenciada e o agente se registra no OCI.
- Você configura ou ativa o plug-in JMS (passando a frota JMS como parâmetro). O agente JMS agora está associado à frota JMS desejada.
- O agente JMS registrado pesquisa JMS para trabalho. O JMS responderá à pesquisa com solicitações de serviço apropriadas, se houver.
- O agente JMS verifica periodicamente a instância gerenciada em busca de instalações ou entradas Java no rastreador de uso e envia as métricas Java e os metadados Java para a OCI.
Para obter mais informações sobre o fluxo de dados entre o agente JMS e o serviço OCI e os fluxos de tráfego entre o agente JMS instalado em suas máquinas host (on-premises) e o JMS em execução no OCI, consulte Monitorar e gerenciar suas instalações de aplicativos Java e Java.
Essa arquitetura tem os seguintes componentes:
- Região
Uma região do OCI é uma área geográfica localizada que contém um ou mais data centers, hospedando domínios de disponibilidade. Regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou mesmo continentes).
- Domínios de disponibilidade
Domínios de disponibilidade são data centers stand-alone e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que oferece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou refrigeração ou a rede interna do domínio de disponibilidade. Portanto, uma falha em um domínio de disponibilidade não deve afetar os outros domínios de disponibilidade na região.
- Tenancy
Uma tenancy é uma partição segura e isolada que a Oracle configura no Oracle Cloud quando você se inscreve no OCI. Você pode criar, organizar e administrar seus recursos no OCI em sua tenancy. Uma tenancy é sinônimo de uma empresa ou organização. Normalmente, uma empresa terá uma única tenancy e refletirá sua estrutura organizacional dentro dessa tenancy. Uma única tenancy geralmente está associada a uma única assinatura, e uma única assinatura geralmente tem apenas uma tenancy.
- Compartimento
Compartimentos são partições lógicas entre regiões em uma tenancy do OCI. Use compartimentos para organizar, controlar o acesso e definir cotas de uso para seus recursos do Oracle Cloud. Em um determinado compartimento, você define políticas que controlam o acesso e definem privilégios para recursos.
- VCN (rede virtual na nuvem) e sub-redes
VCN (rede virtual na nuvem) é uma rede personalizável definida por software que você configura em uma região do OCI. Assim como as redes tradicionais do data center, as VCNs dão a você controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos de CIDR (Classless Inter-domain Routing) não sobrepostos que você pode alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, com escopo definido para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não se sobrepõem a outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.
- Pool de instâncias
Um pool de instâncias é um grupo de instâncias dentro de uma região que são criadas a partir da mesma configuração de instância e gerenciadas como um grupo.
- Rede on-premises
Esta é uma rede local usada pela sua organização.
- Gateway de API do OCI
O Oracle Cloud Infrastructure API Gateway permite que você publique APIs com pontos finais privados acessíveis de dentro da sua rede e que você pode expor à internet pública, se necessário. Os pontos finais suportam validação da API, transformação de solicitação e resposta, CORS, autenticação e autorização e limitação de solicitação.
- Gateway de roteamento dinâmico (DRG)
O DRG é um roteador virtual que fornece um caminho para tráfego de rede privada entre VCNs na mesma região, entre uma VCN e uma rede fora da região, como uma VCN em outra região do OCI, uma rede on-premises ou uma rede em outro provedor de nuvem.
- Gateway de serviço
Um gateway de serviço fornece acesso de uma VCN a outros serviços, como o Oracle Cloud Infrastructure Object Storage. O tráfego da VCN para o serviço Oracle atravessa a malha de rede Oracle e não atravessa a internet.
- Oracle Autonomous Database
O Oracle Autonomous Database é um ambiente de banco de dados pré-configurado e totalmente gerenciado que você pode usar para cargas de trabalho de processamento de transações e data warehousing. Você não precisa configurar nem gerenciar nenhum hardware, nem instalar nenhum software. A OCI lida com a criação, o backup, a aplicação de patches, o upgrade e o ajuste do banco de dados.
- Host do bastion
O bastion host é uma instância de computação que atua como um ponto de entrada seguro, controlado para a topologia de fora da nuvem. O bastion host geralmente é provisionado em uma zona desmilitarizada (DMZ). Ele permite proteger recursos confidenciais colocando-os em redes privadas que não podem ser acessadas diretamente de fora da nuvem. A topologia tem um único ponto de entrada conhecido que você pode monitorar e auditar regularmente. Desse modo, você pode evitar expor os componentes mais confidenciais da topologia sem comprometer o acesso a eles.
- Agente do Oracle Cloud
O Oracle Cloud Agent é um processo leve que gerencia o ciclo de vida dos plug-ins em execução em instâncias de computação no OCI. Os Plug-ins JMS coletam metadados Java do seu ambiente implantado na instância gerenciada no OCI. O plug-in JMS exfiltra esses metadados Java para o serviço JMS no OCI.
- OCI Compute
Com o Oracle Cloud Infrastructure Compute, você pode provisionar e gerenciar hosts de computação na nuvem. Você pode iniciar instâncias de computação com formas que atendam aos seus requisitos de recursos para CPU, memória, largura de banda de rede e armazenamento. Depois de criar uma instância de computação, você poderá acessá-la com segurança, reiniciá-la, anexar e desanexar volumes e encerrá-la quando não precisar mais dela.
- DNS do OCI
O serviço DNS (Domain Name System) do Oracle Cloud Infrastructure é uma rede global de DNS (sistema de nomes de domínio anycast) altamente escalável que oferece desempenho, resiliência e escalabilidade aprimoradas de DNS, para que os usuários finais se conectem rapidamente a aplicativos de internet, de qualquer lugar.
- Streams do Kafka
O Kafka Streams é uma biblioteca cliente para criar aplicativos e microsserviços, onde os dados de entrada e saída são armazenados em clusters do Kafka. Ele combina a simplicidade de criação e implantação de aplicativos Java e Scala padrão no lado do cliente com os benefícios da tecnologia de cluster do lado do servidor da Kafka.
- Registro em Log do OCIO Oracle Cloud Infrastructure Logging é um serviço altamente escalável e totalmente gerenciado que fornece acesso aos seguintes tipos de logs de seus recursos na nuvem:
- Logs de auditoria: Logs relacionados a eventos produzidos pelo OCI Audit.
- Logs de serviço: Logs publicados por serviços individuais, como OCI API Gateway, OCI Events, OCI Functions, OCI Load Balancing, OCI Object Storage e logs de fluxo da VCN.
- Logs personalizados: Logs que contêm informações de diagnóstico dos aplicativos personalizados, de outros provedores de nuvem ou de um ambiente on-premises.
- Oracle Management Agent
O Oracle Management Agent é um serviço que fornece comunicação interativa de baixa latência e coleta de dados entre o Oracle Cloud Infrastructure e instâncias gerenciadas on-premises. Os agentes de gerenciamento coletam dados de origens que você deseja monitorar. O Management Agent Service, um Oracle Cloud Service, gerencia o ciclo de vida do agente de gerenciamento e os plug-ins dos serviços.
- Monitoramento do OCI
O Oracle Cloud Infrastructure Monitoring monitora ativa e passivamente seus recursos de nuvem e usa alarmes para notificá-lo quando as métricas atendem aos acionadores especificados.
- OCI Object Storage
O OCI Object Storage oferece acesso a grandes quantidades de dados estruturados e não estruturados de qualquer tipo de conteúdo, incluindo backups de banco de dados, dados analíticos e conteúdo avançado como imagens e vídeos. Você pode armazenar dados com segurança diretamente de aplicativos ou de dentro da plataforma de nuvem. Você pode dimensionar o armazenamento sem sofrer qualquer degradação no desempenho ou na confiabilidade de serviço.
Use armazenamento padrão para armazenamento "quente" que você precisa acessar com rapidez, rapidez e frequência. Use armazenamento de arquivo compactado para armazenamento "frio" que você retém por longos períodos de tempo e acesso raro.
- Política
Uma política do Oracle Cloud Infrastructure Identity and Access Management especifica quem pode acessar quais recursos e como. O acesso é concedido no nível do grupo e do compartimento. Significa que você pode gravar uma política que conceda a um grupo um tipo específico de acesso em um compartimento específico ou na tenancy.
- Lista de segurança
Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego permitido dentro e fora da sub-rede.
- Zona de segurança
As zonas de segurança implementam as principais melhores práticas de segurança da Oracle, impondo políticas para um compartimento inteiro, como criptografar dados e impedir o acesso público às redes. Uma zona de segurança está associada a um compartimento com o mesmo nome e inclui políticas de zona de segurança (uma receita) que se aplicam ao compartimento e seus subcompartimentos. Você não pode adicionar ou mover um compartimento padrão para um compartimento da zona da segurança.
- OCI Vault
O Oracle Cloud Infrastructure Vault permite criar e gerenciar centralmente as chaves de criptografia que protegem seus dados e as credenciais secretas usadas para proteger o acesso aos seus recursos na nuvem. O gerenciamento de chaves padrão são chaves gerenciadas pela Oracle. Você também pode usar chaves gerenciadas pelo cliente que usam o OCI Vault. O OCI Vault oferece um conjunto avançado de APIs REST para gerenciar vaults e chaves.
- Fluxo de trabalho do OCI
O Oracle Cloud Infrastructure Workflow é um mecanismo de workflow sem servidor com um designer de fluxo gráfico para desenvolvedores e arquitetos. Ele acelera a criação, a execução e a orquestração de serviços da OCI, como OCI Functions ou AI/ML.
Considerações
Considere os pontos a seguir ao ativar recursos avançados.
- Políticas adicionais são necessárias para usar recursos do JMS Advanced
- A análise de eventos de criptografia, a análise de desempenho e o JDK Flight Recorder podem aumentar o uso geral da memória da JVM do aplicativo.
- Para análise de eventos Crypto, análise de desempenho e JDK Flight Recorder, as versões de runtime do Java do aplicativo devem ser da versão 8u361 ou mais recente.
- O limite máximo de análise de eventos de criptografia e análise de desempenho para cada gravação JFR é definido como 4096 MB.
- Custos adicionais podem ser cobrados usando os serviços OCI Object Storage e OCI Logging para armazenar os dados produzidos por recursos avançados JMS.
- Gerenciamento do Ciclo de Vida do Java
- O recurso Conjunto de Regras de Implantação só é aplicável a runtimes do Java 8. A sobrecarga adicional é a distribuição do jar de política nas instâncias gerenciadas da frota.
- A instalação do Java pode alterar a configuração do sistema Java na instância gerenciada. Siga as instruções de instalação para a versão de runtime Java selecionada e a(s) plataforma(s) de instância gerenciada(s).
- A remoção do runtime do Java pode alterar a configuração do sistema Java na instância gerenciada. Por exemplo, se o runtime Java selecionado for o único runtime configurado pelo sistema em uma instância gerenciada.
- Rastreamento de Uso Avançado
- Para detectar a execução de servidores de Aplicativos Java, seu Java Runtime deve ser pelo menos da versão 8u361 ou posterior.
- A detecção de bibliotecas pode aumentar significativamente o consumo de recursos na instância gerenciada durante a inspeção do aplicativo e de suas bibliotecas, especialmente a utilização de CPU e E/S pode aumentar.
- Dependendo do número de servidores de aplicativos e bibliotecas detectados na instância gerenciada, o payload enviado ao JMS pode ser maior do que o normal. Em circunstâncias normais, deve estar dentro de um intervalo de algumas centenas de kilobytes.
- Análise de eventos de criptografia
- Dependendo do quanto cada aplicativo está utilizando os subsistemas relacionados à segurança da JVM durante a gravação, o tamanho final do arquivo de gravação JFR pode variar, em circunstâncias normais, o tamanho normal da gravação é entre algumas centenas de kilobytes a alguns megabytes.
- Se o aplicativo estiver ocioso, alguns mecanismos de detecção podem não relatar possíveis problemas.
- A utilização da rede pode aumentar dependendo do número de instâncias gerenciadas, do número de aplicativos e do tamanho de cada gravação. A rede é utilizada durante o upload das gravações de JFR na OCI para análise.
- Análise de Desempenho
- O tamanho final de cada arquivo de gravação JFR depende do comportamento do aplicativo. Vários eventos JFR relacionados ao desempenho são capturados, como detalhes sobre coletas de lixo, memória e assim por diante. Em circunstâncias normais, o tamanho de gravação usual é de alguns megabytes.
- Se o aplicativo estiver ocioso, alguns mecanismos de detecção podem não relatar possíveis problemas de desempenho.
- A utilização da rede pode aumentar dependendo do número de instâncias gerenciadas e do tamanho de cada gravação. A rede é utilizada durante o upload das gravações de JFR na OCI para análise.
- JFR (JDK Flight Recorder)
- O tamanho final do arquivo de gravação JFR depende do perfil selecionado ou da configuração JFC personalizada fornecida, outro fator que influencia o tamanho é a duração de gravação selecionada para o aplicativo.
- Análise de Migração Java
- A utilização de recursos pode aumentar durante a análise do aplicativo.
- O resultado da análise é geralmente em ordem de algumas centenas de kilobytes dependendo do tamanho das próprias aplicações e suas dependências.
Alguns recursos avançados, como análise de criptografia e análise de desempenho, dependem da API de anexação da JVM. Durante a execução de solicitações de serviço, o plug-in JMS pode enviar novos eventos para o objeto de log de inventário da frota. O seguinte payload de amostra ilustra o que será entregue no log de inventário da frota nessas situações:
{
"datetime": 1752483223432,
"logContent": {
"id": "3d6a9915-af91-4527-a6d4-2a0d86106b15",
"time": "2025-07-14T08:53:43.432Z",
"oracle": {
"compartmentid": "ocid1.compartment.oc1..compartment-id",
"ingestedtime": "2025-07-14T08:55:27.274970180Z",
"instanceid": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"loggroupid": "ocid1.loggroup.oc1.eu-frankfurt-1.log-group-id",
"logid": "ocid1.log.oc1.eu-frankfurt-1.log-id",
"tenantid": "ocid1.tenancy.oc1..tenant-id"
},
"source": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"specversion": "1.0",
"subject": "Oracle JMS Plugin",
"type": "jms.jvm.usage.attach.log",
"data": {
"data": {
"additionalProperties": {
"java.runtime.name": "Java(TM) SE Runtime Environment",
"user.dir": "/home/opc/crypto",
"user.name": "opc"
},
"applicationName": "spring-tls-server-1.1.0.jar",
"classPath": "spring-tls-server-1.1.0.jar",
"classPathElements": [
"spring-tls-server-1.1.0.jar"
],
"fleetId": "ocid1.jmsfleet.oc1.eu-frankfurt-1.fleet-id",
"javaArgs": "n/a",
"javaCommand": "spring-tls-server-1.1.0.jar --debug",
"javaDistribution": "Java(TM) SE Runtime Environment",
"javaHome": "/usr/lib/jvm/jdk-21-oracle-x64",
"javaMajorVersion": "21",
"javaVendor": "Oracle Corporation",
"javaVersion": "21",
"managedInstanceId": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"osArch": "amd64",
"osName": "Linux",
"osVersion": "5.15.0-306.177.4.el9uek.x86_64",
"startTime": "2025-07-14T08:48:34.947541200Z",
"typeOfStart": "VM start"
},
"datacontenttype": "application/json",
"dataschema": "1.0",
"id": "3d6a9915-af91-4527-a6d4-2a0d86106b15",
"source": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"specversion": "1.0",
"time": "2025-07-14T08:53:43.432Z",
"type": "jms.jvm.usage.attach.log"
}
},
"regionId": "eu-frankfurt-1"
}
Outras Considerações
Depois que uma solicitação de execução de recurso é submetida no JMS, o serviço JMS cria uma solicitação de serviço identificada por um OCID de solicitação de serviço exclusivo. Veja a seguir o processo típico para rastrear o andamento da solicitação de serviço no OCI Cloud Console.
- Navegue até a sua frota clicando em Observabilidade e Gerenciamento, Java Management, Frota.
- Selecione sua frota.
- Clique na seção Solicitações de serviço da frota.
Como rastrear o andamento da solicitação de serviço na CLI do OCI:
- Execute o seguinte comando:
oci jms work-request get --work-request-id $WORK_REQUEST_OCID
- Se você estiver interessado apenas no estado atual da solicitação de serviço, poderá executar a instrução acima com o utilitário
jq
:oci jms work-request get --work-request-id $WORK_REQUEST_OCID | jq .data.status
A capacidade de submeter e rastrear solicitações de serviço de recurso também está disponível na API JMS, acessível por meio do OCI SDK.