Citrix ADC

ユーザーモニターを理解する

ユーザーモニターは、カスタムモニターの範囲を拡張します。ユーザーモニターを作成して、Citrix ADCアプライアンスでサポートされていないカスタマイズされたアプリケーションおよびプロトコルの正常性を追跡できます。次の図は、ユーザモニタの動作を示しています。

図1:ユーザーモニタ

ユーザーモニタ

ユーザモニタには、次のコンポーネントが必要です。

  • ディスパッチャ。監視要求をリッスンするアプライアンス上のプロセス。ディスパッチャは、ループバック IP アドレス(127.0.0.1)およびポート 3013 上に配置できます。ディスパッチャは、内部ディスパッチャとしても知られています。ディスパッチャは、Common Gateway Interface (CGI) をサポートする Web サーバーでもかまいません。このようなディスパッチャは、外部ディスパッチャとも呼ばれます。これらは、.NET スクリプトなど、FreeBSD 環境で実行されないカスタムスクリプトに使用されます。

    注:モニターで「secure」オプションを有効にすることで、モニターとディスパッチャが HTTP ではなく HTTPS を使用するように設定し、外部ディスパッチャとして構成できます。ただし、内部ディスパッチャは HTTP のみを理解し、HTTPS を使用することはできません。

    高可用性セットアップでは、ディスパッチャはプライマリとセカンダリの両方のCitrix ADCアプライアンスで実行されます。ディスパッチャは、セカンダリアプライアンスで非アクティブのままです。

スクリプト。スクリプトは、負荷分散されたサーバーにカスタムプローブを送信し、ディスパッチャに応答コードを返すプログラムです。スクリプトはディスパッチャに任意の値を返すことができますが、プローブが成功した場合、スクリプトは値 0 を返す必要があります。ディスパッチャは、その他の値をプローブの失敗と見なします。

Citrix ADCアプライアンスは、一般的に使用されるプロトコルのサンプルスクリプトにバンドルされています。スクリプトは /nsconfig/monitors ディレクトリにあります。スクリプトを追加する場合は、そこに追加します。既存のスクリプトをカスタマイズするには、新しい名前のコピーを作成して変更します。

重要:

  • Citrix ADCリリース13.0ビルド41.20以降、nsntlm-lwp.plスクリプトを使用して、セキュリティで保護されたNTLMサーバーを監視するためのモニターを作成できます。

  • リリース 10.1 ビルド 122.17 以降、ユーザモニタ用のスクリプトファイルが新しい場所にあります。

    MPXまたはVPX仮想アプライアンスをリリース10.1ビルド122.17以降にアップグレードする場合、変更は次のようになります。

    • /nsconfig/monitors/ に「競合」という名前の新しいディレクトリが作成され、以前のビルドのすべての組み込みスクリプトがこのディレクトリに移動されます。
    • 新しい組み込みスクリプトはすべて、/netscaler/monitors/ ディレクトリにあります。すべてのカスタムスクリプトは、/nsconfig/monitors/ ディレクトリにあります。
    • 新しいカスタムスクリプトを /nsconfig/monitors/ ディレクトリに保存します。
    • アップグレードの完了後、組み込みスクリプトと同じ名前のカスタムスクリプトを作成し、/nsconfig/monitors/ ディレクトリに保存すると、/netscaler/monitors/ ディレクトリ内のスクリプトが優先されます。カスタムスクリプトは実行されません。

    リリース 10.1 ビルド 122.17 以降で仮想アプライアンスをプロビジョニングする場合、変更は次のようになります。

    • すべての組み込みスクリプトは、/netscaler/monitors/ ディレクトリにあります。
    • /nsconfig/monitors/ ディレクトリが空です。
    • カスタムスクリプトを作成する場合は、/nsconfig/monitors/ ディレクトリに保存する必要があります。

スクリプトが正しく機能するには、次のようにします。

  • スクリプト名の最大文字数は 63 文字以下にする必要があります。
  • スクリプトに指定できるスクリプト引数の最大数は 512 を超えないようにしてください。
  • パラメータスクリプト引数に指定できる最大文字数は 639 を超えないようにしてください。

スクリプトをデバッグするには、CLI から nsumon-debug.pl スクリプトを使用してスクリプトを実行する必要があります。nsumon-debug.pl スクリプトの引数として、スクリプト名 (引数と共に)、IP アドレス、およびポートを使用します。ユーザーは、nsumon-debug.pl スクリプトのスクリプト名、IP アドレス、ポート、タイムアウト、およびスクリプト引数を使用する必要があります。

CLIで、次のように入力します。

nsumon-debug.pl <scriptname> <IP> <port> <timeout> <partitionID> [scriptarguments][is_secure]

重要: リリース 10.5 ビルド 57.x 以降、ユーザーモニター用の 11.0 スクリプトファイルは IPv6 アドレスをサポートし、次の変更を含めました。

  • 次のプロトコルでは、IPv6 をサポートする新しい pm ファイルが追加されました。

    • RADIUS
    • NNTP
    • POP3
    • SMTP
  • /netscaler/monitors/ の次のサンプルスクリプトは、IPv6をサポートするために更新されました。

    • nsbmradius.pl

    • nsldap.pl

    • nsnntp.pl

    • nspop3 nssf.pl

    • nssnmp.pl

    • nswi.pl

    • nstftp.pl

    • nssmtp.pl

    • nsrdp.pl

    • nsntlm-lwp.pl

    • nsftp.pl

    • nsappc.pl

    リリース 10.5 ビルド 57.x または 11.0 にアップグレードした後、既存のカスタムスクリプトを IPv6 サービスで使用する場合は、既存のカスタムスクリプトを /netscaler/monitors/の更新されたサンプルスクリプトで提供された変更で更新してください。

    注:サンプルスクリプトnsmysql.plは、IPv6アドレスをサポートしていません。IPv6 サービスが nsmysql.pl を使用するユーザーモニターにバインドされている場合、プローブは失敗します。

  • IPv6 アドレスをサポートするために、次の LB モニタタイプが更新されました。

    • USER

    • SMTP

    • NNTP

    • LDAP

    • SNMP

    • POP3

    • FTP_EXTENDED

    • StoreFront

    • APPC

    • CITRIX_WI_EXTENDED

    これらの LB モニタタイプの 1 つを使用するカスタムスクリプトを作成する場合は、カスタムスクリプトに IPv6 サポートを含めるようにしてください。IPv6 サポート用にカスタムスクリプトで行う必要がある変更については、/netscaler/monitors/ にある関連するサンプルスクリプトを参照してください。

サーバーのステータスを追跡するために、モニターは設定されたディスパッチャに HTTP POST 要求を送信します。この POST 要求には、サーバーの IP アドレスとポート、および実行する必要のあるスクリプトが含まれます。ディスパッチャは、スクリプトを子プロセスとして実行し、ユーザー定義のパラメータ (存在する場合) を指定します。次に、スクリプトはプローブをサーバーに送信します。スクリプトは、プローブのステータス(応答コード)をディスパッチャに送信します。ディスパッチャは、レスポンスコードを HTTP レスポンスに変換し、モニターに送信します。HTTP 応答に基づいて、モニタはサービスをアップまたはダウンとしてマークします。

ユーザー監視プローブが失敗すると、Citrix ADCアプライアンスがエラーメッセージを /var/nslog/nsumond.log ファイルに記録します。これらの詳細なエラーメッセージは、show service/service group コマンドの GUI および CLI に表示されます。

次の表は、ユーザーモニターと、考えられる失敗の原因の一覧です。

ユーザーモニタタイプ プローブの失敗の理由
SMTP モニタがサーバへの接続を確立できない。
NNTP モニタがサーバへの接続を確立できない。
  スクリプト引数がないか無効です。引数数または引数の形式が無効な場合があります。
  モニタが NNTP グループを検出できない。
LDAP モニタがサーバへの接続を確立できない。
  スクリプト引数がないか無効です。引数数または引数の形式が無効な場合があります。
  モニタが LDAP サーバへのバインドに失敗する。
  モニタが LDAP サーバでターゲットエンティティのエントリを見つけることができません。
FTP サーバーへの接続がタイムアウトします。
  スクリプト引数がないか無効です。引数数または引数の形式が無効な場合があります。
  ログオンが失敗する。
  モニタがサーバ上でファイルを検出できない。
POP3 モニタがデータベースへの接続を確立できない。
  スクリプト引数がないか無効です。引数数または引数の形式が無効な場合があります。
  ログオンが失敗する。
POP3 モニタがデータベースへの接続を確立できない。
  スクリプト引数がないか無効です。引数数または引数の形式が無効な場合があります。
  ログオンが失敗する。
  SQL クエリの準備に失敗しました。
  SQL クエリの実行が失敗しました。
SNMP モニタがデータベースへの接続を確立できない。
  スクリプト引数がないか無効です。引数数または引数の形式が無効な場合があります。
  ログオンが失敗する。
  モニタが SNMP セッションを作成できない。
  モニタがオブジェクト識別子を見つけることができません。
  モニタのしきい値の設定が、モニタの実際のしきい値以上である。
RDP (Windows Terminal Server) スクリプト引数がないか無効です。引数数または引数の形式が無効な場合があります。
  モニタがソケットを作成できない。
  バージョンに不一致があります。
  モニタが接続の確認に失敗する。

CLI からログファイルを表示するには、次のコマンドを使用します。このコマンドは BSD シェルを開き、ログファイルを画面に表示し、BSD シェルを閉じて CLI に戻ります。

> shell
root@ns# cat /var/nslog/nsumond.log
root@ns# exit
>

Citrix ADCリリース13.0 build 52.Xより前のバージョンでは、ユーザー監視プローブの失敗の原因としてshow service/service groupコマンドで「プローブが失敗しました」という一般的なエラーメッセージが表示されました。

例:

show service ftp

Monitor Name: mon2
State: UNKNOWN  Weight: 1   Passive: 0
Probes: 3    Failed [Total: 0 Current: 0]
Last response: Failure - Probe failed.
Response Time: 1071.838 millisec

Citrix ADCリリース13.0 build 52.X以降では、show service/service groupコマンドでユーザー監視プローブ障害の実際の原因が表示されます。

例:

show service ftp

Monitor Name: mon2
State: DOWN   Weight: 1   Passive: 0
Probes: 729   Failed [Total: 726 Current: 726]
Last response: Failure - Login failed.
Response Time: 8000.0 millisec

ユーザモニタには、プローブの失敗に対するタイムアウト値と再試行回数も設定されています。ユーザーモニターと非ユーザーモニターを使用できます。CPU 使用率が高い場合、非ユーザモニタを使用すると、サーバ障害を迅速に検出できます。

CPU 使用率が高いときにユーザモニタプローブがタイムアウトした場合、サービスの状態は変更されません。

注:

スクリプト可能なモニタの場合、応答タイムアウトは、予想されるタイムアウト+ 1 秒に等しい値に設定する必要があります。

たとえば、タイムアウトが 4 秒になると予想される場合、応答タイムアウトを 5 秒に設定します。

コマンドの例:

add lb monitor <name> USER –scriptname <script-name> -resptimeout 5 seconds

ユーザーモニターを理解する