Catalyst 6500 シリーズ スイッチ コンテント スイッチング モジュール インストレーション コンフィギュレーション ノート Software Release 4.1(2)
ヘルス モニタリングの設定
ヘルス モニタリングの設定
発行日;2012/01/07 | ドキュメントご利用ガイド | ダウンロード ; この章pdf | フィードバック

目次

ヘルス モニタリングの設定

ヘルス モニタリング用プローブの設定

プローブ コンフィギュレーション コマンド

HTTPプローブの設定

ICMP プローブの設定

UDP プローブの設定

TCPプローブの設定

FTP、SMTP、およびTelnetプローブの設定

DNS解決要求の指定

帯域内ヘルス モニタリングの設定

帯域内ヘルス モニタリングの概要

帯域内ヘルス モニタリングの設定

HTTP リターン コード チェックの設定

HTTP リターン コード チェックの概要

HTTP リターン コード チェックの設定

ヘルス モニタリングの設定

この章では、CSM 上でヘルス モニタリングを設定する方法について説明します。この章の構成は次のとおりです。

「ヘルス モニタリング用プローブの設定」

「帯域内ヘルス モニタリングの設定」

「HTTP リターン コード チェックの設定」

ヘルス モニタリング用プローブの設定

実サーバへのヘルス プローブを設定すると、実サーバが正しく動作しているかどうかを調べることができます。 実サーバのヘルスは、次のように分類されます。

アクティブ-実サーバは適切に応答します。

サスペクト-実サーバに到達できないか、または無効な応答が戻ります。 プローブは再試行されます。

失敗-指定回数だけ続けて再試行したあと、実サーバは応答に失敗します。 失敗という情報が通知されると、CSMはそれに従って着信接続を調整します。 サーバが再びアクティブになるまで、プローブは失敗状態のままです。

CSMは、実サーバのモニタに使用されるプローブをサポートします。 プローブを設定する手順は、次のとおりです。

プローブ サブモードを開始します。

プローブに名前を付けます。

プローブのタイプを指定します。

CSM は FTP、DNS、HTTP など、実サーバをモニタするさまざまなプローブ タイプをサポートします。


) デフォルトでは、CSM 上にプローブは設定されていません。


ヘルス プローブ モニタリング用に CSM を設定する場合は、次の動作を含む多層的アプローチを使用することができます。

アクティブ プローブ-これらのプローブを定期的に実行します。 Internet Control Message Protocol(ICMP)、TCP、HTTP、およびその他の事前に定義されたヘルス プローブはこのカテゴリに入ります。 スクリプト化されたヘルス プローブもここに入ります。 アクティブなプローブは、セッションのセットアップまたはシステムのティアダウンに影響しません。

パッシブ モニタリング(帯域内ヘルス モニタリング)-サーバのサービスを停止するなどの致命的なエラーに関するセッションをモニタします。 致命的なエラーは、サーバからリセット(RST)されたか、またはサーバから応答がない可能性があります。 これらのヘルス チェックは、フルセッション レートで動作し、サーバの故障を迅速に認識します。

パッシブ HTTP エラー コード チェック(帯域内応答解析)-CSM は、HTTP リターン コードを解析し、サーバが使用不可になる「サービス利用不可」のようなコードを監視します。 パッシブHTTPエラー コード チェックは、セッションのパフォーマンスにはほとんど影響しません。

プローブを用意するには、プローブ サブモードでプローブに名前を付け、プローブ タイプを指定して、プローブを設定する必要があります。

プローブを設定してから、プローブをサーバ ファームに関連付けて、有効にする必要があります。 サーバ ファーム内のすべてのサーバは、このサーバ ファームに関連付けられたプローブ タイプのプローブを受信します。 1つのサーバ ファームに1つまたは複数のプローブ タイプを関連付けることができます。

実サーバまたは仮想サーバの設定時にポート番号を割り当てる場合は、プローブの設定時にポート番号を指定する必要はありません。 プローブは実サーバまたは仮想サーバ コンフィギュレーションからポート番号を引き継ぎます。

ヘルス プローブ コンフィギュレーションでオプションのヘルス プローブ ポート機能を使用し、プローブにポートを明示的に指定することによって、実サーバまたは仮想サーバのポート情報を変更できます。 この機能を使用すると、実サーバまたは仮想サーバでポートが指定されていない場合に、ヘルス プローブが使用するポートを設定できます。

プローブを設定してから、サーバ ファームに 1 つまたは複数のプローブを関連付けます。 サーバ ファーム内のすべてのサーバは、このプールに関連付けられたプローブ タイプのプローブを受信します。


) 対応するサービスが動作していない実サーバを含むサーバ ファームに特定タイプのプローブが関連付けられている場合に、そのタイプのプローブを受信すると、実サーバはエラー メッセージを送信します。 その結果、CSM は実サーバを失敗ステートにして、サーバ ファームからその実サーバを使用できないようにします。


プローブのタイプおよび名前を指定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-module-csm)# probe probe-name { http | icmp | telnet | tcp | ftp | smtp | dns | kal-ap-upd }

プローブのタイプおよび名前を指定します12

probe-nameは、設定中のプローブの名前を表す最大15文字の文字列です。

httpを指定すると、デフォルト設定のHTTPプローブが作成されます。

icmpを指定すると、デフォルト設定のICMPプローブが作成されます。

telnetを指定すると、デフォルト設定のTelnetプローブが作成されます。

tcp を指定すると、デフォルト設定のTCPプローブが作成されます。

ftp を指定すると、デフォルト設定のFTPプローブが作成されます。

smtp を指定すると、デフォルト設定のSMTPプローブが作成されます。

dnsを指定すると、デフォルト設定のDNSプローブが作成されます。

kal-ap-upd を指定すると、GSLB ターゲット プローブが作成されます。

ステップ 2

Router(config-slb-probe-tcp)# port port-number: 1-MAXUSHORT

プローブ用のオプション ポートを設定します3

ステップ 3

Router# show module csm slot probe

すべてのプローブおよびその設定を表示します。

ステップ 4

Router# show module csm slot tech-support probe

プローブの統計情報を表示します。

1.設定からプローブ タイプを削除するには、no形式を使用します。

2.パフォーマンス アラートを受信した場合、帯域内ヘルス モニタリングの方が、よりスケーラブルなソリューションになります。

3.portコマンドは、ICMPまたはPINGヘルス プローブには使用できません。


) プローブの名前およびタイプを指定すると、最初にデフォルト値が設定されます。 デフォルト設定を変更するには、プローブ コンフィギュレーション コマンドを入力します。


次に、プローブを設定する例を示します。

Router(config-module-csm)# probe probe1 tcp
Router(config-slb-probe-tcp)# interval 120
Router(config-slb-probe-tcp)# retries 3
Router(config-slb-probe-tcp)# failed 300
Router(config-slb-probe-tcp)# open 10
Router(config-slb-probe-tcp)# serverfarm sf4
Router(config-slb-sfarm)# real 10.1.0.105
Router(config-slb-real)# inservice
Router(config-slb-real)# probe probe1
Router(config-slb-sfarm)# vserver vs4
Router(config-slb-vserver)# virtual 10.1.0.84 tcp 80
Router(config-slb-vserver)# serverfarm sf4
Router(config-slb-vserver)# inservice
Router(config-slb-vserver)# end
 

) タイムアウト値には open とreceive の2種類があります。 open のタイムアウトでは、接続のオープンを待機する秒数(SYN の送信後、SYN ACK を待機する秒数)を指定します。 receive のタイムアウトでは、データの受信を待機する秒数(GET/HEAD要求の送信後、HTTP 応答を待機する秒数)を指定します。 TCP プローブは、オープンするとデータを送信しないでただちにクローズされるので、receive のタイムアウトは使用しません。


プローブ コンフィギュレーション コマンド

次に示すコマンドはすべてのプローブ タイプに共通です。

 

コマンド
目的
Router(config-slb-probe)# interval seconds

プローブとプローブの間隔(前のプローブの終了から次のプローブの開始までの期間)を秒単位で設定します45

範囲 = 2 ~ 65535 秒

デフォルト = 120秒

Router(config-slb-probe)# retries retry-count

サーバに接続できないとマークするまでに行われるプローブの回数を設定します1

範囲 = 0 ~ 65535

デフォルト = 3

Router(config-slb-probe)# failed failed-interval

サーバに接続できないとマークするまでにヘルス チェックを行う間隔を設定します。 この時間は秒単位です1

範囲 = 2 ~ 65535

デフォルト = 300秒

Router(config-slb-probe)# open open-timeout

TCP接続を待機する最大時間を設定します。 このコマンドはTCP以外のヘルス チェック(ICMPまたはDNS1)には使用しません。

範囲 = 1 ~ 65535

デフォルト = 10秒

4.デフォルトの設定に戻すには、このコマンドのno形式を使用します。

5.パフォーマンス アラートを受信した場合、帯域内ヘルス モニタリングの方が、よりスケーラブルなソリューションになります。

HTTPプローブの設定

HTTPプローブは実サーバに対するHTTP接続を確立し、HTTP要求を送信して、応答を確認します。 probe probe-name httpコマンドを実行すると、HTTPプローブ コンフィギュレーション サブモードが開始されます。

HTTPプローブを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-module-csm)# probe probe-name http

HTTPプローブを設定して、HTTPプローブ サブモードを開始します1

ステップ 2

Router(config-slb-probe-http)# credentials username [ password ]

HTTP SLBプローブの基本認証値を設定します6

ステップ 3

Router(config-slb-probe-http)# expect status min-number [ max-number ]

HTTPプローブから戻ることが予測されるステータス コードを設定します。 expect statusコマンドを一度に1つずつ入力することによって、複数のステータス範囲を設定できます1

min-number-max-numberを指定しなかった場合、この値が単一ステータス コードになります。 最大数を指定した場合、この値がステータス コード範囲の下限になります。

max-number-ステータス コード範囲の上限です。 デフォルト値は 0~999(サーバからの応答はいずれも有効)です。


) 上限を指定しなかった場合、このコマンドには単一の値(min-number)が設定されます。 最小数と最大数の両方を指定した場合、このコマンドには範囲が設定されます。


ステップ 4

Router(config-slb-probe-http)# header field-name [ field-value ]

HTTPプローブのヘッダー フィールドを設定します。 複数のヘッダー フィールドを指定できます1

ステップ 5

Router(config-slb-probe-http)# request [ method [ get | head ]] [ url path ]

HTTPプローブで使用する要求メソッドを設定します1

get-HTTP get 要求メソッドは、このページを取得するようにサーバに指示します。

head-HTTP head要求メソッドは、このページのヘッダーだけを取得するように、サーバに指示します。

url-最大 1275 文字の文字列で URL パスを指定します。デフォルトでは「/」です。


) CSM がサポートしているのは、get および head 要求メソッドだけです。post およびその他のメソッドはサポートしません。 デフォルトのメソッドはgetです。


6.デフォルトの設定に戻すには、このコマンドのno形式を使用します。

ICMP プローブの設定

ICMP プローブは ICMP エコー(ping など)を実サーバに送信します。 probe icmpコマンドを入力すると、ICMPプローブ コンフィギュレーション モードが開始されます。 一般的なprobeコマンドはすべてサポートされていますが、openコマンドはサポートされずに無視されます。

UDPプローブを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-module-csm)# probe probe-name icmp

ICMPプローブを設定して、ICMPプローブ サブモードを開始します7

ステップ 2

Router(config-slb-probe-icmp)# interval

サーバに接続を行うプローブ間、およびプローブ間の待機間隔を設定します。

ステップ 3

Router(config-slb-probe-icmp)# receive

サーバからの応答を受信する TCP 接続時間を指定します。

ステップ 4

Router(config-slb-probe-icmp)# retries

サーバに接続できないとみなされるまでに行われる再試行回数を制限します。

7.デフォルトの設定に戻すには、このコマンドのno形式を使用します。

UDP プローブの設定

ICMP がないと UDP プローブはサーバのダウンまたはサーバの切断を検出できないため、UDP プローブには ICMP が必要です。 UDP をスーパーバイザ エンジンに関連付けて、ICMP を設定する必要があります。

UDP プローブは Raw UDP プローブのため、CSM はプローブの応答ペイロードに単一のバイトを使用します。 CSM は UDP アプリケーションから意味のある応答がくることを想定していません。 CSM は ICMP 到達不能メッセージを使用して、UDP アプリケーションが到達可能かどうかを判断します。 受信タイムアウトで ICMP 到達可能の応答がない場合でも、CSM はプローブが正常と判断します。 実サーバのIPインターフェイスがダウンまたは切断された場合、UDP プローブは自身で UDP アプリケーションが到達不能になっていることを判断できません。 指定のサーバの UDP プローブのほかに ICMP プローブを設定する必要があります。

CSM は高レベル UDP アプリケーションとして DNS プローブを使用します。 また、TCL スクリプトを使用してこのプローブを設定することもできます。 第 10 章「CSM の TCL スクリプトの使用」 を参照してください。

UDP プローブを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-module-csm)# probe probe-name udp

UDPプローブを設定して、UDPプローブ サブモードを開始します8

ステップ 2

Router(config-slb-probe-icmp)# interval

サーバに接続を行うプローブ間、およびプローブ間の待機間隔を設定します。

ステップ 3

Router(config-slb-probe-icmp)# receive

サーバからの応答を受信する TCP 接続時間を指定します。

ステップ 4

Router(config-slb-probe-icmp)# retries

サーバに接続できないとみなされるまでに行われる再試行回数を制限します。

8.デフォルトの設定に戻すには、このコマンドのno形式を使用します。

TCPプローブの設定

TCP プローブは接続を確立および解除します。 probe tcpコマンドを入力すると、TCPプローブ コンフィギュレーション モードが開始されます。 一般的なprobeコマンドはすべてサポートされます。

TCPプローブを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-module-csm)# probe probe-name tcp

TCPプローブを設定して、TCPプローブ サブモードを開始します9

ステップ 2

Router(config-slb-probe-icmp)# interval

サーバに接続を行うプローブ間、およびプローブ間の待機間隔を設定します。

ステップ 3

Router(config-slb-probe-icmp)# retries

サーバに接続できないとみなされるまでに行われる再試行回数を制限します。

9.デフォルトの設定に戻すには、このコマンドのno形式を使用します。

FTP、SMTP、およびTelnetプローブの設定

FTP、SMTP、または Telnet プローブは実サーバへの接続を確立し、アプリケーションからグリーティングが届いたかどうかを検証します。 probe(ftp、smtp、またはtelnet)コマンドを実行すると、対応するプローブ コンフィギュレーション モードが開始されます。 一般的なprobeコマンド オプションはすべてサポートされます。 一度に1つずつコマンドを実行することによって、複数のステータス範囲を指定できます。

FTP、SMTP、またはTelnetプローブから戻ることが予測されるステータス コードを設定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-module-csm)# probe probe-name [ ftp | smtp | telnet ]

FTP、SMTP、またはTelnetプローブを設定し、FTP、SMTP、またはTelnetプローブ サブモードを開始します10

ステップ 2

Router(config-slb-probe-icmp)# interval

サーバに接続を行うプローブ間、およびプローブ間の待機間隔を設定します。

ステップ 3

Router(config-slb-probe-icmp)# receive

サーバからの応答を受信する TCP 接続時間を指定します。

ステップ 4

Router(config-slb-probe-icmp)# retries

サーバに接続できないとみなされるまでに行われる再試行回数を制限します。

10.デフォルトの設定に戻すには、このコマンドのno形式を使用します。

DNS解決要求の指定

DNSプローブは実サーバにドメイン名解決要求を送信し、戻されたIPアドレスを確認します。 probe dns コマンドを実行すると、DNSプローブ コンフィギュレーション サブモードが開始されます。 一般的なprobeコマンドはすべてサポートされますが、openはサポートされずに無視されます。

ドメイン名解決要求を指定する手順は、次のとおりです。

 

コマンド
目的

ステップ 1

Router(config-module-csm)# probe probe-name dns

DNSプローブを設定して、DNSプローブ サブモードを開始します11

ステップ 2

Router(config-slb-probe-dns)# [ failed | interval | retries | receive ]

DNS接続を行うためのプローブ間の待機間隔、サーバから応答を受信する時間、および実サーバに接続できないと見なされるまでに行われる再試行回数の上限を指定します。

11.デフォルトの設定に戻すには、このコマンドのno形式を使用します。

帯域内ヘルス モニタリングの設定

ここでは、帯域内ヘルス モニタリングについて説明します。

「帯域内ヘルス モニタリングの概要」

「帯域内ヘルス モニタリングの設定」

帯域内ヘルス モニタリングの概要

効率的な接続バランスを設計するには、CSM はコンフィギュレーションに含まれているすべての実サーバの状態をたえずモニタしていなければなりません。 帯域内ヘルス モニタリング機能を各サーバ ファームに設定し、サーバの状態をモニタします。 サーバ ファームごとに設定されたパラメータは、そのサーバ ファーム内の個々の実サーバに適用されます。 実サーバが到達不能とみなされるまでに許容される、セッションの異常終了回数を設定できます。また、実サーバをサーバ ファームに再び組み込み、接続を試行するまでの待機時間も指定できます。

この機能は、ヘルス プローブと連動します。 あるサーバにヘルス プローブと帯域内ヘルス モニタリングを両方とも設定した場合、サーバ ファーム内の実サーバでサービスを維持するには、両方のヘルス チェック セットを実行する必要があります。 どちらか一方のヘルス チェック機能でサーバの停止が検出された場合、CSMはロードバランスの対象としてそのサーバを選択しません。

帯域内ヘルス モニタリングの設定

帯域内ヘルス モニタリングを設定する手順は、次のとおりです。


ステップ 1 サーバ ファームが設定されていることを確認します (「サーバ ファームの設定」を参照)。

ステップ 2 serverfarm サブモード コマンドを入力し、各サーバ ファームに対して帯域内ヘルス モニタリングをイネーブルにします。

Router(config-module-csm)# serverfarm serverfarm-name
Router(config-slb-sfarm)# health retries count failed seconds
 


 


) retriesでは、実サーバをサービスから除外するまでにCSMが許容する、セッションの異常終了回数を指定します。 failedでは、帯域内ヘルス チェックによってサービスから除外された実サーバへの接続を再試行するまでに、CSMが待機する時間を秒単位で指定します。


次に、geoというサーバ ファームに対して帯域内ヘルス モニタリングをイネーブルにする例を示します。

Router(config-module-csm)# serverfarm geo
Router(config-slb-sfarm)# health retries 43 failed 160
 

HTTP リターン コード チェックの設定

ここでは、HTTP リターン コードのチェック機能について説明します。

「HTTP リターン コード チェックの概要」

「HTTP リターン コード チェックの設定」

HTTP リターン コード チェックの概要

リターン エラー コード チェック(リターン コード解析)機能は、サーバがいつWebページを正しく返さなかったかを調べる場合に使用します。 この機能は、CSM のパケットを調べる機能を拡張し、HTML リターン コードを解析し、サーバが戻したリターン コードに作用します。

CSM から HTTP 要求を受信したサーバは、HTTP リターン コードを使用して応答します。 CSM はこの HTTP リターン エラー コードを使用することによって、サーバの可用性を判別できます。 特定のリターン コードを受け取った場合に、サーバを使用停止にするように CSM を設定できます。

RFC 2616 で、定義済みコードのリスト(100~599)が指定されています。リターン コードをチェックする場合、一部のコードは特に有効です。 たとえば、404というリターン コードは、URL が見つからなかったという定義です。これは、ユーザが URL を正しく入力しなかった結果である可能性があります。 エラー コード 404 は、不良ディスク ドライブが原因で Web サーバが要求されたデータを見つけられなかった場合など、Web サーバのハードウェアの問題を意味することもあります。 この場合、Web サーバそのものはアクティブですが、ディスク ドライブが故障しているので、要求されたデータを送信できません。 サーバがデータを返せないかぎり、そのサーバには今後、データ送信を要求しないでおくべきです。 リターン コード チェックで使用するエラー コードを特定する場合は、RFC 2616 を参照してください。

HTTP リターン コード チェックを設定すると、CSM はロードバランス対象のすべての HTTP 接続から送信されたHTTP 応答をモニタし、実サーバごとにリターン コードの発生を記録します。 CSM はリターン コードのカウントを保存します。 リターン コードがスレッシュホールドに達した場合、CSM は syslog メッセージを送信したり、またはサーバをサービスから除外したりすることができます。

デフォルトの動作、リターン コードのカウント、syslog メッセージの送信を適用できます。またはサービスから実サーバを削除できます。 これらの動作または一連のこれらの動作をサーバ ファームに適用できます。 1 つの仮想グループを複数のサーバ ファームにバインドすることによって、複数のサーバ ファームで 1つのリターン コード サーバ ファーム ポリシーを再利用することもできます。


) 仮想サーバにHTTP リターン コード チェックを設定すると、その仮想サーバのパフォーマンスが低下します。 リターン コードの解析をイネーブルにした場合、あらゆる HTTP サーバ応答でリターン コードを解析しなければなりません。


HTTP リターン コード チェックの設定

リターン エラー コード チェックを設定するには、サーバ ファームの属性を設定し、サーバ ファームをリターン コード マップと関連付ける必要があります。

リターン コード チェックを設定する手順は、次のとおりです。


ステップ 1 HTTP仮想サーバが設定されていることを確認します (「リダイレクト仮想サーバの設定」を参照)。

ステップ 2 マップ リターン コード コマンドを入力してリターン コードのマッピングをイネーブルに設定し、リターン コード マップ サブモードを開始します。

Router(config-module-csm)# map name retcode
 

ステップ 3 リターン コードの解析を設定します。

Router(config-slb-map-retcode)# match protocol http retcode min max action [count | log | remove] threshold [reset seconds]
 

マップで必要とされる照合件数を設定できます。

ステップ 4 リターン コード マップをサーバ ファームに割り当てます。

Router(config-slb-sfarm)# retcode-map name
 


 

次に、リターン エラー コード チェックをイネーブルにする例を示します。

Router(config-module-csm)# map httpcodes retcode
Route(config-slb-map-retcode)# match protocol http retcode 401 401 action log 5 reset 120
Route(config-slb-map-retcode)# match protocol http retcode 402 415 action count
Route(config-slb-map-retcode)# match protocol http retcode 500 500 action remove 3 reset 0
Route(config-slb-map-retcode)# match protocol http retcode 503 503 action remove 3 reset 0
Route(config-slb-map-retcode)# exit
Router(config-module-csm)# serverfarm farm1
Router(config-slb-sfarm)# retcode-map httpcodes
Router(config-slb-sfarm)# exit
Router(config-module-csm)# end