OCI Log Analytics: ファイル・アップロードREST APIを使用したLog Analyticsへのログのプッシュ (2025/12/02)
https://blogs.oracle.com/ateam/post/oci-log-analytics-push-logs-to-log-analytics-using-file-upload-rest-api
投稿者: Amine Tarhini | Principal Cloud Architect
Oracle Log Analytics は、サービス コネクタ、管理エージェント、オブジェクト収集ルール、オンデマンド アップロード、REST API アップロードなどのさまざまなログ収集方法をサポートしています。
前回のブログでは、管理エージェントの継続的な収集方法を使用して、REST API 経由でログを公開するアプリケーションからログを「プル」するケースについて説明しました。
このブログでは、Log Analytics REST API アップロード方法を使用してアプリケーションからログを「プッシュ」するケースについて説明します。
この方法では、Log Analytics が提供する次のいずれかの API を使用できます。
- アップロードログイベントファイル
- アップロードログファイル
最初のAPIについては、こちらのドキュメント 「LogEvents APIを使用したイベントログのアップロード」で解説されています。このブログでは、プレーンテキスト以外の形式(JSONなど)のログファイルで使いやすい2番目のAPIについて説明します。ここで使用しているサンプルファイルは次のとおりです。
クリップボードにコピーされました
エラー: コピーできませんでした
クリップボードにコピーされました
エラー: コピーできませんでした
{
"logRecord": {
"eventTime": "2025-12-01T12:08:00",
"ID": "101",
"appName": "App 1",
"message": "Message 1",
"severity": "Information"
},
"additionalAttributes": {
"compName": "App 1, comp 1",
"emailSent": "N"
}
}
{
"logRecord": {
"eventTime": "2025-12-01T12:09:00",
"ID": "102",
"appName": "App 1",
"message": "Message 2",
"severity": "Warning"
},
"additionalAttributes": {
"compName": "App 1, comp 2",
"emailSent": "Y"
}
}
{
"logRecord": {
"eventTime": "2025-12-01T12:10:00",
"ID": "103",
"appName": "App 2",
"message": "Message 3",
"severity": "Critical"
},
"additionalAttributes": {
"compName": "App 2, comp 1",
"emailSent": "Y"
}
}
前提条件
テナンシーで Log Analytics を有効にし、サービスを使用するために必要な権限を持つ IAM グループに属している必要があります。詳細については、「Log Analytics とそのリソースへのアクセスを有効にする」のドキュメントを参照してください。
このブログで説明されている設定は、 Postman を使ってテストできます。動作を確認できたら、Log Analytics にログをプッシュする予定のアプリケーションから使用できます。
- Log Analyticsの名前空間をメモしておいてください。通常はテナンシー名ですが、異なる場合はOCIコンソールで確認してください。「Observability & Management」->「Log Analytics」->「Administration」->「Service Details」。
- ログデータをマッピングするLog Analyticsロググループを特定または作成します。参考: ログを保存するためのロググループの作成。ロググループのOCIDをメモしておいてください。
- Log Analytics REST API は認証が必要です。OCI ユーザー ID を使用するか、専用の「サービス アカウント」OCI ユーザーを作成することができます。いずれの場合も、使用するユーザーの API キーを作成する必要があります。参考: API 署名キーの追加。
- Postman のセットアップ:
- Postman UI で「Oracle Cloud Infrastructure REST API」を検索します。
- OCI 資格情報を使用して、「OCI 資格情報」環境変数をフォークして更新します。
- 「Logging Search API」コレクションをフォークします (Log Analytics 用のコレクションはありませんが、このコレクションを使用して Log Analytics エンドポイントに投稿できます)。
- 次のスクリーンショットのように、OCI資格情報環境を更新してください。「Logging Search API」コレクションを更新する必要はありません。
ポストマン環境
タスク
パーサーを作成する
- OCI コンソールで、「Log Analytics」->「管理」->「パーサー」に移動します。
- 「パーサーの作成」->「JSON タイプ」をクリックします。
- 名前と説明を入力します。
- 「ログ内容の例」フィールドに、ログ ファイルのサンプル レコードを貼り付けます。
- 「フィールド」タブで、ログ レコードのフィールドを Log Analytics のフィールドにマッピングします。
- ログレコードにタイムスタンプ型のフィールドが含まれている場合は、Oracle定義のフィールド「Time」にマッピングしてください。このフィールドは、ログエクスプローラーで時刻フィールドとして使用されます。レコードに時刻フィールドが含まれていない場合、ログ分析では収集時刻が使用されます。
- マッピングしたくない/マッピングする必要がないフィールドは空白のままにしておきます。
- Log Analytics によって提供される既定のフィールドのいずれかを選択するか、新しいフィールドを作成することができます。
- 「パーサー テスト」タブをクリックしてテストし、ログ レコードが正しくマップされていることを確認します。
- 「パーサーを作成」をクリックします。
パーサーを作成する
パーサーテスト
ログソースを作成する
- OCI コンソールで、「Log Analytics」->「管理」->「ソース」に移動します。
- 「ソースを作成」をクリックします。
- 名前と説明を入力します。
- 「ソースタイプ」には「ファイル」を選択します。
- 「エンティティ タイプ」では、「ホスト (Linux)」(またはログ出力アプリケーションに適した別のタイプ) を選択します。
- 「パーサー」では「特定のパーサー」を選択し、前の手順で作成したパーサーを選択します。
ログソース
Postmanでテストする
- 「Logging Search API」コレクションに新しいリクエストを作成します。
- タイプ: POST
- URI: https://loganalytics. <OCI リージョン> .oci.oraclecloud.com/20200601/namespaces/ <ログ分析名前空間> /actions/uploadLogFile?logSourceName=My+JSON+Source&filename=MyTestFile.json
- このシナリオでは、ファイルの内容をリクエストボディに直接貼り付けます。この場合、URIの「filename」パラメータは参照用です。必須パラメータなので指定する必要がありますが、任意のテキスト文字列を使用できます。
- 承認: 親から承認を継承します。
- ヘッダー: 次のヘッダーを追加します。
- コンテンツタイプ: アプリケーション/オクテットストリーム
- opc-meta-loggrpid: <ロググループのOCID>
- Body:
- 「raw」をクリックしてファイルの内容を直接貼り付けることもできます。
- または、「バイナリ」をクリックしてファイルを指定することもできます。
- 送信をクリック
- 「200 OK」と次のようなメッセージが表示されます:
{
"timeCreated": "2025-12-01T15:45:20.000Z"
}
リクエストが成功しました
ログエクスプローラーで確認
- OCI コンソールで、「Log Analytics」->「Log Explorer」に移動します。
- クエリ バーに次のクエリを入力します: 'Log Source' = 'My JSON Source'。
- ログ レコードの期間をカバーするように時間セレクターを更新します。
- ログ レコードが正常にアップロードされたことを確認します。
ログエクスプローラー
参照
コメント
コメントを投稿