# Unity Licensing Server の管理

> Explore common administration tasks you can perform on the Unity Licensing Server.

Unity Licensing Server が稼動した後、実行する必要がある一般的な管理タスクを以下に示します。

## サーバーの状態のチェック##checking-the-status-of-your-server

Licensing Server v2.0 以降では、[Licensing Server Dashboard](./server-admin-dash.md) を使用してサーバーの状態をチェックできます。これを行うには、`admin` としてダッシュボードにログインし、**Overview** ページの **Server health report** (サーバーの健全性レポート) カードを確認します。また、**Download JSON** を選択して、レポートをファイルとして表示することもできます。

すべてのバージョンの Licensing Server で、CLI を使用してサーバーの状態をチェックできます。CLI を使用して状態をチェックするには、`status` コマンドを実行します。このコマンドを実行すると、以下の健全性チェックの結果が表示されます。

| 健全性チェック                     | 説明            |
| --------------------------- | ------------- |
| `HttpConfigHealthCheck`     | Kestrel の設定   |
| `ServerLicenseHealthCheck`  | ライセンスと委任の状態   |
| `LicensingHealthCheck`      | ライセンス設定と署名キー  |
| `DatabaseHealthCheck`       | データベースへの接続の状態 |
| `PluginInformationProvider` | サーバープラグイン     |

これらの健全性チェックの状態は、[詳細なテストレポート](./server-setup-test.md#extended-test-report) でも確認できます。

`status` コマンドを以下の構文で実行します。

* **Linux**: `./Unity.Licensing.Server status`
* **Windows**: `.\Unity.Licensing.Server.exe status`

出力は以下のようになります。

```bash
Server Version: 2.0.0+e81737f
Healthy
HttpConfig: Healthy
HTTP config is healthy
  [OK] Kestrel: Found config section Kestrel
  [OK] Kestrel:Endpoints:HTTP:Url: Found valid config Kestrel:Endpoints:HTTP:Url: http://10.192.192.255:80
ServerLicense: Healthy
Server license and delegation are valid
  [OK] ServerLicense::Context::FirstPhysicalAddress: 48:2a:e3:87:3b:19
  [OK] ServerLicense::Context::Platform: Win32NT
  [OK] ServerLicense::Context::ProcessorCount: 12
  [OK] ServerLicense::Context::MachineName: LAPTOP-2Q28U8QB
  [OK] ServerLicense::ContextCount: Found 4 out of 4 context values
  [OK] ServerLicense::EntitlementGroup::test-licenseServer_3573567292644_1: ... has valid server entitlements
  [OK] ServerLicense::EntitlementGroupCount: Found 1 valid server license(s)
  [OK] ServerLicense::Delegation::test-licenseServer-delegation-20200925_145658.xml: Found valid server delegation: <absolute_path>
  [OK] ServerLicense::DelegationsCount: Found 1 valid server delegations
LicensingConfig: Healthy
Licensing configuration is healthy
  [OK] licensing:licenseSigningCertLoading: Successfully loaded license signing key
  [OK] SyntaxValidation: Configuration syntax is valid
  [WARNING] licensing:defaultToolset: The defaultToolset configuration is invalid or not set. Valid toolsets are: ...
  [OK] licensing: Found config section licensing
  [OK] LicenseAclConfigValidation: License access control list configuration is valid
Plugins: Healthy
Plugins
  [OK] PluginAssemblies: 0
  [OK] RegisteredPlugins: 0
Database: Healthy
Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open. Database is writable. Sufficient disk space available.
  [OK] FloatingDbStatus: Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open. Database is writable. Sufficient disk space available.
  [OK] HistoricalDbStatus: Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open. Database is writable. Sufficient disk space available.
```

## サーバー状態の監視##monitor-server-status

Licensing Server の状態を監視するには、2 つの方法があります。

* **ダッシュボード**: Licensing Server バージョン 2.0 以降では、[ダッシュボード](./server-admin-dash.md) がサーバーを監視するための主要な方法です。管理者は、`admin` の認証情報でログインして、**Overview** ページで詳細な **サーバーの健全性レポート** を表示できます。
* **API**: すべてのバージョンで、API アクセスが望ましい、または必要な場合は `/v1/admin/status` API を使用することもできます。このエンドポイントと `admin` グループ内の API を使用するには、リクエストする IP アドレスが管理者 IP 許可リストに含まれている必要があります。この要件は、スクリプトまたは自動化によって `admin` API にアクセスするコンピューターにも適用されます。詳細については、[サーバーの詳細設定](#advanced-server-configuration) の `adminIpAllowlist` キーを参照してください。

### Licensing Server の状態##licensing-server-statuses

Licensing Server には 3 つの状態があります。

* **Healthy** (健全): サーバーがライセンスを発行でき、すべてが正常に機能していることを示します。
* **Degraded** (劣化): サーバーはライセンスは発行できますが、監視が必要な潜在的な問題があります。これらの問題はまだ重要ではありませんが、将来的に重要になる可能性があるため、注意が必要です。Degraded (劣化) 状態を引き起こす問題の例として、有効期限が迫っているサーバーライセンスが挙げられます。
* **Unhealthy** (不健全): サーバーがライセンスを発行できないことを示しています。機能を回復するために、根本的な問題への早急な対応が必要です。

## サーバー上のライセンスの更新##renewing-licenses

サブスクリプション期間の終了時に、サブスクリプションを更新する場合は、Licensing Server 上でライセンスを更新する必要があります。ライセンスを更新するには、サブスクリプションを更新 (リニューアル) した後に、[ライセンスアーカイブファイルのダウンロードとインポート](./server-setup-lic.md) の手順を繰り返します。

Licensing Server のバージョンが 1.10 より前の場合は、古い委任ファイルを手動で削除する必要もあります。詳細については、[こちらのサポート記事](https://support.unity.com/hc/en-us/articles/5041642079636-What-s-the-License-Server-renewal-procedure-) を参照してください。

> **Note:**
>
> 新しいライセンスは、現在のサブスクリプション期間が終了した後にのみ、Unity ID からダウンロードできるようになります。現在のサブスクリプション期間が終了すると、サーバー上のライセンスを更新するための 1 か月の猶予期間があります。猶予期間が終了する前にライセンスを更新しない場合、ライセンスは機能しなくなります。サービスの停止を避けるために、猶予期間中にライセンスをダウンロードして更新する必要があります。

### ライセンスリニューアルがクライアント設定に与える影響##impact-license-renewals

リニューアルされたサブスクリプションからライセンスをインポートする場合にも、[ライセンス更新がクライアント設定に与える影響](#impact-license-updates) と同じルールが適用されます。

## サーバー上のライセンス変更の適用##applying-changes

シートの追加や削除など、Floating Licensing のサブスクリプションへの変更を Unity と交渉した場合は、サブスクリプションのライセンスをサーバーにインポートするプロセスを繰り返す必要があります。[ライセンスアーカイブファイルのダウンロードとインポート](./server-setup-lic.md) のプロセスに従ってください。

### ライセンス更新がクライアント設定に与える影響##impact-license-updates

ライセンスの更新は、デフォルトのツールセットを使用するクライアントには影響しません。

ツールセットを指定するクライアントの場合は、以下のようになります。

* *バージョン 1.10 以前* のサーバーでは、ツールセットの値がサーバーライセンスの `EntitlementGroupId` と一致している必要があります。つまり、サーバーライセンスを更新するときは、それに応じて [クライアント設定](./client-config.md#supported-configuration-keys) のツールセットの値を更新する必要があります。
* *バージョン 1.11* 以降では、ライセンスの更新がツールセットの選択に影響することはありません。Licensing Server ではツールセットの増分の部分のバリエーションが許容されるため、特定のツールセットで [設定されたクライアント](./client-config.md#supported-configuration-keys) への影響はないはずです。

Licensing Server の `import` コマンドでは新しいツールセットが表示されます。新しいツールセットの IDは通常、古いツールセットと似ており、末尾の番号が増分されたものになります。例えば、最初の更新後、`LicenseServer_3573461705080_1` ツールセットは `LicenseServer_3573461705080_2` になります。

## サーバーの詳細設定##advanced-server-configuration

Unity Licensing Server の設定が正常に完了すると、[ライセンスサーバーデータのルートディレクトリ](./server-paths.md) に `licensing-server-config.json` ファイルが表示されます。

`setup` コマンドでカバーされていない設定を変更するには、`licensing-server-config.json` ファイルを編集します。以下の例には、すべての設定パラメーターが含まれています。

```json
{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "AllowedHosts": "*",
    "Kestrel": {
        "Endpoints": {
            "HTTPS": {
                "Url": "https://[* or IP address - see Warning below]:[Port]",
                "Certificate": {
                    "Path": "[Full path of HTTPS PFX certificate - see Warning below]",
                    "Password": "[Password for HTTPS PFX certificate]"
                }
            }
        }
    },
    "licensing": {
        "serverId": "[Server name, to be set by setup CLI command]",
        "licenseUsernameObfuscation": false,
        "floatingLeaseRenewIntervalInMinutes": "15",
        "floatingLicenseExpirationInMinutes": "480",
        "licenseSigningCertificatePassword": "[Encrypted password of license signing certificate]",
        "PluginsDirectory": "Plugins",
        "defaultToolset": "[default license entitlement group Id]",
        "allowBorrow": true,
        "diskSpaceWarningThresholdMegabytes": 50,
        "accessControlList": {
            "allToolsets": {
                "type": "deny",
                "bindings": {
                    "userName": ["john", "alice"],
                    "machineName": ["LAPTOP-A", "LAPTOP-B"]
                }
            }
        }
    },
    "adminIpAllowlist": "127.0.0.1;10.20.30.40;localhost",
    "serverDirectory": "[Full directory path for Licensing Server executable]",
    "serverVersion": "[Licensing Server version]"
}
```

> **Note:**
>
> `Url` キーの値は、サーバー名ではなく、アスタリスク (`*`) または IP アドレスである必要があります。有効な例としては、`https://*:443` や `https://10.20.30.40:443` などがあります。
>
> Windows の `Path` キーでは、二重引用符で囲まれた文字列でバックスラッシュを使用する場合、バックスラッシュの各インスタンスに対して 2 つのバックスラッシュを使用する必要があります。

### 詳細設定のキー##advanced-configuration-keys

以下の表は、詳細設定のキーの一覧とその使用方法を示します。

| **Key**                               | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `floatingLeaseRenewIntervalInMinutes` | サーバーがクライアントのリースを保持する期間を指定します。サーバーは、この期間が終了するまでに特定のリースの ping を受信しなかった場合、そのリースに関連付けられているライセンスを解放します。有効範囲は 5 - 60 分です。デフォルトの設定は 15 分です。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `floatingLicenseExpirationInMinutes`  | 発行されたクライアントライセンスの有効期限を指定します。有効範囲は 60 - 1440 分です。デフォルトの設定は 480 分 (8時間) です。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `licenseSigningCertificatePassword`   | PFX 形式の署名証明書の、暗号化されたパスワードです。この値は [import コマンド](./server-setup-lic.md) によって自動的に設定されます。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `PluginsDirectory`                    | サーバーがプラグインを読み取るディレクトリの完全パスです。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `defaultToolset`                      | デフォルトの製品ライセンスの識別子を格納します。サーバー上で複数の製品ライセンスが利用可能で、クライアントが特定の製品ライセンスをリクエストしない場合、サーバーはデフォルトのライセンスを割り当てます。デフォルト値が設定されていない場合、リストから 1 番目の利用可能なライセンスを割り当てます。すべての利用可能な製品識別子は[詳細なテストレポート](./server-setup-test.md#extended-test-report) を開き、`serverLicenses` セクションの `licenseEntitlementGroupId` フィールドにあります。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `allowBorrow`                         | ユーザーがフローティングライセンスをチェックアウトしてオフラインで作業できるかどうかを指定します。この値はブーリアンデータ型で指定します。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `diskSpaceWarningThresholdMegabytes`  | Licensing Server で使用可能なディスクスペースの警告しきい値を指定します。**ノート**:このキーはサーバーバージョン 2.0 から利用できます。この値はメガバイト単位で指定します。ディスクスペースがこのしきい値を下回ると、サーバーの状態が `Degraded` に変わり、管理ダッシュボードの状態のインジケーターが黄色に変わります。サーバーのディスクスペースが不足すると、クライアントコンピューターにライセンスをリースできなくなります。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `accessControlList`                   | 指定したユーザーまたはコンピューター名がライセンスをリクエストできるかどうかを制御するリストを指定します。**ノート**:このキーはサーバーバージョン 2.0 から利用できます。以下のキーを指定できます。● どのツールセットを制御するか。現在のところ、有効な値は `allToolsets` だけです● `allow` か `deny` のどちらかの値を持つ `type` キー。`allow` を指定すると、指定したユーザーまたはコンピューターのみがフローティングライセンスにアクセスできます。`deny` を指定すると、指定したユーザーまたはコンピューター以外のすべてのユーザーまたはコンピューターがライセンスにアクセスできます。● `userName` 文字列の配列、あるいは `machineName` 文字列の配列、あるいはその両方を持つ `bindings` キー。`userName` または `machineName` を少なくとも 1 つ指定する必要があります。両方の配列に値が指定されている場合、ユーザーの値がどちらかの配列に一致すれば、影響を受けます。`userName` と `machineName` の値は、大文字と小文字を区別しません。**重要**: 以下の設定ミスを避けてください。● 以下のエラーにより、サーバーは `Degraded` 状態で起動し、すべてのユーザーとコンピューターのアクセスを許可します。   ○ `allToolsets` キーを省略する。   ○ 空の `allToolsets` オブジェクトキーを指定する。   ○ `allow` キーも `deny` キーも指定しない。● `bindings` を指定せずに `allow` 値を指定すると、ユーザーもコンピューターもライセンスをリクエストできないため、サーバーは `Unhealthy` 状態で起動します。アクセス制御が原因でライセンスアクセスに失敗した場合は、サーバーログ (`Unity.Licensing.Server.log`) とクライアントログ (`Unity.Licensing.Client.log`) に記録されます。ログメッセージには、ユーザーの `userName` (ユーザー名)、`machineName` (マシン名)、およびライセンスアクセスに失敗した理由が含まれます。ログエントリーのサンプル:`API Error 403 while processing request (...)License access denied (The user (userName: jsmith, machineName:P4DSFHTE) does not have license access because the userName is on the access control list's deny bindings.)` |
| `adminIpAllowlist`                    | 管理者エンドポイントにアクセスできる IP アドレスを、セミコロン区切りの文字列で指定します。ワイルドカード文字またはサブネットはサポートされません。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

## その他のリソース##resources

* [Licensing Server Dashboard](./server-admin-dash.md)
* [Unity Floating Licensing サーバーのトラブルシューティング](./troubleshooting.md)
* [Unity Floating License Server Fundamentals](https://learn.unity.com/course/unity-floating-license-server-fundamentals) (Unity Learn コース)
