Almacenamiento y registro de datos en conjuntos de JMS

JMS Fleets emplea un enfoque sistemático para organizar, almacenar y gestionar datos para garantizar un procesamiento óptimo y un análisis ampliado. Los datos raw recopilados de eventos enviados por el plugin de JMS desde cada instancia gestionada se almacenan inicialmente en los objetos log asociados del conjunto al que pertenece la instancia gestionada. JMS aprovecha el servicio OCI Logging para clasificar estos datos en dos tipos principales: Logs de inventario y Logs de operación.
  • Logs de inventario: estos logs personalizados almacenan el inventario de Java Runtime y la información relacionada con el uso notificados desde los hosts por el plugin de JMS. Los logs de inventario son obligatorios para que las flotas funcionen de manera eficaz.
  • Logs de operaciones: estos logs personalizados capturan operaciones realizadas mediante conjuntos de JMS. Aunque son opcionales, los logs de operaciones complementan los logs de inventario al proporcionar información operativa adicional.

Si las flotas se crean a través de la consola de OCI, los objetos de log los crean los conjuntos de JMS en el mismo compartimento que el conjunto. Si está creando conjuntos mediante la API createFleet, deberá proporcionar como parámetros los OCID del grupo de logs y los objetos que se van a asociar al conjunto. Se puede acceder al objeto de log asociado al conjunto mediante los Detalles de configuración de log presentes en el separador Propiedades de conjunto.

Tanto los logs de inventario como los de operación se organizan en un grupo de logs, que facilita el análisis avanzado mediante Logging Analytics. Por defecto, estos objetos de log tienen un período de retención de un mes. Para conservar los datos de forma indefinida, puede establecer una conexión de Connector Hub entre el objeto de log y un cubo de almacenamiento de objetos.

Nota

Los logs de inventario y operaciones incurrirán en costos de almacenamiento. Consulte el estimador de costos de Oracle Cloud para obtener más información.

Los datos raw almacenados en los logs se procesan y los datos agregados se transfieren a la base de datos de Autonomous Transaction Processing (ATP) propiedad del servicio JMS. JMS conserva estos datos agregados durante un máximo de un año, lo que permite a los usuarios analizar tendencias históricas y obtener información útil sobre sus cargas de trabajo de Java.

Consulte lo siguiente para obtener más información sobre el registro:

Registros del inventario

Los logs de inventario contienen información sobre los diferentes tipos de eventos capturados por los conjuntos de JMS. Cada mensaje está en formato JSON. El mensaje contiene el tipo y los datos del evento, cuándo se recibió, el ID del log, el ID del agente de gestión y otros datos. Management Agent escribe directamente en los objetos de log de inventario asociados a su conjunto JMS en un intervalo que configure en la configuración del agente.

El tipo puede ser uno de los siguientes:
  • jms.jvm.usage.log: se han encontrado datos sobre la llamada de JVM durante los informes de uso de tiempo de ejecución de Java.
  • jms.jvm.installation.log: datos sobre JVM encontrados durante la exploración de detección de tiempo de ejecución de Java.
  • jms.jvm.usage.attach.log: datos sobre la llamada de JVM que ha encontrado la API de asociación durante la ejecución de funciones avanzadas
  • jms.javaserver.metadata.log: datos de una exploración de servidor Java.
  • jms.javaserver.libraries.log: datos de una exploración de bibliotecas del servidor Java.
  • jms.java.libraries.log: datos de una exploración de bibliotecas Java.
  • jms.drs.scan.log: datos de una exploración de DRS.
  • jms.agent.plugin.start.log: se genera cada vez que se inicia el plugin de JMS.
Carga útil de ejemplo para el 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"
  }
}
Carga útil de ejemplo para el 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 operaciones

Los logs de operaciones almacenan eventos relacionados con operaciones realizadas a través de conjuntos de JMS. Cada mensaje está en formato JSON. El mensaje contiene el tipo y los datos del evento, cuándo se recibió, el ID del log, el ID de solicitud de trabajo y otros datos. Si los logs de operaciones están activados para un conjunto, Management Agent escribirá en los objetos de log de operaciones asociados mientras ejecuta solicitudes de trabajo iniciadas en el conjunto.

Los datos del log de operaciones de conjuntos de JMS utilizan el formato:
  • el tipo es jms.publiclogs
  • especversion tiene la versión 1.0
  • la codificación es application/json
  • el origen es jms
El tipo de evento de carga útil jms.publiclogs muestra los datos sobre las operaciones de gestión del ciclo de vida. Consulte los siguientes 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 búsqueda avanzada

En la opción Explorar con búsqueda de log, seleccione el modo Convertir a avanzado. Puede buscar eventos específicos en los logs mediante consultas avanzadas. A continuación, se sugieren las consultas de búsqueda.

Utilice la siguiente consulta para buscar un compartimento completo:
search "COMPARTMENT_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' | sort by datetime desc
Utilice la siguiente consulta para buscar eventos del grupo de logs:
search "COMPARTMENT_OCID/LOG_GROUP_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' | sort by datetime desc
Utilice la siguiente consulta para buscar eventos del 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
Utilice la siguiente consulta para buscar eventos asociados a la flota con FLEET_OCID en el compartimento COMPARTMENT_OCID con el objeto de log asociado LOG_OBJECT_ID y el grupo de logs LOG_GROUP_OCID:
search "COMPARTMENT_OCID/LOG_GROUP_OCID/LOG_OBJECT_ID" | sort by datetime desc
Nota

En la siguiente consulta de búsqueda, no necesita filtrar por tipo, porque solo los mensajes relacionados con conjuntos de JMS están en logObject asociados al conjunto.
También puede introducir COMPARTMENT_OCID y filtrar en la flota:
search "COMPARTMENT_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' and data.data.fleetId = 'FLEET_OCID' | sort by datetime desc
Utilice la siguiente consulta para buscar desde un agente con 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