tencent cloud

Cloud Load Balancer

動向とお知らせ
製品アップデート情報
製品に関するお知らせ
製品の説明
製品概要
製品の優位性
ユースケース
技術原理
Product Comparison
使用上の制約
Service Regions and Service Providers
購入ガイド
課金概要
課金項目
購入方法
支払い延滞の説明
製品属性の選択
クイックスタート
ドメイン名型CLBクイックスタート
CLBクイックスタート
IPv6 CLBクイックスタート
CentOSにおけるNginxのデプロイ
CentOSにおけるJava Webのデプロイ
操作ガイド
CLBインスタンス
CLBリスナー
バックエンドサーバー
ヘルスチェック
証明書管理
ログ管理
監視アラート
Cloud Access Management
従来型CLB
プラクティスチュートリアル
証明書をCLBに配置(双方向認証)
CLBのGzip有効化設定およびチェック方法の説明
HTTPS転送設定スタートガイド
クライアントリアルIPの取得方法
ロードバランサーのモニタリングアラート設定のベストプラクティス
マルチアベイラビリティーゾーンの高可用性設定の説明
バランシングアルゴリズムの選択と重みの設定の例
CLBのリスニングドメイン名に対してWebセキュリティ保護を実行するようにWAFを設定する
メンテナンスガイド
クライアントのtimewaitが多すぎる場合の対処方法
CLBのHTTPSサービスパフォーマンステスト
ストレステストに関するよくあるご質問
CLB証明書の操作権限に関するご質問
障害処理
UDPヘルスチェックの異常
API リファレンス
History
Introduction
API Category
Instance APIs
Listener APIs
Backend Service APIs
Target Group APIs
Redirection APIs
Other APIs
Classic CLB APIs
Load Balancing APIs
Making API Requests
Data Types
Error Codes
CLB API 2017
よくあるご質問
課金関連
CLB設定関連
ヘルスチェック異常調査
HTTPS関連
WS/WSSプロトコルサポート関連
HTTP/2プロトコルサポート関連
連絡先
用語集

ヘルスチェックのトラブルシューティング

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-01-04 18:41:08
Cloud Load Balancer(CLB)はヘルスチェックによってバックエンドサービスの可用性を判断します。ヘルスチェックで異常を発見した場合は、次の方法を参照してトラブルシューティングを行うことができます。
説明:
ヘルスチェックで異常が検出された場合、CLBは異常なバックエンドサービスへのトラフィック転送を停止します。
ヘルスチェックの結果、バックエンドサービスのすべてに異常が検出された場合、リクエストはすべてのバックエンドサービスに転送されます。
ヘルスチェックの原理についてはヘルスチェックをご参照ください。

バックエンドサーバーのパブリックネットワーク帯域幅のチェック

従来型アカウントタイプでは、CLBにバインドしたバックエンドCVMにパブリックネットワーク帯域幅を設定する必要があり、それを行っていなければヘルスチェック結果が異常になります。このタイプのアカウントでは帯域幅の属性がCLBではなくCVM上にあるためです。
標準アカウントタイプでは、CLBにバインドしたバックエンドCVMにはパブリックネットワーク帯域幅を設定する必要はなく、ロードバランシングサービスへの影響もありません。
説明:
アカウントタイプが確定できない場合は、アカウントタイプの判断をご参照ください。
従来型アカウントタイプのCLBではトラフィックまたは帯域幅料金は発生しません。ロードバランシングサービスによって発生したパブリックネットワークトラフィック料金は、バインドしたバックエンドCVMで課金されます。
パブリックIPが割り当てられていなくても、CVM用にパブリックネットワーク帯域幅を購入することはできます。

セキュリティグループ設定のチェック

CLBインスタンスがセキュリティグループのデフォルト許可機能を有効化しているかどうかをチェックします。有効化していない場合は、CVMのセキュリティグループ上でソースIPを許可する必要があります。お客様のCLBサービスが任意のIPからのアクセスをサポートしている場合は、セキュリティグループのインバウンドルールでソースIPを0.0.0.0/0に設定します。詳細については、CLBセキュリティグループの設定をご参照ください。

レイヤー4リスナーのチェック

説明:
TCPプロトコルでは、CLBはSYNパケットを使用してチェックを行います。
UDPプロトコルでは、CLBはpingコマンドを使用してチェックを行います。
ページでCLBバックエンドサーバーポートのヘルスステータスを確認します。ステータスが異常だった場合のトラブルシューティング方法は次のとおりです。
CLBバックエンドサーバーにセキュリティグループを設定したことでサービスに影響が生じていないかを確認します。バックエンドサーバーはセキュリティグループによってアクセス制御を行い、サービスの正常な実行を保証することができます。詳細については、バックエンドCVMのセキュリティグループ設定の説明をご参照ください。
netstatコマンドを使用して、バックエンドサーバーのポートにリスニング中のプロセスがあるかどうかをチェックします。プロセスがなければ、サービスを再起動します。

レイヤー7プロトコルのチェック

レイヤー7(HTTPプロトコル)サービスについては、あるリスナーのヘルスチェック結果に「異常」が発生した場合、次の面についてトラブルシューティングを行うことができます。
CLBのレイヤー7ヘルスチェックサービスとバックエンドCVMの間ではプライベートネットワークによって通信が行われるため、サーバーにログインして、アプリケーションサーバーポートがプライベートネットワークアドレス上で正常にリスニングしているかをチェックする必要があります。プライベートネットワークアドレスでリスニングしていない場合は、アプリケーションサーバーポートのリスニング先をプライベートネットワークにすることで、ロードバランサシステムとバックエンドCVM間の正常な通信を確保してください。 CLBのフロントエンドポートが80、CVMのバックエンドポートも80であった場合、CVMのプライベートIPは1.1.1.10となります。
Windowsシステムのサーバーが使用するコマンドは次のとおりです。
netstat -ano | findstr :80
Linuxシステムのサーバーが使用するコマンドは次のとおりです。
netstat -anp | grep :80
1.1.1.10:80または0.0.0.0:80のリスニングを確認できた場合、その設定は正常です。
バックエンドサーバーがCLBリスナーに設定したバックエンドポートを有効にしていることを確認してください。
レイヤー4CLBの場合は、バックエンドポートのtelnetに応答があれば正常です。テストはtelnet 1.1.1.10 80を使用して行うことができます。
レイヤー7CLBの場合は、HTTPステータスコードが200などの正常を表すコードでなければなりません。チェック方法は次のとおりです。
WindowsシステムではCVM内のブラウザにプライベートIPを直接入力して、正常かどうかをテストすることができます。この例ではhttp://1.1.1.10とします。
Linuxシステムではcurl -Iコマンドによって、ステータスがHTTP/1.1 200 OKかどうかを確認することができます。この例ではcurl -I 1.1.1.10とします。
バックエンドCVMの内部にファイアウォールまたはその他のセキュリティソフトウェアがないかをチェックします。このタイプのソフトウェアがロードバランサシステムのローカルIPアドレスをブロックし、ロードバランサシステムがバックエンドサーバーと通信できなくなっていることがよくあります。 サーバーのプライベートネットワークのファイアウォールが80番ポートを開放していないかをチェックします。テストはファイアウォールを一時的に無効にして行うことができます。
Windowsシステムではfirewall.cpl コマンドの入力を実行し、無効化することができます。
Linuxシステムでは/etc/init.d/iptables stopコマンドを入力して無効化することができます(CenOS 7.xシステムではsystemctl stop firewalldコマンドを実行してください)。
CLBのヘルスチェックパラメータが正しく設定されているかどうかをチェックします。ヘルスチェックに記載したヘルスチェックパラメータのデフォルト値を参照して設定を行うことをお勧めします。
ヘルスチェックで指定するチェックファイルはHTML形式のシンプルなページにし、返された結果のチェックのみに用いることをお勧めします。PHPなどの動的スクリプト言語の使用は推奨しません。
バックエンドに、高負荷によるCVMの外部へのサービス応答遅延が起こっていないかをチェックします。
HTTPリクエストメソッドをチェックします。
HEADメソッドを使用する場合、バックエンドサービスがHEADをサポートしている必要があります。
GETメソッドの場合、バックエンドサービスがGETをサポートしている必要があります。
TCPの高速リサイクル(tcp_tw_recycle)とタイムスタンプ(tcp_timestamps)を同時に有効にしていると、ヘルスチェック結果が異常になる場合があります。tcp_tw_recycleを無効にすることをお勧めします。詳細については、原因の分析をご参照ください。

ヘルスチェックのチェック頻度が高すぎる場合

コンソールでチェック用パケットを5秒に1回受信する設定にしているのに、実際にバックエンドサーバーでは1秒に1回もしくはそれ以上のヘルスチェックリクエストを受信し、ヘルスチェック頻度が高くなりすぎる場合があります。その原因は主にCLBのバックエンドヘルスチェックの実現メカニズムに関連しています。 例えば100万のClientリクエストを4台のCLBバックエンド物理マシンに分散させ、バックエンドサーバーに転送するとします。ヘルスチェックはCLBの各バックエンド物理マシン上でそれぞれ行われます。このため、CLBインスタンスで5秒に1回のチェックリクエストを設定した場合、実際のCLBバックエンドの各物理マシンがすべて5秒に1回のチェックを送信します。このときバックエンドサーバーでは5秒間に4回のチェックリクエストを受信する可能性があります。

このスキームのメリットは、高効率でチェックの正確性が高く、誤削除を防止できる点にあります。例えば、CLBインスタンスクラスターの8台の物理マシンのうち、1台が失敗と判断されても、このマシンがトラフィックを転送しなくなるだけで、残りの7台はトラフィックを正常に転送できます。

業務が負荷に敏感であり、高頻度のヘルスチェックによって正常な業務アクセスに影響が生じる可能性がある場合は、チェック間隔を広げる方法で業務への影響を低減することができます(例えばチェックを15秒に1回に設定するなど)。

1つのバックエンドサーバーが複数のCLBインスタンスにバインドされている場合、各CLBインスタンスはヘルスチェックメッセージを送信してこのサーバーが健全であるかどうかをチェックするために使用するため、ヘルスチェックの頻度が高くなります。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック