クライアントがエラー 400 Bad Request 応答で、SSG ログにエントリがない場合に Tomcat ログを確認する方法
search cancel

クライアントがエラー 400 Bad Request 応答で、SSG ログにエントリがない場合に Tomcat ログを確認する方法

book

Article ID: 276872

calendar_today

Updated On:

Products

CA API Gateway

Issue/Introduction

この記事では、API Gateway で Tomcat のログ記録を有効にする方法について説明します。

Tomcat は、API Gateway 上のすべての HTTP リクエストを処理するために使用されるサードパーティ ライブラリです。場合によっては、API Gateway にメッセージを送信するクライアントが、"HTTP 400" ステータス コード、または一般的には "Bad Request" として知られる応答を受信することがあります。多くの場合、特に SSG ログ ファイルにリクエストのエントリがない場合、クライアントが Bad Request 応答を受信する理由を理解するのが困難となります。 

Environment

すべての API Gateway バージョン

Cause

Tomcat (および Coyote) サードパーティ ライブラリのロギングは、API Gateway ではデフォルトで無効になっています。

Resolution

Tomcat ログを SSG ログに追加する方法: 

  1. [Tasks] - [Logging and Auditing] - [Manage Log/Audit Sinks] - [ssg] - [Properties] に移動します。Severity Threshold(重大度のしきい値)を FINE に設定します。
  2. [Tasks] - [Global Settings] - [Manage Cluster Wide Properties] - [Add] と選択し、log.levels という新しい クラスター全体のプロパティ (CWP) を追加するか、環境内で既に使用している場合は既存の CWP を変更します。
    ・「com.l7tech.level = FINE」の値に変更します。
    ・更に新しい値「org.apache.coyote.http11.Http11Processor.level = FINE」を追加します。

完了すると、例としてGateway SSG ログに次のエラーが記録されます。

org.apache.coyote.http11.Http11Processor: Error parsing HTTP request header java.lang.IllegalArgumentException: Request header is too large ...

Additional Information

上記の操作はトラブルシューティングの場合にのみ実行し、その後 Tomcat ログを再度無効にすることをお勧めします。その理由は、これらの Tomcat ログを有効にすると大量のログが作成され、その結果多くの余分なオーバーヘッドが発生します。特にアクティブに使用されている実稼働環境では、パフォーマンスに悪影響を及ぼす可能性があるためです。

#

[英文文書] API Gateway: How to see Tomcat logs when Clients are receiving Error 400 Bad Request response, no entries in SSG logs.