25.3. Eclipse MicroProfile Health を使用したサーバー状態の監視

重要

Eclipse MicroProfile Health は、テクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。

25.3.1. MicroProfile Health SmallRye サブシステム

JBoss EAP には、microprofile-health-smallrye サブシステムを使用して Eclipse MicroProfile Health 機能を提供する SmallRye Health コンポーネントが含まれています。このサブシステムは、JBoss EAP インスタンスが想定どおりに応答しているかどうかを判断するために使用され、デフォルトで有効になっています。

重要

デフォルトでは、MicroProfile Health SmallRye サブシステムはサーバーが稼働していることのみを評価します。カスタムヘルスチェックを含める場合は、開発ガイドカスタムヘルスチェックの実装を参照してください。

Microprofile Health は、JBoss EAP をスタンドアロンサーバーとして実行している場合のみ利用できます。

25.3.2. 管理 CLI の例を使用したヘルスチェック

ヘルスチェックは管理 CLI を使用して確認できます。

  • :check 属性は、サーバーの現在の状態 (liveness) および (readiness プローブ) を取得します。
/subsystem=microprofile-health-smallrye:check
{
    "outcome" => "success",
    "result" => {
        "outcome" => "UP",
        "checks" => []
    }
}
  • :check-live 属性は liveness プローブの正常データのみを取得します。
/subsystem=microprofile-health-smallrye:check-live
{
    "outcome" => "success",
    "result" => {
        "outcome" => "UP",
        "checks" => []
    }
}
  • :check-ready 属性は readiness プローブの正常データのみを取得します。
/subsystem=microprofile-health-smallrye:check-ready
{
    "outcome" => "success",
    "result" => {
        "outcome" => "UP",
        "checks" => []
    }
}

25.3.3. 管理コンソールを使用したヘルスチェックの検証

管理コンソールには、ヘルスチェックとグローバルの結果をブール値として表示するチェックランタイム操作が含まれます。

管理コンソールからサーバーの現在の状態を取得するには、以下を実行します。

  1. Runtime タブに移動し、サーバーを選択します。
  2. Monitor の列で MicroProfile HealthView の順にクリックします。

25.3.4. HTTP エンドポイントを使用したヘルスチェックの確認

ヘルスチェックは自動的に JBoss EAP の health コンテキストにデプロイされます。

That means that in addition to being able to examine it using the management CLI, you can also obtain the current health using the HTTP endpoint. The default address for the `/health` endpoint, accessible from the management interfaces, is `http://127.0.0.1:9990/health`.
  1. HTTP エンドポイントを使用して、サーバーの現在のヘルス状態を取得するには、以下の URL を使用します。
http://HOST:9990/health

このコンテキストにアクセスすると、サーバーの正常性を示すヘルスチェックが JSON 形式で表示されます。このエンドポイントは liveness プローブと readiness プローブの両方の正常性を確認します。

  1. /health/live エンドポイントは、liveness プローブの現在のヘルスをチェックします。
http://HOST:9990/health/live
  1. /health/ready エンドポイントは、readiness プローブの現在のヘルスをチェックします。
http://HOST:9990/health/ready

25.3.5. プローブが定義されていない場合のグローバルステータス

:empty-readiness-checks-status および :empty-liveness-checks-status は、readiness プローブまたは liveness プローブが定義されていない場合のグローバルステータスを指定する管理属性です。これらの属性により、アプリケーションは、そのアプリケーションが ready/live であることをプローブが確認するまで、'DOWN' を報告できるようになります。デフォルトでは、これらの属性は 'UP' を報告します。

  1. :empty-readiness-checks-status 属性は、readiness プローブが定義されていない場合に、readiness プローブのグローバルステータスを指定します。
/subsystem=microprofile-health-smallrye:read-attribute(name=empty-readiness-checks-status)
{
    "outcome" => "success",
    "result" => expression "${env.MP_HEALTH_EMPTY_READINESS_CHECKS_STATUS:UP}"
}
  1. :empty-liveness-checks-status 属性は、liveness プローブが定義されていない場合に、liveliness プローブのグローバルステータスを指定します。
/subsystem=microprofile-health-smallrye:read-attribute(name=empty-liveness-checks-status)
{
    "outcome" => "success",
    "result" => expression "${env.MP_HEALTH_EMPTY_LIVENESS_CHECKS_STATUS:UP}"
}

readiness および liveness プローブの両方を確認する /health HTTP エンドポイントと :check 操作は、これらの属性も考慮します。

25.3.6. HTTP エンドポイントの認証の有効化

health コンテキストを設定すると、このコンテキストへのアクセスにユーザーの認証を必要とすることができます。

このエンドポイントで認証を有効にするには、以下の手順に従います。

  1. microprofile-health-smallrye サブシステムで security-enabled 属性を true に設定します。

    /subsystem=microprofile-health-smallrye:write-attribute(name=security-enabled,value=true)
  2. 変更を反映するためにサーバーをリロードします。

    reload

health エンドポイントにアクセスしようとすると、認証プロンプトが表示されるようになります。