Storage dei dati e login alle flotte JMS

JMS Fleets utilizza un approccio sistematico all'organizzazione, alla memorizzazione e alla gestione dei dati per garantire un'elaborazione ottimale e un'analisi estesa. I dati non elaborati raccolti dagli eventi inviati dal plugin JMS da ogni istanza gestita vengono inizialmente memorizzati negli oggetti di log associati della flotta a cui appartiene l'istanza gestita. JMS utilizza il servizio Log OCI per suddividere in categorie questi dati in due tipi principali: Log di inventario e Log operativi.
  • Log di inventario: questi log personalizzati memorizzano l'inventario Java Runtime e le informazioni relative all'uso segnalate dagli host dal plugin JMS. I registri di inventario sono obbligatori per il funzionamento efficace delle flotte.
  • Log operazioni: queste operazioni di acquisizione dei log personalizzati vengono eseguite tramite le flotte JMS. Sebbene siano facoltativi, i log operativi completano i log di inventario fornendo insight operativi aggiuntivi.

Se le flotte vengono create tramite la console OCI, gli oggetti di log vengono creati dalle flotte JMS nello stesso compartimento della flotta. Se si stanno creando flotte utilizzando l'API createFleet, sarà necessario fornire come parametri gli OCID del gruppo di log e degli oggetti da associare alla flotta. È possibile accedere all'oggetto log associato alla flotta utilizzando i dettagli di configurazione log presenti nella scheda Proprietà flotta.

Sia i log di inventario che quelli operativi sono organizzati in un gruppo di log, che facilita l'analitica avanzata tramite Logging Analytics. Per impostazione predefinita, questi oggetti di log hanno un periodo di conservazione pari a un mese. Per conservare i dati a tempo indeterminato, è possibile stabilire una connessione hub connettore tra l'oggetto di log e un bucket di storage degli oggetti.

Nota

I log dell'inventario e delle operazioni comportano costi di storage. Per ulteriori dettagli, consulta il documento Oracle Cloud Cost Estimator.

I dati non elaborati memorizzati nei log vengono elaborati e i dati aggregati vengono trasferiti al database ATP (Autonomous Transaction Processing) di proprietà del servizio JMS. JMS conserva questi dati aggregati per un massimo di un anno, consentendo agli utenti di analizzare le tendenze cronologiche e ottenere insight utili sui carichi di lavoro Java.

Leggere quanto segue per ulteriori informazioni sul log:

Log inventario

I log di inventario contengono informazioni sui diversi tipi di evento acquisiti dalle flotte JMS. Ogni messaggio è in formato JSON. Il messaggio contiene il tipo e i dati dell'evento, la data di ricezione, l'ID del log, l'ID Management Agent e altri dati. Il Management Agent scrive direttamente negli oggetti di log dell'inventario associati alla propria flotta JMS in un intervallo configurato nelle impostazioni dell'agente.

Può essere uno dei seguenti:
  • jms.jvm.usage.log: dati sul richiamo JVM trovati durante la generazione di report sull'uso di Java Runtime.
  • jms.jvm.installation.log: dati sulla JVM trovati durante la scansione della ricerca automatica di Java Runtime.
  • jms.jvm.usage.attach.log: dati sul richiamo JVM trovati dall'interfaccia API Attach durante l'esecuzione delle funzioni avanzate
  • jms.javaserver.metadata.log: dati da una scansione del server Java.
  • jms.javaserver.libraries.log: i dati di una scansione delle librerie di server Java.
  • jms.java.libraries.log: i dati di una scansione delle librerie Java.
  • jms.drs.scan.log: dati da una scansione DRS.
  • jms.agent.plugin.start.log: viene generato ogni volta che viene avviato il plugin JMS.
Payload di esempio per il tipo di 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 di esempio per il tipo di 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"
  }
}

Log delle operazioni

I log delle operazioni memorizzano gli eventi correlati alle operazioni eseguite tramite le flotte JMS. Ogni messaggio è in formato JSON. Il messaggio contiene il tipo e i dati dell'evento, la data di ricezione, l'ID del log, l'ID della richiesta di lavoro e altri dati. Se i log delle operazioni sono abilitati per una flotta, il Management Agent scriverà negli oggetti di log delle operazioni associati mentre esegue le richieste di lavoro avviate nella flotta.

I dati di log delle operazioni flotta JMS utilizzano il formato seguente:
  • il tipo è jms.publiclogs
  • specversion ha la versione 1.0
  • la codifica è application/json
  • l'origine è jms
Il tipo di evento payload jms.publiclogs mostra i dati relativi alle operazioni di Lifecycle Management. Vedere i seguenti attributi 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"
      }
}

Query di ricerca avanzate

Dall'opzione Esplora con ricerca log selezionare la modalità Swtich to Advanced. È possibile cercare eventi specifici nei log utilizzando query avanzate. Di seguito sono riportate le query di ricerca suggerite.

Utilizzare la query seguente per cercare un intero compartimento:
search "COMPARTMENT_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' | sort by datetime desc
Utilizzare la query seguente per cercare gli eventi dal gruppo di log:
search "COMPARTMENT_OCID/LOG_GROUP_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' | sort by datetime desc
Utilizzare la query seguente per cercare gli eventi dall'oggetto 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
Utilizzare la query seguente per cercare gli eventi associati alla flotta con FLEET_OCID nel compartimento COMPARTMENT_OCID con l'oggetto log associato LOG_OBJECT_ID e il gruppo di log LOG_GROUP_OCID:
search "COMPARTMENT_OCID/LOG_GROUP_OCID/LOG_OBJECT_ID" | sort by datetime desc
Nota

Nella seguente query di ricerca non è necessario applicare un filtro in base al tipo, poiché solo i messaggi correlati alle flotte JMS si trovano nella logObject associata alla flotta.
In alternativa, è possibile immettere COMPARTMENT_OCID e filtrare in base alla flotta:
search "COMPARTMENT_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' and data.data.fleetId = 'FLEET_OCID' | sort by datetime desc
Utilizzare la query seguente per eseguire la ricerca da 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