Application Gateway for Containers の診断ログ
Application Gateway for Containers に関する一般的な問題のトラブルシューティングの方法について説明します。
Application Gateway for Containers のリソースは次の方法で監視できます。
ログ: リソースのパフォーマンス、アクセス、その他のデータを記録したログは、監視のために保存し使用することができます。
メトリック: Application Gateway for Containers には、システムが想定どおりに実行されていることを確認するのに役立ついくつかのメトリックがあります。
診断ログ
Azure の各種ログを使用して、Application Gateway for Containers の管理とトラブルシューティングを行うことができます。 一部のログにはポータルからアクセスできます。 どのログも Azure Blob Storage から抽出し、Azure Monitor ログ、Excel、Power BI などのさまざまなツールで表示できます。 各種ログの詳細については、以下の一覧を参照してください。
- アクティビティ ログ: Azure アクティビティ ログ (以前の操作ログと監査ログ) を使用すると、Azure サブスクリプションに送信されるすべての操作とその操作の状態を表示できます。 アクティビティ ログ エントリは既定で収集され、Azure Portal で表示できます。
- アクセス ログ: このログを使用して Application Gateway for Containers のアクセス パターンを表示し、重要な情報を分析できます。 これには、呼び出し元の IP、要求された URL、応答の待機時間、リターン コード、入出力バイトが含まれます。アクセス ログは 60 秒ごとに収集されます。 データは、ログ記録を有効にした時点で指定されたストレージ アカウントに格納できます。
アクセス ログを構成する
アクティビティ ログは、Resource Manager のすべてのリソースで自動的に有効になります。 アクセス ログで使用可能なデータの収集を開始するには、これらのログを有効にする必要があります。 ログを有効にするには、Azure Monitor で診断設定を構成します。
Azure portal を使用して Application Gateway for Containers のストレージ アカウントへのすべてのログ記録を有効にするには、次の手順に従います。 Application Gateway for Containers と同じリージョンの使用可能なストレージ アカウントが必要です。
Azure アカウントで Azure Portal にサインインします。
[リソース、サービス、ドキュメントの検索] で、「Application Gateway for Containers」と入力し、Application Gateway for Containers の名前を選択します。
[監視] で [診断設定] を選択します。
[診断設定の追加] を選択します。
診断設定名 (agfc-logs など) を入力し、保存するログとメトリックを選択し (「ストレージ アカウントへのアーカイブ」など)、宛先を選択します。 すべてのログを保存するには、allLogs と AllMetrics を選択します。
[Save](保存) を選択して設定を保存します。 次の例を参照してください。
Note
診断ログを最初に有効にした後、選択した宛先でログを使用できるようになるまでに最大 1 時間かかる場合があります。
詳細と Azure Monitor のデプロイ チュートリアルについては、「Azure Monitor の診断設定」を参照してください。
アクセス ログの形式
Application Gateway for Containers の各アクセス ログ エントリには、次の情報が含まれています。
値 | 説明 |
---|---|
backendHost | ポートが追加されたバックエンド ターゲットのアドレス。 たとえば、<IP>:<ポート> |
backendIp | Application Gateway for Containers が要求をプロキシするバックエンド ターゲットの IP アドレス。 |
backendPort | バックエンド ターゲットのポート番号。 |
backendResponseLatency | Application Gateway for Containers からバックエンド ターゲットに最初のバイトを受信した時間 (ミリ秒)。 |
backendTimeTaken | バックエンド ターゲットから Application Gateway for Containers に応答が送信された時間 (ミリ秒単位)。 |
clientIp | Application Gateway for Containers のフロントエンドへの要求を開始するクライアントの IP アドレス |
frontendName | クライアントから要求を受信した Application Gateway for Containers フロントエンドの名前 |
frontendPort | Application Gateway for Containers によって要求がリッスンされたポート番号 |
frontendTLSFailureReason | TLS ネゴシエーションが失敗した理由に関する情報が含まれています。 一般的には、クライアント相互認証の失敗した認証要求を理解するために使用されます |
frontendTLSPeerFingerprint | Application Gateway for Containers のフロントエンドにクライアントによって提示される証明書の指紋 (拇印) |
hostName | Application Gateway for Containers によってクライアントから受信したホスト ヘッダー値 |
httpMethod | RFC 7231 に従って Application Gateway for Containers がクライアントから受信した要求の HTTP メソッド。 |
httpStatusCode | Application Gateway for Containers からクライアントに返される HTTP 状態コード。 |
httpVersion | Application Gateway for Containers がクライアントから受信した要求の HTTP バージョン。 |
referrer | Application Gateway for Containers がクライアントから受信した要求の参照元ヘッダー。 |
requestBodyBytes | Application Gateway for Containers がクライアントから受信した要求の本文ペイロード サイズ (バイト単位)。 |
requestHeaderBytes | Application Gateway for Containers がクライアントから受信した要求のヘッダー サイズ (バイト単位)。 |
requestUri | Application Gateway for Containers がクライアントから受信した要求の URI (URL の <protocol>://<host> の後ろすべて)。 |
responseBodyBytes | Application Gateway for Containers がクライアントに返した応答の本文ペイロード サイズ (バイト単位)。 |
responseHeaderBytes | Application Gateway for Containers がクライアントに返した応答のヘッダー サイズ (バイト単位)。 |
timeTaken | Application Gateway for Containers が受信したクライアント要求と、Application Gateway for Containers からクライアントに返された最後のバイトのミリ秒単位の時間 |
tlsCipher | クライアントと Application Gateway for Containers フロントエンドの間でネゴシエートされた TLS 暗号スイート |
tlsProtocol | クライアントと Application Gateway for Containers フロントエンドの間でネゴシエートされた TLS バージョン |
trackingId | 追跡とデバッグに役立つコンテナー用 Application Gateway によって生成されたガイド。 この値は、Application Gateway for Containers からクライアントに返される x-request-id ヘッダーに関連付けられます。 |
userAgent | Application Gateway for Containers がクライアントから受信した要求のユーザーエージェントヘッダー |
Note
requestUri フィールドにログされた "secret"、"password"、"pwd"、"passwd"、"key"、"token"、"pat"、"accesskey"、"accesstoken"、"credential"、"sas"、"personalAccessToken"、"personal.access.token" などのクエリ文字列パラメーター値は、機密情報がログされないように、<redacted> の値に置き換えられます。 これは構成できません。
以下に、ストレージ アカウントに JSON 形式で出力されるアクセス ログの例を示します。
{
"category": "TrafficControllerAccessLog",
"operationName": "ReqRespLogs",
"properties": {
"backendHost": "10.1.0.15:80",
"backendIp": "10.1.0.15",
"backendPort": "80",
"backendResponseLatency": "2",
"backendTimeTaken": "-",
"clientIp": "xxx.xxx.xxx.xxx:52526",
"frontendName": "frontend-primary",
"frontendPort": "443",
"frontendTLSFailureReason": "-",
"frontendTLSPeerFingerprint": "2c01bbc93009ad1fc977fe9115fae7ad298b665f",
"hostName": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.fzXX.alb.azure.com",
"httpMethod": "GET",
"httpStatusCode": "200",
"httpVersion": "HTTP\/1.1",
"referer": "-",
"requestBodyBytes": "0",
"requestHeaderBytes": "223",
"requestUri": "\/index.php",
"responseBodyBytes": "91",
"responseHeaderBytes": "190",
"timeTaken": "2",
"tlsCipher": "TLS_AES_256_GCM_SHA384",
"tlsProtocol": "-",
"trackingId": "0ef125db-7fb7-48a0-b3fe-03fe0ffed873",
"userAgent": "curl\/7.81.0"
},
"resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/YYYYYY/PROVIDERS/MICROSOFT.SERVICENETWORKING/TRAFFICCONTROLLERS/ZZZZZZZ",
"time": "2023-07-22T06:26:58.895Z",
"location": "northcentralus"
}