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. 管理コンソールを使用したヘルスチェックの検証
管理コンソールには、ヘルスチェックとグローバルの結果をブール値として表示するチェックランタイム操作が含まれます。
管理コンソールからサーバーの現在の状態を取得するには、以下を実行します。
- Runtime タブに移動し、サーバーを選択します。
- Monitor の列で MicroProfile Health → View の順にクリックします。
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`.
- HTTP エンドポイントを使用して、サーバーの現在のヘルス状態を取得するには、以下の URL を使用します。
http://HOST:9990/health
このコンテキストにアクセスすると、サーバーの正常性を示すヘルスチェックが JSON 形式で表示されます。このエンドポイントは liveness
プローブと readiness
プローブの両方の正常性を確認します。
-
/health/live
エンドポイントは、liveness
プローブの現在のヘルスをチェックします。
http://HOST:9990/health/live
-
/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' を報告します。
-
: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}" }
-
: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
コンテキストを設定すると、このコンテキストへのアクセスにユーザーの認証を必要とすることができます。
このエンドポイントで認証を有効にするには、以下の手順に従います。
microprofile-health-smallrye
サブシステムでsecurity-enabled
属性をtrue
に設定します。/subsystem=microprofile-health-smallrye:write-attribute(name=security-enabled,value=true)
変更を反映するためにサーバーをリロードします。
reload
health
エンドポイントにアクセスしようとすると、認証プロンプトが表示されるようになります。