> 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 は、監査、運用、runbook のログをお使いの Log Analytics Workspace に書き込みます。これまでは Azure Monitor を通じて行っていました **HTTP Data Collector API**これは、workspace の共有キーで認証します。

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) Tenant にすでに構成されている場合のみです。そうでなければ移行するものはありません。— 同じ設定ページには、Log Ingestion API で Log Analytics Workspace をすぐにセットアップするコマンドがあります。監査、運用、runbook のログがご自身の Tenant に保存されるよう、セットアップすることを引き続き推奨します。
{% endhint %}

### 廃止日に何か壊れるのでしょうか？

おそらく何も起こりません。Microsoft の現在のドキュメントでは、 *緩やかな* 非推奨化: 旧エンドポイントはその日以降サポートされなくなりますが、データの受け入れは停止せず、クライアントが TLS 1.2 以上を使用している限り取り込みは動作し続けます。元の 2023 年の発表での、エンドポイントが単に利用できなくなるというより厳しい表現は、現在では古くなっています。

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

### 何が変わるか

{% columns %}
{% column %}

#### 移行前 — Data Collector API

* workspace との認証 **共有キー** （Customer Workspace Key）
* 1 つの **顧客所有の Entra ID アプリ登録** とクライアント シークレット
* テーブル `AuditLogs_CL`, `OperationalLogs_CL`, `RunbookLogs_CL`
* Portal で手動構成
  {% endcolumn %}

{% column %}

#### 移行後 — Log Ingestion API

* 認証先 **Microsoft Entra ID**、共有キーなし
* その **RealmJoin Azure Resources** Service Principal。対象は workspace とそのルールにスコープされます
* テーブル `RJAuditLogs_CL`, `RJOperationalLogs_CL`, `RJRunbookLogs_CL`
* RealmJoin PowerShell module によって展開・保守されます
  {% endcolumn %}
  {% endcolumns %}

移行では既存の **既存の** workspace を再利用するため、既存のログはそのままの場所に残ります。RealmJoin は旧テーブルと新テーブルを並行して照会するので、移行後も過去データは Portal で表示されたままです。

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

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

* その **RealmJoin Azure Resources** Entra ID Tenant 内の Service Principal（まだ存在しない場合）
* 既存の workspace に 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** workspace に対して付与され、Portal がログを照会できるようにします
  * **Monitoring Metrics Publisher** 3 つの Data Collection Rule それぞれに対して付与され、RealmJoin がそこへ書き込めるようにします

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

## 前提条件

### RealmJoin Portal では

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

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

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

### サインインするアカウントに必要な権限

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

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

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

コマンドは **ローカルの PowerShell セッションで** 管理用ワークステーション上で実行してください。RealmJoin のオンボーディング スクリプトを実行するのと同じ方法です。

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

昇格した（「管理者として実行」）セッションは不要です。モジュールは `-Scope CurrentUser`.

## 移行

{% stepper %}
{% step %}

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

移動先: **Settings → Log Analytics** (<https://portal.realmjoin.com/settings/log-analytics-configuration>).

Tenant がまだ Data Collector API を使用している間は、ページに次の通知が表示されます **『Migrate to Log Ingestion API (Recommended)』** と、すぐにコピーできるコマンド ブロックが表示されます。 **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
Grant-RJUpdateComplianceWorkspaceAccess -WorkspaceId "<WorkspaceId>" 6>&1
```

* 最初の数行で RealmJoin モジュールをインストールまたは更新し、インポートします。
* `Set-RJLogAnalyticsWorkspace` が実際の移行を実行し、その結果を `-Token`.
* `Grant-RJUpdateComplianceWorkspaceAccess` は、 [Update Compliance workspace](/ja/torogu/log-analytics.md#windows-update-for-business-reports)を構成している場合にのみ表示されます。これにより RealmJoin に *Log Analytics Reader* その workspace への権限が付与されるため、ご自身のアプリ登録なしでも Windows Update のデータが引き続き動作します。

{% hint style="warning" %}
確認してください `-ResourceGroupName`, `-WorkspaceName` および `-SubscriptionId` が存在し、 **既存の** workspace を指していることを。もし `-WorkspaceName` が欠けていると、モジュールは **新しい** 既存のものを移行する代わりに workspace を新規作成し、古いログと新しいログが別々の場所に分かれてしまいます。必要であれば不足しているパラメーターを手動で追加してください。
{% endhint %}

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

{% step %}

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

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

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

その後の展開では、Service Principal、カスタム テーブル、Data Collection Rules、ロール割り当てなど、作成される各リソースが順に報告されます。1 回の実行には通常数分かかります。

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

{% step %}

#### Portal で確認する

に戻り、 **Settings → Log Analytics** を選択してください **Refresh**.

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

選択: **構成の問題を確認する** を選択して、workspace と各 Data Collection Rule に必要な Azure 権限がすべて揃っていることを確認してください。
{% 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 %}

## 移行後

### 当面は古いアプリ登録を保持する

の過去のエントリは `AuditLogs_CL`, `OperationalLogs_CL` および `RunbookLogs_CL` 引き続き **既存のアプリ登録とクライアント シークレットで読み取られます**。Portal は旧テーブルと新テーブルを並行して照会します。

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

古いデータが [workspace の保持期間](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 は、最新公開版のモジュールを実行しているかをセッションごとに 1 回確認します。現在のバージョンをインストールし、セッションを閉じて新しく開き直してください:

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

</details>

<details>

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

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

</details>

<details>

<summary>『Need admin approval』またはサインイン時の同意エラー</summary>

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

</details>

<details>

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

作成には *Log Analytics Reader* および *Monitoring Metrics Publisher* アクセスを管理できるロールが必要です。例: *Owner*, *User Access Administrator* または *Role Based Access Control Administrator* リソース グループまたはサブスクリプション上のもの。 *Contributor* だけでは不十分です。

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

</details>

<details>

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

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

</details>

<details>

<summary>トークンが受け付けられなくなった</summary>

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

</details>

<details>

<summary>Update Compliance workspace が別のサブスクリプションにある</summary>

`Grant-RJUpdateComplianceWorkspaceAccess` は、現在選択されているサブスクリプション内で workspace を検索します。Update Compliance workspace が別の場所にある場合は、サブスクリプションを明示的に指定してください:

```powershell
Grant-RJUpdateComplianceWorkspaceAccess -WorkspaceId "<WorkspaceId>" -SubscriptionId "<SubscriptionId>" 6>&1
```

</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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
