LoginSignup
1
2

Stack Monitoringでプロセス監視の設定をしてみた

Posted at

OCIの運用監視サービス「Stack Monitoring」でプロセス監視の機能が追加されたようなので、早速設定してみました。
ドキュメントはこちらです。

前提条件

  • Stack Monitoringに監視対象のホストが登録されていること
  • ホストがStack MonitoringのEnterprise Editionで監視されていること
  • OCI CLIがインストール、構成された端末から設定すること

1.プロセスセットの作成

プロセス監視の登録はOCI CLIコマンドから実行する必要があるようなので、OCI CLIコマンド実行時に受け渡すJSONファイルを作成します。
プロセスセット作成時に必要なJSONファイルのフォーマットは以下です。

{
    "compartmentId": "<Stack Monitoringで監視対象のホストを登録したコンパートメントのOCID>",
    "displayName": "<プロセスの表示名(任意)>",
    "specification": {
        "items": [
            {
                "processCommand": "<プロセスのコマンド>",
            }
        ]
    }
}

今回は試しにJavaのプロセスを監視するため、以下のように定義しました。

java.json
{
    "compartmentId": "ocid1.compartment.oc1..xxxxxxx",
    "displayName": "java processes",
    "specification": {
        "items": [
            {
                "processCommand": "java",
            }
        ]
    }
}

JSONファイルを用意したら、OCI CLIコマンドでプロセスセットを作成します。

$oci stack-monitoring process-set create --compartment-id < Stack Monitoringで監視対象のホストを登録したコンパートメントのOCID> --from-json file://<JSONファイルのパス>

例)
$oci stack-monitoring process-set create --compartment-id ocid1.compartment.oc1..aaaaaaaaxxxxxxx --from-json file://java.json

プロセスセットが作成したら、以下のような実行結果が返されるので、 プロセスセットのOCIDをメモします。

{
  "data": {
    "compartment-id": "ocid1.compartment.oc1..aaaaaaaaxxxxxxx",
    "defined-tags": {
      "Oracle-Tags": {
        "CreatedBy": "default/xxxxxx",
        "CreatedOn": "2024-02-01T06:52:29.277Z"
      }
    },
    "display-name": "java processes",
    "freeform-tags": {},
    "id": "ocid1.stackmonitoringprocessset.oc1.iad.amaaaaaatgpiiviaqisiwro73x734bq5putyx2o5d4brqfahxa3toz7b76ja",
    "lifecycle-state": "ACTIVE",
    "revision": "1",
    "specification": {
      "items": [
        {
          "label": null,
          "process-command": "java",
          "process-line-regex-pattern": null,
          "process-user": null
        }
      ]
    },
    "system-tags": {},
    "time-created": "2024-02-01T06:52:29+00:00",
    "time-updated": "2024-02-01T06:52:29+00:00"
  },
  "etag": "0a2756eaa7c5bc4894ef7b34c9c9490a90666a6f12db033869b45c4f3d67644e"
}

この場合、プロセスセットのOCIDは"id": "ocid1.stackmonitoringprocessset.oc1.iad.amaaaaaatgpiiviaqisiwro73x734bq5putyx2o5d4brqfahxa3toz7b76ja"の部分になります。

2.プロセスセットとホストの紐付け

プロセスセットを作成したら、次はStack Monitoringに登録されているホストに紐付けます。
紐付けもOCI CLIコマンドで設定するので、OCI CLIコマンドで受け渡すJSONファイルを作成します。
プロセスセットとホストを紐付ける際に必要なJSONファイルのフォーマットは以下です。

{
    "discoveryType": "ADD",
    "discoveryClient": "APPMGMT",
    "compartmentId": "< Stack Monitoringで監視対象のホストを登録したコンパートメントのOCID >",
    "discoveryDetails": {
        "agentId": "<監視対象のホストを監視している管理エージェントのOCID>",
        "resourceType": "CUSTOM_RESOURCE",
        "resourceName": "<手順1で定義したプロセスの表示名>",
        "properties": {
            "propertiesMap": {
                 "host_ocid": "<Stack Monitoringに登録したホストのOCID>",
                 "process_set_id": "手順1でメモしたプロセスセットのOCID"
            }
        },
        "license": "ENTERPRISE_EDITION"
    },
    "freeformTags": {},
    "definedTags": {}
}

Stack Monitoringに登録したホストのOCID、監視対象のホストを監視している管理エージェントのOCIDはそれぞれStack Monitoringのホストの監視画面 -> 構成 -> 汎用OCIプロパティから確認できます。

スクリーンショット 2024-02-01 17.59.08.png

例)

host.json
{
    "discoveryType": "ADD",
    "discoveryClient": "APPMGMT",
    "compartmentId": "ocid1.compartment.oc1..aaaaaaaaxxxxxx",
    "discoveryDetails": {
        "agentId": "ocid1.managementagent.oc1.iad.xxxxxx",
        "resourceType": "CUSTOM_RESOURCE",
        "resourceName": "java processes",
        "properties": {
            "propertiesMap": {
                 "host_ocid": "ocid1.stackmonitoringresource.oc1.iad.amaaaaaatgpiiviaxotfnhbdaqogztnjt4kejxzqzjvnibs4ftteox2lj7pq",
                 "process_set_id": "ocid1.stackmonitoringprocessset.oc1.iad.amaaaaaatgpiiviaqisiwro73x734bq5putyx2o5d4brqfahxa3toz7b76ja"
            }
        },
        "license": "ENTERPRISE_EDITION"
    },
    "freeformTags": {},
    "definedTags": {}
}

JSONファイルを作成したら、OCI CLIコマンドでプロセスセットとホストを紐付けます。

$ oci stack-monitoring discovery-job create --compartment-id <Stack Monitoringで監視対象のホストを登録したコンパートメントのOCID> --from-json file://<手順2で作成したJSONファイルのパス>
例)
$oci stack-monitoring discovery-job create --compartment-id ocid1.compartment.oc1..aaaaaaaaxxxxxx --from-json file://host.json

プロセスセットとホストの紐付けに成功すると、以下のようなレスポンスが返ってきます。

{
  "data": {
    "compartment-id": "ocid1.compartment.oc1..aaaaaaaaxxxxxx",
    "defined-tags": {
      "Oracle-Tags": {
        "CreatedBy": "default/xxxxxx",
        "CreatedOn": "2024-02-01T06:58:53.201Z"
      }
    },
    "discovery-client": "APPMGMT",
    "discovery-details": {
      "agent-id": "ocid1.managementagent.oc1.iad.amaaaaaaxxxxx",
      "credentials": null,
      "license": "ENTERPRISE_EDITION",
      "properties": {
        "properties-map": {
          "host_ocid": "ocid1.stackmonitoringresource.oc1.iad.amaaaaaatgpiiviaxotfnhbdaqogztnjt4kejxzqzjvnibs4ftteox2lj7pq",
          "process_set_id": "ocid1.stackmonitoringprocessset.oc1.iad.amaaaaaatgpiiviaqisiwro73x734bq5putyx2o5d4brqfahxa3toz7b76ja"
        }
      },
      "resource-name": "java processes",
      "resource-type": "CUSTOM_RESOURCE",
      "tags": {
        "properties-map": {}
      }
    },
    "discovery-type": "ADD",
    "freeform-tags": {},
    "id": "ocid1.stackmonitoringdiscoveryjob.oc1.iad.amaaaaaatgpiiviaj4irjm55vyeh6cbcdxq27my5igjm5ksqfgpgpgih4jeq",
    "lifecycle-state": "CREATING",
    "status": "CREATED",
    "status-message": null,
    "system-tags": {},
    "tenant-id": "ocid1.tenancy.oc1..aaaaaaaaxxxxxq",
    "time-updated": "2024-02-01T06:58:56+00:00",
    "user-id": "ocid1.user.oc1..aaaaaaaaxxxx"
  }
}

実際にStack Monitoringのホストの監視画面の「関連リソース」のタブを見ると、紐付けたプロセスセットが表示されています。

スクリーンショット 2024-02-01 18.13.17.png

追加したプロセスをさらにクリックすると、そのプロセスによって消費されているリソースなどのメトリックが表示されました。

スクリーンショット 2024-02-01 18.14.25.png

プロセスセットの登録方法は、色々あるようなので、ぜひドキュメントの方もご参照ください。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2