Object Storageに保存した監査ログをLogging Analyticsで可視化する

# はじめに
[こちらで](https://qiita.com/dingtianhongjie/items/4dc9de3f5b82ba472f46)OCIのComputeインスタンスの監査ログをObjectStorageに保存したのですが、このような感じで保存されていて、このままだと確認するのが大変です。

![スクリーンショット 2024-08-30 16.28.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/46444093-d274-dfd9-3ca7-d0f42d56da95.png)

なので、この監査ログをLogging Analyticsに取り込んで可視化したいと思います。

# 準備
ObjectStorageからLogを取り込むにはAPIまたはCLIが必要なので、設定に必要な値やリソースを確認、作成します。

## ポリシーの設定
必要に応じてマニュアルを参考にポリシーを設定します

https://docs.oracle.com/ja-jp/iaas/logging-analytics/doc/collect-logs-your-oci-object-storage-bucket.html#LOGAN-GUID-ED4B3149-7182-4052-9E4E-4CF92FBA7739

## ロググループの作成
Logging Analyticsの`管理`から、`ログ・グループの作成`をクリックします。

![スクリーンショット 2024-08-30 11.28.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/5641062c-f418-bdb9-5b97-91a39caa828c.png)

任意の名前で作成して、OCIDを確認します。

## ログソースの確認
同じ`管理`のソースの数字をクリックします

`Audit`で検索して、`OCI Audit Logs`をクリック

![スクリーンショット 2024-08-30 15.40.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/54869ec8-b560-172b-8a53-76a03e657373.png)

識別子を確認します

![スクリーンショット 2024-08-30 15.43.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/70e60f9e-22e1-4ff4-faf2-c3a8860446d5.png)

# ObjectCollectionRuleの作成
CLIで作成します。

https://docs.oracle.com/en-us/iaas/tools/oci-cli/3.47.0/oci_cli_docs/cmdref/log-analytics.html

設定に必要なパラメータをJSONファイルで作成します。

```create.json
{
    "name": "<Rule_Name>",
    "compartmentId": "<Compartment_OCID>",
    "osNamespace": "<Namespace>",
    "osBucketName": "<Bucket_Name>",
    "logGroupId": "<Log_Group_OCID>",
    "logSourceName": "<Log_Source>"
    "collectionType": "HISTORIC",
    "poll-since": "2024-08-30T00:00:00.000Z",
    "poll-till": "2024-08-30T04:00:00.000Z"
}
```

`name`から`logSourceName`までが必須です。
`collectionType`のデフォルトは`LIVE`で、ログが継続的に収集されます。
今回はテスト用途なので、`HISTORIC`にして、とりあえず4時間分だけログを取り込んでいます。
`poll-since`と`poll-till`は、`HISTORIC`の場合必須です。

作成したJSONファイルを指定して、ObjectCollectionRuleを作成します。

```
% oci log-analytics object-collection-rule create --from-json file://create.json --namespace-name <namespace_name>
{
  "data": {
    "char-encoding": null,
    "collection-type": "HISTORIC",
    "compartment-id": "ocid1.tenancy.oc1..aaaaaaaaltz5yo7vxxxxxx",
    "defined-tags": {
      "Oracle-Tags": {
        "CreatedBy": "default/aa@bb.jp",
        "CreatedOn": "2024-08-30T06:27:54.902Z"
      }
    },
    "description": null,
    "entity-id": null,
    "freeform-tags": {},
    "id": "ocid1.loganalyticsobjectcollectionrule.oc1.ap-tokyo-1.amaaaaaaxxxxxxxxxxxxxxxxxxx",
    "is-enabled": true,
    "lifecycle-details": null,
    "lifecycle-state": "ACTIVE",
    "log-group-id": "ocid1.loganalyticsloggroup.oc1.ap-tokyo-1.amaaaaaaejei3xxxxxxxxxxxxxxxxxx",
    "log-set": null,
    "log-set-ext-regex": null,
    "log-set-key": null,
    "log-source-name": "omc_ociAuditLogSource",
    "name": "instanceAuditLog",
    "object-name-filters": null,
    "os-bucket-name": "instance-audit-log",
    "os-namespace": "xxxxxxxxxxx",
    "overrides": null,
    "poll-since": "2024-08-30T00:00:00.000Z",
    "poll-till": "2024-08-30T04:00:00.000Z",
    "time-created": "2024-08-30T06:27:54.931000+00:00",
    "time-updated": "2024-08-30T06:27:54.931000+00:00",
    "timezone": null
  },
  "etag": "518415a4991688c2b5c63e94a8acaa739069089915b2edb984a2e8c83d673591"
}
```

`namespace-name`はLogging Analyticsのnamespaceのようなのですが、以下で確認したら、ObjectStorage namespaceと同じでした

```
% oci log-analytics namespace list --compartment-id $C
{
  "data": {
    "items": [
      {
        "compartment-id": "ocid1.tenancy.oc1..aaaaaaaaltz5yxxxxxxxxxxxxxxx",
        "is-data-ever-ingested": true,
        "is-log-set-enabled": false,
        "is-onboarded": true,
        "namespace-name": "xxxxxxxxxxx"
      }
    ]
  }
}
```

# 確認

ログエクスプローラーを開くとこのような画面が確認できます

![スクリーンショット 2024-08-30 16.56.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492530/ba5b26dd-1e5d-5543-3aa1-5aec3598303c.png)