# ヘルスチェック

Keeperコネクションマネージャー (KCM) では、定期的に自動ヘルスチェックが実行されます。このヘルスチェックにより、guacdサービスへ正常に接続できるかどうか、認証サブシステムが適切に応答しているか、またKCMのライセンスがまもなく期限切れにならないかを確認します。

ヘルスチェックには、システムの状態を自動的に確認できるREST APIエンドポイントが用意されています。このエンドポイントには、`.../api/ext/healthcheck/full` に対してGETリクエストを送信することでアクセスでき、認証は不要です。

たとえば、KCMが `kcm.example.net` で稼働している場合、次のcurlコマンドを実行するとヘルスチェックの状態を取得できます。

```
curl https://kcm.example.net/api/ext/healthcheck/full
```

KCMサーバーが正常に稼働しており、ライセンスも有効な場合、以下のようなJSONレスポンスが返されます。

```
{ "licensed": true, "licenseExpiresSoon": false, "healthy": true }
```

サーバーの状態に問題がある場合や、ライセンスが無効な場合には、上記JSON内に含まれる各フラグの値が異なります。ヘルスチェックのレスポンスJSONに含まれるフラグの意味は次のとおりです。

| プロパティ名             | 説明                                                                                                                                                                                             |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| licensed           | KCMのライセンスが現在有効かどうかを示します。ライセンスが有効かつ期限内の場合はtrue、無効または期限切れの場合はfalseになります。                                                                                                                         |
| licenseExpiresSoon | KCMのライセンスは有効であるものの、まもなく期限切れになるかどうかを示します。期限切れが差し迫っていない場合はfalse、早急な更新が必要な場合はtrueになります。「まもなく」と判断する期間は設定で変更できます。デフォルトでは、ライセンスの有効期限が次の1週間以内に到来する場合に該当します。なお、licensedがfalseの場合、このプロパティはレスポンスに含まれません。 |
| healthy            | guacdサービスおよびKCMの認証システムの可用性を確認した結果に基づき、KCMサーバーが正常かどうかを示します。いずれかが応答しない場合はfalse、両方とも正常に応答している場合はtrueになります。                                                                                        |

ヘルスチェックの動作は、以下の設定プロパティ(RPMインストール時)または環境変数(Dockerインストール時)で変更できます。

| 設定プロパティ (guacamole.properties)     | 環境変数                               | 説明                                                                                                                                           |
| ---------------------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `healthcheck-interval`             | `HEALTHCHECK_INTERVAL`             | ヘルスチェックを実行する間隔 (秒) を指定します。エンドポイントへのリクエストとは独立して、この間隔に従い定期的にヘルスチェックが実行されます。エンドポイントへのアクセスでは、直近のチェック結果が返されます。デフォルトは5秒です。                         |
| `healthcheck-license-grace-period` | `HEALTHCHECK_LICENSE_GRACE_PERIOD` | ライセンスを「まもなく期限切れ」と判断するまでの日数を指定します。この期間に入ると、ライセンス自体は有効であっても、ヘルスチェックのレスポンスでは `licenseExpiresSoon` がtrueになります。デフォルトでは、ライセンスの有効期限が7日以内の場合に該当します。  |
| `healthcheck-base-uri`             | `HEALTHCHECK_BASE_URI`             | 認証サービスの可用性を確認するために、ヘルスチェックで使用するKCMサーバーのベースURIを指定します。**このURIはKCM自身からローカルネットワーク経由で到達できれば十分です。**&#x30C7;フォルトでは `http://localhost:8080` が使用されます。 |
