Armazenamento de Dados e Log-in em Frotas JMS

A JMS Fleets emprega uma abordagem sistemática para organizar, armazenar e gerenciar dados para garantir o processamento ideal e a análise estendida. Os dados brutos coletados de eventos enviados pelo plug-in JMS de cada instância gerenciada são inicialmente armazenados nos objetos de log associados da frota à qual a instância gerenciada pertence. O JMS aproveita o serviço OCI Logging para categorizar esses dados em dois tipos principais: Logs de Inventário e Logs de Operação.
  • Logs de Inventário: Esses Logs Personalizados armazenam o inventário do Java Runtime e informações relacionadas ao uso reportadas pelos hosts pelo plug-in JMS. Os logs de estoque são obrigatórios para que as frotas funcionem efetivamente.
  • Logs de Operação: Esses Logs Personalizados capturam operações realizadas por meio de Frotas JMS. Embora opcionais, os logs de operação complementam os logs de estoque, fornecendo insights operacionais adicionais.

Se as frotas forem criadas por meio da console do OCI, os objetos de log serão criados pelas Frotas JMS no mesmo compartimento da frota. Se você estiver criando frotas usando a API createFleet, precisará fornecer como parâmetros os OCIDs do grupo de logs e objetos a serem associados à frota. O objeto de log associado à frota pode ser acessado usando os Detalhes da Configuração de Log presentes na Guia Propriedades da Frota.

Os logs de inventário e operação são organizados em um Grupo de Logs, que facilita a análise avançada por meio do Logging Analytics. Por padrão, esses objetos de log têm um período de retenção de um mês. Para preservar dados indefinidamente, você pode estabelecer uma conexão do Connector Hub entre o objeto de log e um bucket de armazenamento de objetos.

Observação

Os logs de inventário e operação incorrerão em custos de armazenamento. Consulte o Oracle Cloud Cost Estimator para ver mais detalhes.

Os dados brutos armazenados em logs são processados e os dados agregados são transferidos para o banco de dados Autonomous Transaction Processing (ATP) pertencente ao serviço JMS. O JMS mantém esses dados agregados por até um ano, permitindo que os usuários analisem tendências históricas e obtenham insights acionáveis sobre suas cargas de trabalho Java.

Para obter mais informações sobre registro em log, leia o seguinte:

Logs do Inventário

Os logs de inventário contêm informações sobre os diferentes tipos de evento capturados pelas Frotas JMS. Cada mensagem está no formato JSON. A mensagem contém o tipo e os dados do evento, quando ele foi recebido, o ID do log, o ID do Agente de Gerenciamento e outros dados. O Management Agent grava diretamente nos objetos de log de inventário associados à frota JMS em um intervalo que você configura nas Definições do Agente.

O tipo pode ser um dos seguintes:
  • jms.jvm.usage.log: Dados sobre a chamada JVM encontrados durante o relatório de uso do runtime Java.
  • jms.jvm.installation.log: Dados sobre JVM encontrados durante a verificação de descoberta do runtime Java.
  • jms.jvm.usage.attach.log: Dados sobre a chamada de JVM encontrados pela API de Anexo durante a execução de recursos avançados
  • jms.javaserver.metadata.log: Dados de uma verificação do servidor Java.
  • jms.javaserver.libraries.log: Dados de uma verificação de bibliotecas do servidor Java.
  • jms.java.libraries.log: Dados de uma verificação de bibliotecas Java.
  • jms.drs.scan.log: Dados de uma varredura DRS.
  • jms.agent.plugin.start.log: Gerado sempre que o plug-in JMS é iniciado.
Payload de amostra para o tipo de evento jms.jvm.usage.log:
{
  "datetime": 1654089796180,
  "logContent": {
    "data": {
      "data": {
        "additionalProperties": {
          "java.runtime.name": "Java(TM) SE Runtime Environment"
        },
        "applicationName": "com.oracle.test.HelloWorld",
        "classPath": "/home/opc/HelloWorld-1.0.jar",
	  The classPath is a list of paths, but due to logging limitations, JMS provides the same information as an array of path. There is a limit 10,000 characters for string values.
        "fleetId": "ocid1.jmsfleet.oc1.iad.fleet-id",
        "javaArgs": "John",
        "javaCommand": "com.oracle.test.HelloWorld",
        "javaDistribution": "Java(TM) SE Runtime Environment",
        "javaHome": "/usr/java/jdk-11.0.14",
        "javaMajorVersion": "11",
        "javaVendor": "Oracle Corporation",
        "javaVersion": "11.0.14",
        "managedInstanceId": "ocid1.managementagent.oc1.iad.management-agent-id",
        "osArch": "amd64",
        "osName": "Linux",
        "osVersion": "5.4.17-2136.302.7.2.1.el8uek.x86_64",
        "startTime": "2022-05-27T05:02:01Z",
        "typeOfStart": "VM start"
      },
      "datacontenttype": "application/json",
      "dataschema": "1.0",
      "id": "b36806ce-564e-46e5-99fc-d50fb386dd7a",
      "source": "ocid1.managementagent.oc1.iad.management-agent-id",
      "specversion": "1.0",
      "time": "2022-06-01T13:23:16.180Z",
      "type": "jms.jvm.usage.log"
    },
    "id": "b36806ce-564e-46e5-99fc-d50fb386dd7a",
    "oracle": {
      "compartmentid": "ocid1.compartment.oc1..compartment-id",
      "ingestedtime": "2022-06-01T13:24:12.141Z",
      "loggroupid": "ocid1.loggroup.oc1.iad.log-group-id",
      "logid": "ocid1.log.oc1.iad.log-id",
      "tenantid": "ocid1.tenancy.oc1..tenant-id"
    },
    "source": "ocid1.managementagent.oc1.iad.management-agent-id",
    "specversion": "1.0",
    "subject": "JMS",
    "time": "2022-06-01T13:23:16.180Z",
    "type": "jms.jvm.usage.log"
  }
}
Payload de amostra para o tipo de evento jms.jvm.installation.log:
{
  "datetime": 1651838678794,
  "logContent": {
    "data": {
      "data": {
        "fleetId": "ocid1.jmsfleet.oc1.iad.fleet-id",
        "javaDistribution": "Java(TM) SE Runtime Environment",
        "javaHome": "/usr/java/jdk-17.0.2",
        "javaMajorVersion": "17",
        "javaVendor": "Oracle Corporation",
        "javaVersion": "17.0.2",
        "managedInstanceId": "ocid1.managementagent.oc1.iad.management-agent-id",
        "osArch": "amd64",
        "osName": "Linux",
        "osVersion": "5.4.17-2136.304.4.1.el8uek.x86_64"
      },
      "datacontenttype": "application/json",
      "dataschema": "1.0",
      "id": "3b8f47a4-46de-476f-b786-1dc4d4ddd6ec",
      "source": "ocid1.managementagent.oc1.iad.management-agent-id",
      "specversion": "1.0",
      "time": "2022-05-06T12:04:38.794Z",
      "type": "jms.jvm.installation.log"
    },
    "id": "id",
    "oracle": {
      "compartmentid": "ocid1.compartment.oc1..compartment-id",
      "ingestedtime": "2022-05-06T12:04:59.016Z",
      "loggroupid": "ocid1.loggroup.oc1.iad.loggroup-id",
      "logid": "ocid1.log.oc1.iad.log-id",
      "tenantid": "ocid1.tenancy.oc1..tenancy-id"
    },
    "source": "ocid1.managementagent.oc1.iad.management-agent-id",
    "specversion": "1.0",
    "subject": "JMS",
    "time": "2022-05-06T12:04:38.794Z",
    "type": "jms.jvm.installation.log"
  }
}

Logs de Operação

Os logs de operação armazenam eventos relacionados a operações realizadas por meio de Frotas JMS. Cada mensagem está no formato JSON. A mensagem contém o tipo e os dados do evento, quando ele foi recebido, o ID do log, o ID da Solicitação de Serviço e outros dados. Se os logs de operação estiverem ativados para uma frota, o Management Agent gravará nos objetos de log de operação associados à medida que executar solicitações de serviço iniciadas na frota.

Os dados de log da operação de Frotas JMS usam o formato:
  • o tipo é jms.publiclogs
  • a specversion tem a versão 1.0
  • a codificação é application/json
  • a origem é jms
O tipo de evento de payload jms.publiclogs mostra os dados sobre as Operações de Gerenciamento de Ciclo de Vida. Consulte os seguintes atributos logContent.data.data:
{
      "datetime": 1652437153474,
      "logContent": {
            "data": {
                  "category": "EXECUTION",
                  "fleetId": "ocid1.fleet-name.oc1.iad.fleet-id",
                  "level": "INFO",
                  "managedInstanceId": "ocid1.managementagent.oc1.iad.management-agent-id",
                  "message": "Work Item 0f68ca34-1c7f-4fb2-8b6a-d0119c6a4934, 
		   part of Work Request ocid1.jmsworkrequest.oc1.iad.work-request-id, 
		  status is Retrying for delete Java Runtime 15.0.2 at 
		  /usr/java/jdk-15.0.2 in test-environment-id with 
		  OCID: ocid1.managementagent.oc1.iad.management-agent-id",
                  "timestamp": "2022-05-02T03:36:21.235Z",
                  "workRequestId": "ocid1.jmsworkrequest.oc1.iad.work-request-id"
            },
            "id": "017e880a-b33d-4f90-bdc7-5a0034b7da36",
            "oracle": {
                  "compartmentid": "ocid1.compartment.oc1..compartment-id",
                  "ingestedtime": "2022-05-13T10:19:13.676Z",
                  "loggroupid": "ocid1.loggroup.oc1.iad.log-group-id",
                  "logid": "ocid1.log.oc1.iad.log-id",
                  "tenantid": "ocid1.tenancy.oc1..tenancy-id"
            },
            "source": "jms",
            "specversion": "1.0",
            "time": "2022-05-13T10:19:13.474Z",
            "type": "jms.publiclogs"
      }
}

Consultas de Pesquisa Avançada

Na opção Explorar com Pesquisa de Log, selecione o modo Swtich para Avançado. Você pode procurar eventos específicos nos logs usando consultas avançadas. As consultas de pesquisa sugeridas a seguir.

Use a consulta a seguir para pesquisar um compartimento inteiro:
search "COMPARTMENT_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' | sort by datetime desc
Use a consulta a seguir para pesquisar eventos do grupo de logs:
search "COMPARTMENT_OCID/LOG_GROUP_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' | sort by datetime desc
Use a consulta a seguir para pesquisar eventos do objeto de log:
search "COMPARTMENT_OCID/LOG_GROUP_OCID/LOG_OBJECT_ID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' | sort by datetime desc
Use a consulta a seguir para pesquisar eventos associados à frota com FLEET_OCID no compartimento COMPARTMENT_OCID com o objeto de log associado LOG_OBJECT_ID e o grupo de logs LOG_GROUP_OCID:
search "COMPARTMENT_OCID/LOG_GROUP_OCID/LOG_OBJECT_ID" | sort by datetime desc
Observação

Na consulta de pesquisa a seguir, você não precisa filtrar por tipo porque apenas as mensagens relacionadas a Frotas JMS estão no logObject associado à frota.
Como alternativa, você pode digitar COMPARTMENT_OCID e filtrar na frota:
search "COMPARTMENT_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' and data.data.fleetId = 'FLEET_OCID' | sort by datetime desc
Use a consulta a seguir para pesquisar em um agente com MANAGEMENT_INSTANCE_OCID:
search "COMPARTMENT_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' and data.source = 'MANAGEMENT_INSTANCE_OCID' | sort by datetime desc