ネットワーク トラフィックの特定のタイプの健全性チェック パラメータを定義するには、サービス モニターを作成します。サービス モニターとプールを関連付けると、サービス モニターのパラメータに従ってプール メンバーが監視されます。
サポートされているモニター タイプは、ICMP、TCP、UDP、HTTP、HTTPS、DNS、MSSQL、LDAP です。
手順
- vSphere Web Client にログインします。
- [ネットワークとセキュリティ (Networking & Security)] > [NSX Edge] の順にクリックします。
- NSX Edge をダブルクリックします。
- [管理 (Manage)] > [ロード バランサ (Load Balancer)] > [サービス モニタリング (Service Monitoring)] の順にクリックします。
- [追加] をクリックします。
- サービス モニターの [名前] を入力します。
[間隔]、[タイムアウト]、[最大試行回数] は、すべてのタイプの健全性チェックで共通のパラメータです。
- サーバをテストする [間隔] を秒単位で入力します。
この間隔(秒単位)は、モニターがバックエンド サーバに要求を送信する期間となります。
- [タイムアウト] 値を入力します。それぞれの健全性チェックで、サーバからの応答を受信できるのは、このタイムアウトの値の時間(秒単位)以内となります。
- [最大試行回数] を入力します。この値は、サーバが切断された判断する前にサーバを検証する回数です。
たとえば、[間隔] を 5 秒、[タイムアウト] を 15 秒に設定し、[最大試行回数] を 3 回にすると、NSX ロード バランサは 5 秒ごとにバックエンド サーバを検証します。それぞれの検証で、15 秒以内に予期した応答がサーバから返された場合、健全性チェックの結果は [OK] になります。そうでない場合、結果は [重大] になります。最近実行した 3 回の健全性チェックの結果がすべて [切断] の場合、そのサーバは [切断] とマークされます。
- [タイプ] ドロップダウン メニューから、サーバに健全性チェック要求を送信する方法を選択します。サポートされているモニター タイプは、ICMP、TCP、UDP、HTTP、HTTPS、DNS、MSSQL、LDAP です。事前定義された 3 つのモニターである default_tcp_monitor、default_http_monitor、および default_https_monitor が、システムに組み込まれています。
- モニター タイプとして [ICMP] を選択する場合、他のパラメータは適用されません。他のパラメータは空のままにします。
- モニターのタイプに [TCP] を選択した場合は、[送信]、[受信]、[エクステンション] の 3 つのパラメータを追加で設定できます。
- [送信](オプション):接続の確立後にバックエンド サーバに送信される文字列です。 有効な文字列の長さは最大 256 文字です。
- [受信](オプション):一致対させる文字列を入力します。この文字列は、応答のヘッダであるか、または本文内にあります。受信した文字列がこの定義と一致する場合、サーバが稼動状態と見なされます。
- [エクステンション]:詳細なモニター パラメータを key=value ペアとして [エクステンション] セクションに入力します。
たとえば、エクステンションを warning=10 と指定すると、サーバが 10 秒以内に応答しない場合に、ステータスが警告に設定されます。
すべてのエクステンション項目を、キャリッジ リターン文字で区切る必要があります。
表 1. TCP プロトコルのエクステンション 監視の拡張機能 説明 escape send 文字列または quit 文字列で、\n、\r、\t、または \ を使用できます。send オプションまたは quit オプションの前に指定する必要があります。デフォルト:send には何も追加されません。quit の最後に \r\n が追加されます。 all すべての expect 文字列がサーバ応答に含まれている必要があります。デフォルトは any です。 quit=STRING 接続の正常な終了を開始するために、サーバに送信する文字列。 refuse=ok|warn|crit OK、警告、重大ステータスで TCP 拒否を受け入れます。デフォルトは crit です。 mismatch=ok|warn|crit OK、警告、重大ステータスで、想定される文字列の不一致を受け入れます。デフォルトは warn です。 jail TCP ソケットからの出力を非表示にします。 maxbytes=INTEGER 指定数より多いバイト数を受信すると、接続を閉じます。 delay=INTEGER 文字列の送信から応答のポーリングまでの待ち時間(秒数)。 certificate=INTEGER[,INTEGER] 証明書の最小有効期間(日数)。最初の値は警告ステータスまでの日数、2 番目の値は重大ステータスまでの日数(指定されない場合は 0)。 warning=DOUBLE 警告ステータスになる応答時間(秒) critical=DOUBLE 重大ステータスになる応答時間(秒)
- モニターのタイプに [HTTP] または [HTTPS] を選択した場合は、次の手順を実行します。
- [期待値(期待される文字列)](オプション):[期待値] セクションの HTTP 応答のステータス行で、モニターと一致する文字列を入力します。これはコンマ区切りのリストです。
たとえば、200,301,302,401 と指定します。
- [方法](オプション):サーバのステータスを検出する方法をドロップダウン メニュー([GET]、[OPTIONS]、または [POST])から選択します。
- [URL](オプション):GET または POST を実行する URL を入力します(デフォルトは「/」)。
- POST メソッドを選択した場合は、[ボールド] セクションに送信されるデータを入力します。
- 応答内容で一致する文字列を、[受信] セクションに入力します。この文字列は、応答のヘッダであるか、または本文内にあります。
[期待値] セクションの文字列が一致しない場合、モニターは [受信] の内容との一致を試行しません。
JSON 形式の例:検証応答に "{"Healthy":true}": receive={\"Healthy\":true} が含まれています。
- [エクステンション]:詳細なモニター パラメータを key=value ペアとして [エクステンション] セクションに入力します。
たとえば、エクステンションを warning=10 と指定すると、サーバが 10 秒以内に応答しない場合に、ステータスが警告に設定されます。すべてのエクステンション項目を、キャリッジ リターン文字で区切る必要があります。注: eregi、 regex または ereg で、文字列に { } と “ が含まれている場合は、JSON 形式の文字列を解析する前に \ 文字を追加する必要があります。JSON 形式の例:検証応答に "{"Healthy":true}": eregi="\{\"Healthy\":true\}" が含まれています。
表 2. HTTP/HTTPS プロトコルのエクステンション 監視の拡張機能 説明 no-body ドキュメントの本文を待たない: ヘッダの読み込み後に処理を停止します。それでも、HEAD ではなく、HTTP GET や POST を実行することに注意してください。 ssl-version=3 SSLv3 を使用する SSL ハンドシェイクを強制的に実行します。
健全性チェック オプションで、SSLv3 と TLSv1 はデフォルトで無効になっています。
ssl-version=10 TLS 1.0 を使用する SSL ハンドシェイクを強制的に実行します。 ssl-version=11 TLS 1.1 を使用する SSL ハンドシェイクを強制的に実行します。 ssl-version=12 TLS 1.2 を使用する SSL ハンドシェイクを強制的に実行します。 max-age=SECONDS ドキュメントが SECONDS より古い場合は警告します。数値は、分の場合は 10m、時間の場合は 10h、日の場合は 10d の書式で指定することもできます。 content-type=STRING POST 呼び出しでの Content-Type ヘッダーのメディア タイプを指定します。 linespan 正規表現で改行記号を許可します(-r または -R より前に指定する必要があります)。 regex=STRING または ereg=STRING 正規表現の文字列をページで検索します。 eregi=STRING 正規表現の文字列をページで検索します(大文字小文字は区別されません)。 次はその例です。
- 検証応答には、"OK1" または "OK2": eregi="(OK1|OK2)" が含まれています。
- 検証応答に "{"Healthy":true}": eregi="{\"Healthy\":true}" が含まれています。
invert-regex 見つかれば CRITICAL を返し、見つからなければ OK を返します。 proxy-authorization=AUTH_PAIR 基本認証を使用しているプロキシ サーバ上のユーザー名:パスワード。 useragent=STRING User Agentとして、HTTP ヘッダで送信される文字列。 header=STRING HTTP ヘッダで送信されるその他のタグ。追加のヘッダで複数回使用できます。 次はその例です。
header="Host: app1.xyz.com
onredirect=ok|warning|critical|follow|sticky|stickyport リダイレクト ページの処理方法。sticky は follow に似ていますが、指定された IP アドレスと連携します。stickyport ではさらに、ポートが同じであることを確認します。 pagesize=INTEGER:INTEGER 必要な最小ページ サイズ(バイト):必要な最大ページ サイズ(バイト)。 warning=DOUBLE 警告ステータスになる応答時間(秒) critical=DOUBLE 重大ステータスになる応答時間(秒) expect = STRING コンマ区切りの文字列のリストで、少なくともそのうちの 1 つがサーバ応答の最初の(ステータス)行に来ることを想定します(デフォルトは HTTP/1 です。指定した場合、その他すべてのステータス行のロジック(3xx、4xx、5xx 処理など)はスキップされます)
string = STRING コンテンツに想定される文字列。 url = PATH GET または POST を実行する URL(デフォルトは「/」)。 post = STRING HTTP POST データをエンコードする URL。 method = STRING HTTP メソッド(HEAD、OPTIONS、TRACE、PUT、DELETE など)を設定します。 timeout = INTEGER 接続がタイムアウトになるまでの秒数(デフォルトは 10 秒)。 header=Host:host_name -H host_name host_name は、有効なホスト名またはホストの FQDN です。
表 3. HTTPS プロトコルのエクステンション 監視の拡張機能 説明 certificate=INTEGER 証明書の最小有効期間(日数)。ポート番号のデフォルトは 443 です。このオプションを使用すると、URL はチェックされません。 authorization=AUTH_PAIR 基本認証を使用しているサイト上のユーザー名:パスワード。 ciphers=’ECDHE-RSA-AES256-GCM-SHA384’ HTTPS 健全性チェックで使用される暗号を表示します。
- [期待値(期待される文字列)](オプション):[期待値] セクションの HTTP 応答のステータス行で、モニターと一致する文字列を入力します。これはコンマ区切りのリストです。
- モニター タイプとして [UDP] を選択する場合は、次の手順を実行します。
- [送信](必須):接続が確立された後でバックエンド サーバに送信する文字列を入力します。
- [受信](必須):バックエンド サーバから受信する文字列を入力します。受信した文字列がこの定義と一致する場合にのみ、サーバが稼動状態と見なされます。
注:UDP モニターではエクステンションがサポートされません。
- モニター タイプとして [DNS] を選択する場合は、次の手順を実行します。
- [送信](必須):接続が確立された後でバックエンド サーバに送信する文字列を入力します。
- [受信]:バックエンド サーバから受信する文字列を入力します。受信した文字列がこの定義と一致する場合にのみ、サーバが稼動状態と見なされます。
- [エクステンション]:詳細なモニター パラメータを key=value ペアとして [エクステンション] セクションに入力します。
たとえば、エクステンションを warning=10 と指定すると、サーバが 10 秒以内に応答しない場合に、ステータスが警告に設定されます。 このモニター タイプは、TCP プロトコルのみをサポートします。
すべてのエクステンション項目を、キャリッジ リターン文字で区切る必要があります。
表 4. DNS プロトコルの拡張機能 監視の拡張機能 説明 querytype=TYPE オプション:DNS レコードのクエリの種類。TYPE =A, AAAA, SRV, TXT, MX, CNAME, ANY
- A=IPv4 ホスト アドレス
- AAAA = IPv6 ホスト アドレス
- SRV = サービス ロケータ
- TXT = テキスト レコード
- MX = ドメイン レコードのメール交換
- CNAME = エイリアス レコードの正規名
デフォルトのクエリ タイプは A です。
expect-authority オプション:DNS サーバで検索が許可されている必要があります。
accept-cname オプション:クエリに有効な結果として、cname 応答を受け入れます。querytype=CNAME と一緒に使用します。
デフォルトでは、結果の一部として、cname 応答を無視します。
warning=seconds オプション:指定した時間が経過すると、警告メッセージを返します。
デフォルトでは、オフに設定されています。
critical=seconds オプション:指定した時間が経過すると、重大メッセージを返します。 デフォルトでは、オフに設定されています。
- モニター タイプとして [MSSQL] を選択する場合は、次の手順を実行します。
- [送信]:接続が確立された後でバックエンド サーバに実行される文字列を入力します。
- [受信]:バックエンド サーバから受信する文字列を入力します。受信した文字列がこの定義と一致する場合にのみ、サーバが稼動状態と見なされます。
- [ユーザー名]、[パスワード]、[パスワードの確認](必須):必要なユーザー名とパスワードを入力し、確認のため、パスワードを再度入力します。監視はプールに関連付けられています。ここで指定したユーザー名とパスワードを使用して、プール内に MSSQL サーバを設定する必要があります。
- [エクステンション]:詳細なモニター パラメータを key=value ペアとして [エクステンション] セクションに入力します。
たとえば、エクステンションを warning=10 と指定すると、サーバが 10 秒以内に応答しない場合に、ステータスが警告に設定されます。
すべてのエクステンション項目を、キャリッジ リターン文字で区切る必要があります。
表 5. MSSQL プロトコルの拡張機能 監視の拡張機能 説明 database=DBNAME オプション:接続先のデータベース名。
Send またはstoredproc パラメータを使用する場合、このエクステンションは必須です。storedproc=STOREPROC オプション:MSSQL サーバに実行されるストアド プロシージャ
- モニター タイプとして [LDAP] を選択する場合は、次の手順を実行します。
- [パスワード] と [パスワードの確認](オプション):必要なパスワードを入力し、確認のため、パスワードを再度入力します。
- [エクステンション]:詳細なモニター パラメータを key=value ペアとして [エクステンション] セクションに入力します。
たとえば、エクステンションを warning=10 と指定すると、サーバが 10 秒以内に応答しない場合に、ステータスが警告に設定されます。
すべてのエクステンション項目を、キャリッジ リターン文字で区切る必要があります。
表 6. LDAP プロトコルの拡張機能 監視の拡張機能 説明 attr=’ATTR’ オプション:検索する LDAP 属性 (default: ‘(objectclass=*)’
crit-entires 範囲と attr を使用する必要があります。
base=’cn=admin,dc=example,dc=com’ 必須:LDAP ベース(例: ou=my unit, o=my org, c=at)
ver2 または ver3 オプション:
- ver2:LDAP プロトコル バージョン 2 を使用します。
- ver3:LDAP プロトコル バージョン 3 を使用します。
デフォルトのプロトコル バージョンは、ver2 です。
bind=BINDDN オプション:LDAP バインドの識別名 (DN)(必要な場合)。
詳細については、https://www.ldap.com/the-ldap-bind-operationを参照してください。
crit=DOUBLE オプション:ステータスが重大になる応答時間(秒) crit-entries=low:high オプション:ステータスが重大になってしまうエントリ数。 見つかったエントリ数が範囲([低]、[高])外の場合、健全性チェックのステータスが重大になります。
- [OK] をクリックします。
次のタスク
サービス モニターとプールを関連付けます。