> 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 ワークスペースに書き込みます。これまでは 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 モジュール](/ja/zhan-kai/onboarding-realmjoin-portal/advanced-setup.md).

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

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

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

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

### 何が変わるか

{% columns %}
{% column %}

#### 以前 — Data Collector API

* ワークスペースでの認証 **共有キー** （"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。ワークスペースとそのルールにスコープが設定されています
* テーブル `RJAuditLogs_CL`, `RJOperationalLogs_CL`, `RJRunbookLogs_CL`
* RealmJoin PowerShell モジュールによって展開および維持されます
  {% 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 Rule それぞれに対して設定され、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 モジュールをインストールするための
* その `Az.Accounts`, `Az.Resources` と `Az.Automation` モジュール — RealmJoin モジュールが、現在のユーザー向けに固定されたバージョンで自動的にインストールします

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

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

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

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

コマンドは次の場所で実行します: **ローカルの PowerShell セッション** 管理用ワークステーションで — RealmJoin のオンボーディング スクリプトを実行するときと同じ方法です。

{% hint style="warning" %}
使用するのは **開いたばかりの** PowerShell セッションで、次は避けます: **Azure Cloud Shell**。RealmJoin モジュールは、次のものの正確なバージョンを必要とします: `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 のままである限り、このページには次の通知が表示されます **"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` 実際の移行を実行し、結果を RealmJoin に次を使って登録します: `-Token`.
* `Grant-RJUpdateComplianceWorkspaceAccess` は、次を構成している場合にのみ表示されます: [Update Compliance workspace](/ja/torogu/log-analytics.md#windows-update-for-business-reports)。これにより RealmJoin に *Log Analytics Reader* そのワークスペースでの権限が付与されるため、独自のアプリ登録がなくても Windows Update データは引き続き動作します。

{% hint style="warning" %}
次を確認してください: `-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**.

このページには現在、Log Ingestion API の構成 — サブスクリプション、リソース グループ、ワークスペース名、customer workspace ID、テナント ID — が読み取り専用フィールドとして表示されます。これらの設定は今後 PowerShell モジュールによって管理されるためです。次の **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 %}

## 移行後

### ひとまず旧アプリ登録は保持してください

の過去のエントリは `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 は、セッションごとに 1 回、公開済みの最新バージョンのモジュールを実行しているかを確認します。現在のバージョンをインストールし、セッションを閉じて新しいものを開いてください:

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

</details>

<details>

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

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

</details>

<details>

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

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

</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 時間）。Portal を再読み込みし **Settings → Log Analytics** 、コマンドをもう一度コピーして再実行してください。Azure の展開自体は冪等なので、2 回目の実行でも問題ありません。

</details>

<details>

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

`Grant-RJUpdateComplianceWorkspaceAccess` は、現在選択されているサブスクリプションでワークスペースを検索します。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 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.
