JMSフリートのデータ・ストレージおよびロギング

JMSフリートは、データを整理、格納および管理するための体系的なアプローチを採用し、最適な処理と拡張分析を実現します。各管理対象インスタンスからJMSプラグインによって送信されたイベントから収集されたRAWデータは、最初に管理対象インスタンスが属するフリートの関連ログ・オブジェクトに格納されます。JMSは、OCIロギング・サービスを利用して、このデータをインベントリ・ログ操作ログの2つのメイン・タイプに分類します。
  • インベントリ・ログ: これらのカスタム・ログには、JMSプラグインによってホストからレポートされるJavaランタイムのインベントリおよび使用関連情報が格納されます。車両が効果的に機能するには、在庫ログが必須です。
  • 操作ログ: JMSフリートを介して実行されるこれらのカスタム・ログ取得操作。オプションですが、運用ログは、追加の運用インサイトを提供することで在庫ログを補完します。

OCIコンソールを使用してフリートが作成された場合、ログ・オブジェクトは、フリートと同じコンパートメントのJMSフリートによって作成されます。createFleet APIを使用してフリートを作成する場合は、フリートに関連付けるログ・グループおよびオブジェクトのOCIDをパラメータとして指定する必要があります。フリートに関連付けられたログ・オブジェクトにアクセスするには、「フリート・プロパティ」タブにあるログ構成の詳細を使用します。

インベントリ・ログと操作ログの両方がログ・グループの下に編成され、ログ・アナリティクスによる高度な分析が容易になります。デフォルトでは、これらのログ・オブジェクトの保存期間は1か月です。データを無期限に保持するために、ログ・オブジェクトとオブジェクト・ストレージ・バケットの間にコネクタ・ハブ接続を確立できます。

ノート

インベントリおよび操作のログには、ストレージ・コストが発生します。詳細は、Oracle CloudのCost Estimatorをご覧ください。

ログに格納されたRAWデータは処理され、集計データはJMSサービスが所有するAutonomous Transaction Processing (ATP)データベースに転送されます。JMSは、この集計データを最大1年間保持するため、ユーザーは過去の傾向を分析し、Javaワークロードに関する実用的なインサイトを得ることができます。

ロギングの詳細は、次を参照してください。

在庫ログ

インベントリ・ログには、JMSフリートによって取得される様々なイベント・タイプに関する情報が含まれています。各メッセージはJSON形式です。メッセージには、イベントの種類とデータ、受信日時、ログのID、管理エージェントIDおよびその他のデータが含まれます。管理エージェントは、JMSフリートに関連付けられたインベントリ・ログ・オブジェクトに、エージェント設定で構成する間隔で直接書き込みます。

タイプは次のとおりです。
  • jms.jvm.usage.log: Javaランタイム使用状況レポート中に検出されたJVM呼出しに関するデータ。
  • jms.jvm.installation.log: Javaランタイム検出スキャン中に検出されたJVMに関するデータ。
  • jms.jvm.usage.attach.log: 高度な機能の実行中にAttach APIによって検出されたJVM呼出しに関するデータ
  • jms.javaserver.metadata.log: Javaサーバー・スキャンのデータ。
  • jms.javaserver.libraries.log: Javaサーバー・ライブラリからのデータがスキャンされます。
  • jms.java.libraries.log: Javaライブラリからのデータがスキャンされます。
  • jms.drs.scan.log: DRSスキャンからのデータ。
  • jms.agent.plugin.start.log: JMSプラグインが起動するたびに生成されます。
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"
  }
}
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"
  }
}

操作ログ

操作ログには、JMSフリートを介して実行される操作に関連するイベントが格納されます。各メッセージはJSON形式です。メッセージには、イベントのタイプとデータ、受信日時、ログのID、作業リクエストIDおよびその他のデータが含まれます。フリートに対して操作ログが有効になっている場合、管理エージェントはフリートで開始された作業リクエストを実行するときに、関連付けられた操作ログ・オブジェクトに書き込みます。

JMSフリート操作ログ・データは、次の形式を使用します。
  • タイプはjms.publiclogsです
  • specversionのバージョンは1.0です
  • エンコーディングはapplication/jsonです
  • ソースはjmsです
ペイロード・イベント・タイプjms.publiclogsには、ライフサイクル管理操作に関するデータが表示されます。次の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"
      }
}

拡張検索問合せ

「ログ検索で探索」オプションから、「SwtichからAdvanced」モードを選択します。拡張問合せを使用して、特定のイベントのログを検索できます。次に、推奨される検索問合せを示します。

次の問合せを使用して、コンパートメント全体を検索します:
search "COMPARTMENT_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' | sort by datetime desc
次の問合せを使用して、ログ・グループからイベントを検索します:
search "COMPARTMENT_OCID/LOG_GROUP_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' | sort by datetime desc
次の問合せを使用して、ログ・オブジェクトからイベントを検索します。
search "COMPARTMENT_OCID/LOG_GROUP_OCID/LOG_OBJECT_ID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' | sort by datetime desc
次の問合せを使用して、関連するログ・オブジェクトLOG_OBJECT_IDおよびログ・グループLOG_GROUP_OCIDを含むコンパートメントCOMPARTMENT_OCIDのFLEET_OCIDのフリートに関連付けられたイベントを検索します:
search "COMPARTMENT_OCID/LOG_GROUP_OCID/LOG_OBJECT_ID" | sort by datetime desc
ノート

次の検索問合せでは、フリートに関連付けられたlogObjectにはJMSフリート関連メッセージのみが含まれるため、タイプでフィルタする必要はありません。
または、COMPARTMENT_OCIDと入力し、フリートでフィルタできます:
search "COMPARTMENT_OCID" | type='jms.jvm.usage.log' or type='jms.jvm.installation.log' and data.data.fleetId = 'FLEET_OCID' | sort by datetime desc
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