第9章 Data Grid サーバーの監視


9.1. Working with Data Grid Server Logs

Data Grid は Apache Log4j 2 を使用して、トラブルシューティング目的および根本原因分析のための環境およびレコードキャッシュ操作の詳細を取得する設定可能なロギングメカニズムを提供します。

9.1.1. Data Grid のログファイル

Data Grid は、ログメッセージを
$RHDG_HOME/${infinispan.server.root}/log ディレクトリーに書き込みます。

server.log
サーバーの起動に関連する起動ログなど、人間が判読できる形式のメッセージ。
Data Grid は、サーバーの起動時にデフォルトでこのファイルを作成します。
server.log.json
Data Grid ログを解析および分析できる JSON 形式のメッセージ。
JSON-FILE アペンダーを有効にすると、Data Grid はこのファイルを作成します。

9.1.2. データグリッドログプロパティーの設定

Log4j2 の マニュアル で説明されている log4j2.xml を使用して Data Grid ログを設定します。

手順

  1. 任意のテキストエディターで $RHDG_HOME/${infinispan.server.root}/conf/log4j2.xml を開きます。
  2. 必要に応じてロギング設定を変更します。
  3. log4j2.xml を保存し、閉じます。

9.1.2.1. ログレベル

ログレベルは、メッセージの性質と重大度を示します。

ログレベル説明

TRACE

粒度の細かいデバッグメッセージ。アプリケーションを介して個々のリクエストのフローをキャプチャーします。

DEBUG

個々のリクエストと関連性のない、一般的なデバッグのメッセージ。

INFO

ライフサイクルイベントを含む、アプリケーションの全体的な進捗状況に関するメッセージ。

WARN

エラーやパフォーマンスの低下につながる可能性のあるイベント。

ERROR

操作またはアクティビティーの正常な実行を妨げる可能性がありますが、アプリケーションの実行は妨げないエラー状態。

FATAL

重大なサービス障害やアプリケーションのシャットダウンを引き起こす可能性のあるイベント。

上記の個々のメッセージのレベルに加えて、この設定では、ALL (すべてのメッセージを含む) と OFF (すべてのメッセージを除外) のさらに 2 つの値を可能にします。

9.1.2.2. Data Grid ログカテゴリー

Data Grid は、機能領域ごとにログを整理する INFOWARNERRORFATAL のレベルのメッセージのカテゴリーを提供します。

org.infinispan.CLUSTER
状態遷移操作、イベントのリバランス、パーティション設定などが含まれる Data Grid クラスタリング固有のメッセージ。
org.infinispan.CONFIG
Data Grid 設定固有のメッセージ
org.infinispan.CONTAINER
有効期限とエビクション操作、キャッシュリスナーの通知、トランザクションなどを含むデータコンテナーに固有のメッセージ。
org.infinispan.PERSISTENCE
キャッシュローダーとストアに固有のメッセージ。
org.infinispan.SECURITY
Data Grid のセキュリティーに固有のメッセージ。
org.infinispan.SERVER
Data Grid Server に固有のメッセージ。
org.infinispan.XSITE
クロスサイトレプリケーション操作に固有のメッセージ。

9.1.2.3. ログアペンダー

ログアペンダーは、Data Grid によるログメッセージの記録方法を定義します。

CONSOLE
ログメッセージをホストの標準出力 (stdout) または標準エラー (stderr) ストリームに書き込みます。
デフォルトで org.apache.logging.log4j.core.appender.ConsoleAppender クラスを使用します。
FILE
ファイルにログメッセージを書き込みます。
デフォルトで org.apache.logging.log4j.core.appender.RollingFileAppender クラスを使用します。
JSON-FILE
ログメッセージを JSON 形式でファイルに書き込みます。
デフォルトで org.apache.logging.log4j.core.appender.RollingFileAppender クラスを使用します。

9.1.2.4. ログパターン

CONSOLE および FILE アペンダーは、PatternLayout を使用して、pattern に従ってログメッセージをフォーマットします。

以下は、FILE アペンダーのデフォルトのパターンになります。
%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p (%t) [%c{1}] %m%throwable%n

  • %d{yyyy-MM-dd HH:mm:ss,SSS} は現在の日時を追加します。
  • %-5p は、ログレベルを右揃えで指定します。
  • %t は、現在のスレッドの名前を追加します。
  • %c{1} はロギングカテゴリーの短縮名を追加します。
  • %m はログメッセージを追加します。
  • %throwable は例外スタックトレースを追加します。
  • %n は改行を追加します。

パターンについては、 PatternLayout ドキュメント で詳細に説明されています。

9.1.2.5. JSON ログハンドラーの有効化および設定

Data Grid は、JSON 形式でメッセージを書き込む JSON ログハンドラーを提供します。

前提条件

Data Grid が実行されていないことを確認します。ログハンドラーは動的に有効にすることはできません。

手順

  1. 任意のテキストエディターで $RHDG_HOME/${infinispan.server.root}/conf/log4j2.xml を開きます。
  2. JSON-FILE アペンダーのコメントを解除して、FILE アペンダーをコメントアウトします。

          <!--<AppenderRef ref="FILE"/>-->
          <AppenderRef ref="JSON-FILE"/>
  3. オプションで、JSON アペンダーレイアウト を設定します。
  4. logging.properties を保存して閉じます。

Data Grid を起動すると、各ログメッセージが JSON マップとして
$RHDG_HOME/${infinispan.server.root}/log/server.log.json ファイルに書き込まれます。

9.1.3. アクセスログ

hotgitops および REST エンドポイントは、以下のカテゴリーですべての受信クライアント要求をログエントリーとして記録できます。

  • Hotgitops エンドポイントの org.infinispan.HOTROD_ACCESS_LOG ロギングカテゴリー。
  • REST エンドポイントの org.infinispan.REST_ACCESS_LOG ロギングカテゴリー。

9.1.3.1. アクセスログの有効化

Hot Rod および REST エンドポイントのアクセスログはデフォルトで無効になっています。いずれかのログカテゴリーを有効にするには、次の例のように、Data Grid ログ設定でレベルを TRACE に設定します。

<Logger name="org.infinispan.HOTROD_ACCESS_LOG" additivity="false" level="TRACE">
   <AppenderRef ref="HR-ACCESS-FILE"/>
</Logger>

9.1.3.2. アクセスログのプロパティー

アクセスログのデフォルト形式は以下のとおりです。

%X{address} %X{user} [%d{dd/MMM/yyyy:HH:mm:ss Z}] &quot;%X{method} %m
%X{protocol}&quot; %X{status} %X{requestSize} %X{responseSize} %X{duration}%n

前述のフォーマットは、以下のようなログエントリーを作成します。

127.0.0.1 - [DD/MM/YYYY:HH:MM:SS +0000] "PUT /rest/v2/caches/default/key HTTP/1.1" 404 5 77 10

ロギングプロパティーは %X{name} 表記を使用し、アクセスログの形式を変更可能にします。以下は、デフォルトのロギングプロパティーです。

プロパティー説明

address

X-Forwarded-For ヘッダーまたはクライアント IP アドレスのいずれか。

user

認証を使用する場合のプリンシパル名。

メソッド

使用されるメソッド。PUTGET など。

protocol

使用されるプロトコルHTTP/1.1HTTP/2HOTROD/2.9 など。

status

REST エンドポイントの HTTP ステータスコード。OK または Hot Rod エンドポイントの例外。

requestSize

リクエストのサイズ (バイト単位)。

responseSize

応答のサイズ (バイト単位)。

duration

サーバーによる要求の処理にかかった時間 (ミリ秒数)。

ヒント

h: で始まるヘッダー名を使用して、リクエストに含まれるヘッダーをログに記録します (例: %X{h:User-Agent})。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.