ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

ポリシー拡張のトラブルシューティング

拡張関数が期待どおりに動作しない場合は、拡張トレース機能を使用して、拡張関数の動作を確認できます。カスタムログ機能を使用して、拡張機能にログを追加することもできます。カスタムログ機能では、Citrix ADCアプライアンスでキャプチャするログレベルを定義できます。

このトピックでは、次の情報について説明します。

  • 拡張トレース
  • カスタムロギング

拡張トレース

拡張機能の実行内容を表示するには、拡張トレース機能によって関数の実行がCitrix ADCシステムログ(/var/log/ns.log)に記録されます。トレースログでは、DEBUG ログレベルが使用されますが、通常は有効になりません。したがって、すべてのログレベルを有効にする必要があります。次に、set ns 拡張コマンドの-trace オプションを設定して、トレースを有効にできます。使用可能な設定は次のとおりです。

  • off トレースをオフにします (ns 拡張子-trace を設定解除した場合と同等)。
  • トレース関数呼び出しを引数で呼び出し、関数は最初の戻り値で返します。
  • 行は、実行された行の上記のプラス行番号をトレースします。
  • は、上記に加えて、実行された行によって変更されたローカル変数をトレースします。

例:

set audit syslogParams -loglevel ALL set ns extension combine_headers -trace all

各トレースメッセージは次の形式です。

log-header : default NSEXTENSION Message message-number 0 : "TRACE function-name CALL call-number: event"

各項目の意味は次のとおりです。

  • log-headerは、タイムスタンプ、Citrix ADC IPアドレス、パケットエンジンIDを提供します。
  • message-number は、ログメッセージを識別する連番です。
  • function-nameは、拡張関数名です。
  • call-number は、各拡張関数呼び出しの連番です。これは、拡張関数呼び出しのすべてのトレースメッセージをグループ化するために使用できます。
  • イベントは次のいずれかです。
    • CALL function-name。パラメータ値は、関数が指定されたパラメータで呼び出されたことを示します。
    • RETURN FROM function-name; 戻り値 = 関数は、指定された(最初の)値を返したことを示します。(追加の戻り値は報告されません)。
    • LINE line-number。変数値は、行が実行されたことを示し、変更された値を持つ変数をリストします。

各項目の意味は次のとおりです。

  • 値が次の値です。
    • 小数点の有無にかかわらず、数値、
    • 二重引用符で囲み、前述のようにエスケープ文字で囲まれた文字列、
    • 真または偽のブール値
    • nil、
    • {[key1 =値1, key2][=値2],…} の形式のテーブルコンストラクタ。
  • parameter-values is parameter1 = value1 ; parameter2 = value2 , …
  • variable-values is variable1 = value1 ; variable2 = value2 , …

短縮ログメッセージの例:

>shell tail -f /var/log/ns.log | grep TRACE | more ... NSEXTENSION Message 3035 0 : "TRACE combine_headers CALL 30 : CALL COMBINE_HEADERS; self = "User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3\r\nHost: 10.217.24.7\r\nAccept: \*/\*\r\nH2: h2val1\r\nH1: abcd\r\nH2: h2val2\r\nH2: h2val3\r\n\r\n"" ... NSEXTENSION Message 3036 0 : "TRACE combine_headers CALL 30 : LINE 4; headers = {}" ... NSEXTENSION Message 3037 0 : "TRACE combine_headers CALL 30 : LINE 5; combined_headers = {}" ... NSEXTENSION Message 3038 0 : "TRACE combine_headers CALL 30 : CALL gmatch" ... NSEXTENSION Message 3039 0 : "TRACE combine_headers CALL 30 : RETURN FROM gmatch; return = function 0x2bee5a80" ... NSEXTENSION Message 3040 0 : "TRACE combine_headers CALL 30 : CALL for iterator" ... NSEXTENSION Message 3041 0 : "TRACE combine_headers CALL 30 : RETURN FROM for iterator; return = " curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3"" ... NSEXTENSION Message 3042 0 : "TRACE combine_headers CALL 30 : LINE 9; name = "User-Agent"; value = " curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3"" ... NSEXTENSION Message 3043 0 : "TRACE combine_headers CALL 30 : LINE 10" ... NSEXTENSION Message 3044 0 : "TRACE combine_headers CALL 30 : LINE 14; headers = {["User-Agent"]={[1]="User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3"}}" . . . ... NSEXTENSION Message 3117 0 : "TRACE combine_headers CALL 30 : CALL for iterator" ... NSEXTENSION Message 3118 0 : "TRACE combine_headers CALL 30 : RETURN FROM for iterator; return = nil" ... NSEXTENSION Message 3119 0 : "TRACE combine_headers CALL 30 : LINE 19" ... NSEXTENSION Message 3120 0 : "TRACE combine_headers CALL 30 : CALL concat" ... NSEXTENSION Message 3121 0 : "TRACE combine_headers CALL 30 : RETURN FROM concat; return = "User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3\r\nH1: abcd\r\nAccept: \*/\*\r\nHost: 10.217.24.7\r\nH2: h2val1, h2val2, h2val3"" ... NSEXTENSION Message 3122 0 : "TRACE combine_headers CALL 30 : LINE 25; result_str = "User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3\r\nH1: abcd\r\nAccept: \*/\*\r\nHost: 10.217.24.7\r\nH2: h2val1, h2val2, h2val3\r\n\r\n"" ... NSEXTENSION Message 3123 0 : "TRACE combine_headers CALL 30 : RETURN FROM COMBINE_HEADERS; return = "User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3\r\nH1: abcd\r\nAccept: \*/\*\r\nHost: 10.217.24.7\r\nH2: h2val1, h2val2, h2val3\r\n\r\n""

カスタムロギング

拡張関数に独自のロギングを追加することもできます。これを行うには、組み込みの ns.logger:level () 関数を使用します。level**は、緊急、アラート、クリティカル、エラー、警告、通知、情報、デバッグです。パラメータは、C printf () 関数と同じです。フォーマット文字列と、フォーマット文字列で指定された%の値を指定する可変数の引数です。たとえば、COMBINE_HEADERS 関数に次のコードを追加して、呼び出しの結果を記録できます。

local result_str = table.concat(combined_headers, "\r\n") .. "\r\n\r\n" ns.logger:info("Result: %s", result_str) return result_str

上記の関数は、上記の「拡張トレース」セクションの省略されたログメッセージの例に示されたサンプル入力について、次のメッセージを /var/log/ns.log に記録します。

... : default NSEXTENSION Message 143 0 : "Result: Host: 10.217.24.7:2000^M H1: abcd, 1234^M User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3^M Accept: */*^M H2: h2val1, h2val2, h2val3^M ^M"

このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。
ポリシー拡張のトラブルシューティング