> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/ja/torogu/log-ingestion-api-migration.md).

# Log Ingestion API への移行

Microsoft は Log Analytics HTTP Data Collector API を廃止します。RealmJoin PowerShell モジュールを使用して、RealmJoin を DCR ベースの Logs Ingestion API に移行します。

## 概要

RealmJoin は監査、運用、ランブックのログをあなた自身の Log Analytics workspace に書き込みます。これまでは Azure Monitor **HTTP Data Collector API** を通じて行っており、ワークスペースの共有キーで認証していました。

Microsoft はこの API のサポートを次の日に終了します **2026年9月14日**。後継は **Logs Ingestion API** （ *Log Ingestion API*  と呼ばれます。RealmJoin Portal では）、これは [Data Collection Rules (DCRs)](https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/data-collection-rule-overview)  と共有キーの代わりに Microsoft Entra ID 認証に基づいています。RealmJoin はこれをサポートしており、切り替えは [RealmJoin PowerShell module](/ja/zhan-kai/onboarding-realmjoin-portal/advanced-setup.md).

{% hint style="info" %}
このページは、 [Log Analytics](/ja/torogu/log-analytics.md)  がすでにあなたのテナントに構成されている場合にのみ適用されます。そうでない場合、移行するものはありません — 同じ設定ページには、Log Ingestion API 上にすぐにワークスペースをセットアップするコマンドが用意されています。監査、運用、ランブックのログがあなた自身のテナントに保存されるよう、セットアップすることを引き続き推奨します。
{% endhint %}

### 廃止日に何か壊れますか？

おそらく何も起こりません。Microsoft の現在のドキュメントでは、 *soft*  な廃止として説明されています。旧エンドポイントはその日以降サポートされなくなりますが、データの受け付けは停止せず、クライアントが TLS 1.2 以降を使用している限り取り込みは継続します。2023年の当初発表にあった、エンドポイントが単に利用不可になるというより厳しい表現は古くなっています。

それでも移行は推奨されます。旧経路はサポート対象外で、共有キーに依存し、以後の修正もありません。

### 変更点

{% columns %}
{% column %}

#### 移行前 — Data Collector API

* ワークスペースへの認証 **共有キー** （"Customer Workspace Key"）
* 成功した解決済みキーのみを含む **顧客所有の Entra ID アプリ登録** クライアント シークレット付き
* テーブル `AuditLogs_CL`, `OperationalLogs_CL`, `RunbookLogs_CL`
* Portal で手動構成
  {% endcolumn %}

{% column %}

#### 移行後 — Log Ingestion API

* で認証 **Microsoft Entra ID**、共有キーなし
* 次の **RealmJoin Azure Resources** ワークスペースとそのルールにスコープされた service principal
* テーブル `RJAuditLogs_CL`, `RJOperationalLogs_CL`, `RJRunbookLogs_CL`
* RealmJoin PowerShell module によって展開・管理されます
  {% endcolumn %}
  {% endcolumns %}

移行では既存の **既存の** ワークスペースを再利用するため、既存のログはそのまま残ります。RealmJoin は旧テーブルと新テーブルを並行して問い合わせるため、移行後も履歴データは Portal で表示され続けます。

### 移行で展開されるもの

サブスクリプションで移行コマンドを実行すると、次のものが作成されます:

* 次の **RealmJoin Azure Resources** あなたの Entra ID テナント内の service principal（まだ存在しない場合）
* 既存のワークスペース内の3つのカスタム テーブル: `RJAuditLogs_CL`, `RJOperationalLogs_CL`, `RJRunbookLogs_CL`
* テーブルごとに1つの Data Collection Rule（`dcr-rj-aud-logs-*`, `dcr-rj-op-logs-*`, `dcr-rj-rb-logs-*`）、それぞれに専用の直接取り込みエンドポイント付き
* RealmJoin に対するロール割り当ては、次の2種類だけです。それ以外はありません:
  * **Log Analytics Reader** ワークスペース上で、Portal がログを照会できるようにするため
  * **Monitoring Metrics Publisher** 3つの Data Collection Rules のそれぞれに対して、RealmJoin がそこへ書き込めるようにするため

RealmJoin はサブスクリプション内で他の権限を受け取りません。展開は冪等です — 同じコマンドを再実行しても安全で、不足しているものだけが適用されます。

## 前提条件

### RealmJoin Portal で

* Settings 領域へのアクセス権を付与するロール（`CanReadSettingsDetails`、参照: [利用可能な権限](/ja/to/permission/custom-roles/available-permissions.md)）。Settings ページは、短時間有効なオンボーディング トークンを含む移行コマンドを生成します。

### PowerShell を実行しているマシン上で

* **PowerShell 7** 以降
* へのアクセス [PowerShell Gallery](https://www.powershellgallery.com/packages/RealmJoin) RealmJoin module をインストールするための
* 次の `Az.Accounts`, `Az.Resources` と `Az.Automation` モジュール — RealmJoin module が現在のユーザー向けに固定バージョンで自動的にインストールします

### サインインに使用するアカウントの権限

* **Microsoft Entra ID:** service principal を作成する権限。たとえば *Application Administrator*, *Cloud Application Administrator* または *Global Administrator*。最初の一回だけ必要です。RealmJoin Azure Resources service principal がまだ存在しない場合です。
* **Azure サブスクリプション:** ワークスペースのリソース グループへ展開する権限 **と** そこでロール割り当てを作成するための権限。たとえば *Owner*、または *Contributor* と *User Access Administrator* / *Role Based Access Control Administrator*.
* サインインは `Connect-AzAccount` を通じて行われます。これは **Azure PowerShell**  のファーストパーティ アプリケーションを使用します。ユーザー同意を制限しているテナントでは、最初にそのアプリケーションへの管理者同意を付与する必要がある場合があります。

{% hint style="info" %}
リソース グループと Log Analytics workspace はすでに存在しているため、移行では作成されません。Portal からのコマンドには、現在のサブスクリプション、リソース グループ、ワークスペース名があらかじめ入力されています。
{% endhint %}

## コマンドの実行場所

コマンドは、 **ローカルの PowerShell セッション** で、管理者権限のある端末上から実行してください — RealmJoin のオンボーディング スクリプトを実行するのと同じ要領です。

{% hint style="warning" %}
使用するのは **新しく開いた** PowerShell セッションで、 **Azure Cloud Shell**は避けてください。RealmJoin module には、 `Az.*` モジュールの正確なバージョンが必要です。セッションに別のバージョンの `Az`  モジュールがすでに読み込まれている場合 — Cloud Shell では通常これが当てはまります — モジュールは復旧できず、バージョン競合メッセージで停止します。セッションを閉じて新しいものを開けば解決します。
{% endhint %}

昇格した（"Run as administrator"）セッションは必要ありません。モジュールは `-Scope CurrentUser`.

## 移行

{% stepper %}
{% step %}

#### Portal で Log Analytics 設定を開く

次に移動します **Settings → Log Analytics** (<https://portal.realmjoin.com/settings/log-analytics-configuration>).

テナントがまだ Data Collector API のままである限り、このページには次の通知が表示されます **「Log Ingestion API に移行（推奨）」** と、すぐにコピーできるコマンド ブロックが表示されます。 **Copy** ボタンを使ってコピーしてください。
{% endstep %}

{% step %}

#### コピーしたコマンドを確認する

コマンドは、あなた自身の値が入力された次のようになります:

```powershell
$latest = [version](Find-Module RealmJoin -Repository PSGallery -ErrorAction Stop).Version
if (-not (Get-Module -ListAvailable RealmJoin | Where-Object Version -ge $latest)) {
    Install-Module RealmJoin -Force -AllowClobber -ErrorAction Stop
}
Import-Module RealmJoin -Force
Set-RJLogAnalyticsWorkspace -ResourceGroupName "<ResourceGroupName>" -WorkspaceName "<WorkspaceName>" -SubscriptionId "<SubscriptionId>" -Token "<Token>" 6>&1
```

* 最初の行で RealmJoin module をインストールまたは更新し、それをインポートします。
* `Set-RJLogAnalyticsWorkspace`  が実際の移行を実行し、 `-Token`.

{% hint style="warning" %}
を使用して結果を RealmJoin に登録します。 `-ResourceGroupName`, `-WorkspaceName` と `-SubscriptionId` が存在し、あなたの **既存の** ワークスペース `-WorkspaceName`  が欠けている場合、モジュールは既存のものを移行する代わりに **新しい** ワークスペースを作成し、古いログと新しいログが別々の場所に分かれてしまいます。必要に応じて不足しているパラメーターを手動で追加してください。
{% endhint %}

{% hint style="info" %}
**について `6>&1`:** これらのコマンドは、PowerShell の Information ストリームに進捗を出力します。 `6>&1` リダイレクトによってその出力がコンソールに表示されます。これがないと進捗メッセージは表示されません。
{% endhint %}
{% endstep %}

{% step %}

#### コマンドを実行する

ブロックを新しい PowerShell セッションに貼り付けて実行してください。トークンの有効期限はおよそ1時間です。期限切れの場合は、設定ページを再読み込みしてコマンドをもう一度コピーしてください。

次の方法でサインインするよう求められます `Connect-AzAccount`。アカウントに複数のテナントまたはサブスクリプションへのアクセス権がある場合、モジュールが選択を求めます。

その後、展開では作成された各リソースが順次報告されます: service principal、カスタム テーブル、Data Collection Rules、ロール割り当てです。1回の実行は通常数分で完了します。

{% hint style="info" %}
まず何が起こるか見たいですか？ `-WhatIf` を `Set-RJLogAnalyticsWorkspace`  に追加すると、Azure Resource Manager の What-If プレビューが表示されます。なお、サインインと `Az` モジュールのインストールは引き続き行われます。プレビューにはその両方が必要だからです。
{% endhint %}

{% hint style="info" %}
**その後のサインアウト:** Azure へのサインインは、コマンド完了後もアクティブなままです。終わったら `Disconnect-AzAccount`  を実行して、既存のセッションからサインアウトしてください。
{% endhint %}
{% endstep %}

{% step %}

#### Portal で確認する

に戻り **Settings → Log Analytics** 、 **Refresh**.

&#x20;を選択してください。ページには現在、Log Ingestion API の構成 — サブスクリプション、リソース グループ、ワークスペース名、customer workspace ID、tenant ID — が読み取り専用フィールドとして表示されます。これらの設定は今後 PowerShell module によって管理されるためです。 **Advanced**  では、3つの Data Collection Rules のエンドポイント名、ルール名、ストリーム名を確認できます。

次を選択 **構成の問題を確認する** を選択して、必要なすべての Azure 権限がワークスペースと各 Data Collection Rule に付与されていることを確認してください。
{% endstep %}

{% step %}

#### ログが届くことを確認する

開く [Audit Log](/ja/torogu/audit-log.md)、 [Runbook Logs](/ja/zi-dong-hua/runbooks/runbook-logs.md) 、または運用ログを開き、新しいエントリが表示されることを確認してください。移行前の既存エントリも引き続き表示されます。

{% hint style="info" %}
Azure では、新しく作成されたカスタム テーブルとそのルールを利用可能にするまで数分かかります。すぐに届かなくても、少し待ってから更新してください。
{% endhint %}
{% endstep %}
{% endstepper %}

## 移行後

### ひとまず旧アプリ登録を保持する

&#x20;の履歴エントリは、引き続き `AuditLogs_CL`, `OperationalLogs_CL` と `RunbookLogs_CL` で **既存のアプリ登録とクライアント シークレット** を使って読み取られます。Portal は旧テーブルと新テーブルを並行して照会します。

{% hint style="warning" %}
移行前のログ データを引き続き見たい限り、アプリ登録を削除せず、クライアント シークレットも更新し続けてください。RealmJoin に不要になるのは **ワークスペースの共有キー** のみです。これはもはや書き込みには使用されません。
{% endhint %}

古いデータがあなたの [ワークスペースの保持期間](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/data-retention-archive?tabs=portal-1%2Cportal-2) から期限切れになったら、アプリ登録を削除できます。

### スキーマを最新に保つ

将来のリリースで RealmJoin がログ スキーマを拡張すると、設定ページにデプロイ済みの Log Analytics スキーマが古いという通知と、それを更新するコマンドが表示されます。それは **同じ** `Set-RJLogAnalyticsWorkspace` コマンドです — もう一度実行すれば、テーブルとルールがその場で更新されます。

## トラブルシューティング

<details>

<summary>「RealmJoin module is outdated - execution cannot proceed」</summary>

各 cmdlet は、セッションごとに一度、最新の公開バージョンの module を実行しているか確認します。現在のバージョンをインストールし、その後セッションを閉じて新しいものを開いてください:

```powershell
Install-Module -Name RealmJoin -Force -Scope CurrentUser
```

</details>

<details>

<summary>module のバージョン競合が報告される</summary>

セッション内に `Az.*`  RealmJoin module が固定するものとは別のバージョンの module がすでに読み込まれています。これは実行中のセッション内では修正できません — PowerShell を閉じ、新しいセッションを開いてコマンドを再実行してください。これも Azure Cloud Shell を使わない理由です。

</details>

<details>

<summary>「Need admin approval」またはサインイン中の同意エラー</summary>

サインインでは **Azure PowerShell** ファーストパーティ アプリケーションを使用します。テナントがユーザー同意を制限している場合、管理者がそのアプリケーションへの管理者同意を一度付与する必要があります。

</details>

<details>

<summary>ロール割り当ての作成中に展開が失敗する</summary>

作成には *Log Analytics Reader* と *Monitoring Metrics Publisher* 割り当てを管理できるロールが必要です。たとえば *Owner*, *User Access Administrator* または *Role Based Access Control Administrator* リソース グループまたはサブスクリプション上での *Contributor* だけでは不十分です。

すでに存在するロール割り当ては検出されてスキップされるため、権限を修正した後にコマンドを再実行しても安全です。

</details>

<details>

<summary>ワークスペースのリージョンに関するエラーで展開が失敗する</summary>

展開先はリソース グループのリージョンです。既存のワークスペースがそのリソース グループとは別のリージョンにある場合、既存ワークスペースの場所は変更できないため Azure は変更を拒否します。その場合は RealmJoin サポートにお問い合わせください。

</details>

<details>

<summary>トークンがもはや受け入れられない</summary>

生成されたコマンド内のオンボーディング トークンは短命です（約1時間）。 **Settings → Log Analytics** Portal で再読み込みし、コマンドをもう一度コピーして再実行してください。Azure の展開自体は冪等なので、2回目の実行でも問題ありません。

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.realmjoin.com/ja/torogu/log-ingestion-api-migration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
