機能

アクティブヘルスモニタリング

200 OKに満足しない — サービスがプロトコル、セッション、コンテンツレベルで真に動作しているかを検証します。

TR7 アクティブヘルスモニタリングは、バックエンドポートが開いているかどうかだけでなく、サービスが実際にその役割を果たしているかどうかを確認します。TCP、UDP、HTTP、HTTPS、PING、DNS、FTP、FTPS、LDAP、LDAPS、Oracleの11のプロトコルタイプが単一のヘルスチェックモデルで管理されています。 HTTPとHTTPSのチェックでは、TR7はステータスコードで止まりません;レスポンスボディのコンテンツも検証できます。基本モードではテキストマッチが実行され、JSONataモードではJSONレスポンスの内部から意味のある条件がクエリされます。TCP、UDP、FTP、Oracleシナリオでは、マルチステップフローを定義して実際のユーザーまたは実際のシステム動作をシミュレートします。 ヘルスチェックは専用のヘルスチェックインフラで実行され、メインのプロキシフローをブロックしません。インターバル、タイムアウト、必要な成功しきい値、必要な失敗しきい値、ネガティブ期待動作はすべて各サービスの感度に合わせて設定可能です。 結果:TR7は通常の「サービスが応答した」チェックを超え、プロトコル、コンテンツ、セッション、依存関係レベルで検証されたバックエンドのみをアクティブなローテーションに配置します。

11
サポートされるプロトコルタイプ — 単一の設定でTCPからOracleまで
0.5 s
最小プローブインターバル — 3600秒までの設定可能な範囲
JSONata
JSONレスポンスコンテンツをセマンティックレベルで検証するクエリ言語

200 OKは通常、サービスが健全であることではなく、応答したことを示すに過ぎません。

典型的なヘルスチェックはエンドポイントにリクエストを送り、200レスポンスを見てサービスを健全とマークします。モダンなアプリケーションではこれでは不十分です。アプリケーションのホームページが応答しながら、データベース接続が遅く、キャッシュレイヤーが壊れ、ダウンストリームの依存関係が落ちている、またはログインフローが動作しなくなっていることがあります。ロードバランサーがこの違いを見えない場合、応答はするが実際の作業はできないバックエンドへのトラフィックルーティングを続けます。

シングルステップチェックはセッションベースのプロトコルでさらに不十分です。FTP、LDAP、Oracle、またはカスタムTCPプロトコルでは、ポートが開いていることはサービスが健全であることを意味しません。実際のヘルスチェックはログイン、コマンドの送信、期待されるレスポンスの受信、必要に応じてログアウト、そしてレスポンスコンテンツの検証を行う必要があります。そうしないとサービスは到達可能に見えながら、実際のユーザー操作は失敗します。

コンテンツ検証はプレーンテキストマッチングに限定されると脆弱になります。APIは常に「OK」という単語を返しながら、JSON内の依存関係の状態、レイテンシメトリック、またはビジネスルールが失敗していることがあります。ヘルスチェックがレスポンスの意味をクエリできない場合、アプリケーションレベルの劣化が遅れて検出されます。

正しいアプローチは、プロトコルの深さ、マルチステップシナリオ、コンテンツクエリ、設定可能なrise/fallしきい値でヘルスチェックを処理することです。プローブ操作はメイントラフィックフローから分離して実行する必要があり、スローまたは停止したヘルスチェックがユーザートラフィックを遅延させないようにする必要があります。

TR7 アクティブヘルスモニタリングはこのモデルを提供します:単一の設定から11プロトコルを監視し、マルチステップシナリオを実行し、JSONataでコンテンツの意味を検証し、真に健全なターゲットのみをローテーションに維持します。

アプローチ

TR7はヘルスチェックを単一プロトコルの制御からマルチプロトコル、シナリオベース、コンテンツ検証された決定システムに変換します。

単一の設定モデルが11のプロトコルタイプをカバー

TCP、UDP、HTTP、HTTPS、PING、DNS、FTP、FTPS、LDAP、LDAPS、Oracleのチェックがすべて同じヘルスチェックオブジェクトから管理されます。選択されたcheckTypeに応じて、関連するフィールドのみが表示され、オペレーターは無関係なパラメータに煩わされません。

マルチステップシナリオが実際のプロトコル動作をシミュレート

TCP、UDP、Oracleチェックでは、send、expect、regex、waitステップを使って順序付けられた制御フローを構築します。いずれかのステップが失敗すると、プローブは失敗とマークされ、バックエンドのヘルス状態がそれに応じて更新されます。

JSONataがレスポンスボディをセマンティックレベルで検証

HTTPとHTTPSチェックでは、JSONataクエリを使用してJSONレスポンスの内部の実際の状態を読み取ります。バックエンドは200を返すだけでは健全とみなされません — 依存関係の状態、スコア、レイテンシ、またはビジネス状態などのフィールドも確認できます。

RiseとFallのしきい値がフラッピング動作をフィルタリング

バックエンドを不健全とマークするために必要な連続した失敗レスポンスの数と、ローテーションに戻すために必要な連続した成功レスポンスの数が独立して設定されます。これにより一時的なネットワーク変動がバックエンドをローテーションに継続的に出し入れすることを防ぎます。

機能

アクティブヘルスモニタリングにより多様なサービスタイプが同じエディターから定義可能、テスト可能、運用しきい値で管理可能になります。

11のプロトコルタイプが単一のヘルスチェック画面から管理される

TR7はTCP、UDP、HTTP、HTTPS、PING、DNS、FTP、FTPS、LDAP、LDAPS、Oracleのヘルスチェックをサポートします。オペレーターはOracleデータベース、LDAPディレクトリ、DNSサーバー、FTPSリポジトリ、またはHTTP APIに別々のツールを必要としません。選択されたプロトコルタイプに基づいて関連するフィールドが表示され、無関係なフィールドは非表示になります。このモデルにより異種のバックエンドにわたるヘルスチェックが標準化され、保守しやすくなります。

TCPシナリオ言語がバナー、コマンド、regexチェックをサポート

TCPチェックでは、sendText、expectText、expectRegex、waitステップを順番に実行できます。SMTPバナー、IMAP機能クエリ、Redis PING/PONG交換、MQTTレスポンス、カスタムTCPプロトコルメッセージがこのモデルでテスト可能です。単に接続を開くのではなく、実際のプロトコルダイアログが実行されます。いずれかのステップが期待された結果を生成しない場合、バックエンドは不健全とマークされます。

UDPシナリオがtext、hex、base64ペイロードで動作

UDPチェックでは、send、wait、expectText、expectRegexステップが使用できます。送信するデータはtext、hex、base64形式で定義でき、バイナリプロトコルプローブのための柔軟性を提供します。DNS、NTP、RADIUS、SIP、および類似のUDPサービスでは、ポートが開いているかどうかだけでなく、期待されるプロトコルレスポンスが検証されます。これによりUDPサービスもアクティブで意味のある方法で監視できます。

HTTPとHTTPSのチェックが実際のクライアントリクエストのように設定される

HTTP/HTTPSヘルスチェックはメソッド、URI、カスタムヘッダーリスト、リクエストボディ、仮想ホストをサポートします。APIエンドポイントをAuthorizationヘッダー、JSONボディ、またはカスタムHostヘッダーでプローブできます。許容されるステータスコードは単一の値でなくてもよく、200、204、または304をすべて健全とみなせます。この設計によりヘルスチェックが実際のアプリケーション使用に近づきます。

JSONataクエリがサービスレスポンスの実際の意味を検証

contentCheckModeをjsonataに設定すると、レスポンスボディがJSONとして評価され、JSONata式が実行されます。サービスの状態、依存関係の結果、データベースレイテンシ、またはビジネスメトリックがすべて単一の式内でチェックできます。式がtruthy結果を生成するとバックエンドは健全で、falsy結果はマークされ失敗です。JSONataエラーはログに記録され、正しくない式や予期しないレスポンス構造が可視化されます。

基本コンテンツチェックが高速でシンプルなマーカー検証を提供

JSONataを必要としないシンプルなシナリオでは、contentQueryがレスポンスボディ内でテキスト検索を実行します。「Welcome」、「UP」、「Service Ready」などのマーカー文字列、またはアプリケーション固有のテキストを素早くチェックできます。このモードはシンプルなヘルスエンドポイントやレガシーアプリケーション向けの低複雑さのソリューションを提供します。オペレーターはシナリオに基づいて基本チェックとJSONataを選択します。

LDAPとLDAPSのバインドテストが認証の健全性を測定

LDAP/LDAPSチェックはポートアクセスだけでなく実際のバインド操作もテストできます。ユーザー名とパスワードで実行されるバインドにより、ディレクトリサービスが認証レベルで検証されます。ポートが開いていてもバインドキュー、認可、またはサービスに問題がある場合はバックエンドを不健全とマークできます。これはAAMとエンタープライズアクセスフローに特に重要な可視性を提供します。

OracleチェックがSQLコマンドと期待される行数を検証

Oracleヘルスチェックは接続の詳細、ユーザー名、パスワード、シナリオステップをサポートします。executeCmdを通じてSQLが実行され、期待されるテキストまたは最小行数が検証されます。単純な接続テストではなく、実際のデータアクセスとビジネスメトリックをクエリできます。このアプローチによりデータベース可用性の問いがアプリケーションの観点から意味のあるものになります。

運用の深み

ヘルスチェックはインターバル、タイムアウト、しきい値、シナリオの構成、インスタンスID、システム内部の特殊な制御と共に動作します。

01

インターバルとタイムアウトの設定

testIntervalは0.5から3600秒まで設定可能です;デフォルトは1秒です。timeoutは0.01から3600秒まで設定可能です。積極的なタイムアウトにより迅速なフェイルオーバーが可能ですが、誤検知のリスクを増加させる可能性があり、サービスの動作に合わせて調整すべきです。

02

RiseとFallのしきい値

requiredFailureのデフォルトは2、requiredSuccessのデフォルトは3です。これらのしきい値はサービスがローテーションからどのくらい速く削除され、どのくらい慎重に戻されるかを決定します。しきい値の両側が独立して管理され、一時的な変動をフィルタリングします。

03

マルチステージ条件の構成

単一のヘルスチェックはAND/ORロジックを使用して複数のアトミックチェックを組み合わせることができます。これにより単一のプローブ結果だけでなく、複数の依存関係またはプロトコルステップを一緒に評価できます。複雑なサービスの健全性がより現実的にモデル化されます。

04

ターゲットごとのインスタンス状態

同じヘルスチェックは各バックエンドのために別々の状態を維持します。ヘルスチェックのインスタンスIDはチェックとターゲットによって差別化されます。これにより同じチェックプロファイルが複数のターゲットに適用されても、各ターゲットのヘルス履歴が独立して追跡されます。

05

ネガティブ期待モード

negateの設定により通常の成功ロジックが逆になります。このモードは特定のURLが到達不能であることが期待される、特定のレスポンスが返されないことが期待される、またはサービスパスがアクセス不能のままであることが期待されるシナリオで使用されます。通常なら成功とみなされるレスポンスは失敗として扱われ、逆もそうなります。

06

システム内部の特殊チェック

ゲートウェイモニターやクラスターIPの接続チェックなどのシステム内部ヘルスチェックは自動的に生成できます。これらのチェックはアプリケーションバックエンドだけでなく、TR7の周囲の接続とアップストリームの到達可能性状態を監視するためにも使用されます。モデルはGTM側のデータセンターチェックなどの追加チェックタイプで拡張できます。

利用シナリオ

Eコマースカートサービスの真の健全性測定

EコマースチームはHTTPチェックとJSONataを使用して、カートサービスが200を返すだけでなく、データベースレイテンシと可用性メトリックが範囲内であることも検証できます。スローまたは依存関係が劣化したバックエンドは自動的にローテーションから削除されます。

バンキングOracleクラスターでの機能チェック

銀行チームはOracleチェックを使用して接続を開くだけでなく実際のSQLクエリを実行できます。期待される行数またはクエリ結果が満たされない場合、バックエンドは不健全とマークされ、トラフィックは安全なターゲットに誘導されます。

政府ポータルでのLDAPSバインド検証

政府アプリケーションはディレクトリサービスがポートレベルだけでなく実際のバインド操作を通じて動作しているかを検証できます。ポートが開いていても認証が失敗する場合、システムはこれをヘルス問題として扱います。

テレコムDNSファームでの実際のレコードクエリ

テレコムチームはDNSチェックを使用して重要なドメインの実際のレコードクエリを実行できます。DNSポートが開いているだけでは不十分 — リゾルバーが期待される回答を生成することで健全とみなされます。

よくある質問

アクティブヘルスモニタリングでカバーされるプロトコルはどれですか?
TR7は11のプロトコルタイプをサポートします:TCP、UDP、HTTP、HTTPS、PING、DNS、FTP、FTPS、LDAP、LDAPS、Oracle。すべてのタイプが単一のヘルスチェック設定モデルから管理されます;選択されたプロトコルに関連するフィールドのみが表示されます。
JSONataコンテンツ検証はどのように機能しますか?
contentCheckModeをjsonataに設定すると、HTTPまたはHTTPSレスポンスのボディがJSONとして評価され、定義されたJSONata式が実行されます。式がtruthy結果を生成するとバックエンドは健全で、falsy結果はマークされ失敗です。エラーはログに記録されて診断を支援します。
ヘルスチェックはメイントラフィックフローにどのように影響しますか?
ヘルスチェックは別のインフラで実行され、メインのプロキシフローをブロックしません。スローまたはタイムアウトしたプローブはユーザートラフィックを遅延させません;各バックエンドのヘルス状態は独立して評価されます。
RiseとFallのしきい値は何を行いますか?
requiredFailureはバックエンドを不健全とマークする前に必要な連続した失敗レスポンスの数を設定します(デフォルト2)。requiredSuccessはローテーションに戻す前に必要な連続した成功レスポンスの数を設定します(デフォルト3)。2つのしきい値は独立して設定され、一時的なネットワーク変動によるフラッピングを軽減します。
LDAPチェックはポートアクセスのみをテストしますか?
いいえ。LDAPとLDAPSのチェックはldapAuthが有効な場合、実際のバインド操作も実行できます。ポートが開いていても、例えばクレデンシャルの問題やキューの過負荷のためにバインドが失敗した場合、バックエンドは不健全とマークされます。
ネガティブ期待モードはいつ使用されますか?
negate: trueの設定は、特定のURLが到達不能であることが期待される、特定のレスポンスが返されないことが期待される、またはサービスパスがクローズしたままであることが期待されるシナリオで使用されます。通常成功とみなされるレスポンスはこのモードでは失敗として扱われ、逆もそうなります。

バックエンドが真に健全であることを検証する

11プロトコル、マルチステップシナリオ、JSONataコンテンツ検証にわたる信頼性の高いヘルスデータにトラフィック決定を基づかせます。お客様自身のサービスでのライブセットアップをご案内します。