第5章 Data Grid サーバーの監視
5.1. Working with Data Grid Server Logs リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は Apache Log4j 2 を使用して、トラブルシューティング目的および根本原因分析のための環境およびレコードキャッシュ操作の詳細を取得する設定可能なロギングメカニズムを提供します。
5.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 はこのファイルを作成します。
5.1.2. データグリッドログプロパティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Log4j2 の マニュアル で説明されている log4j2.xml を使用して Data Grid ログを設定します。
手順
-
任意のテキストエディターで
$RHDG_HOME/${infinispan.server.root}/conf/log4j2.xmlを開きます。 - 必要に応じてロギング設定を変更します。
-
log4j2.xmlを保存し、閉じます。
5.1.2.1. ログレベル リンクのコピーリンクがクリップボードにコピーされました!
ログレベルは、メッセージの性質と重大度を示します。
| ログレベル | 説明 |
|---|---|
|
| 粒度の細かいデバッグメッセージ。アプリケーションを介して個々のリクエストのフローをキャプチャーします。 |
|
| 個々のリクエストと関連性のない、一般的なデバッグのメッセージ。 |
|
| ライフサイクルイベントを含む、アプリケーションの全体的な進捗状況に関するメッセージ。 |
|
| エラーやパフォーマンスの低下につながる可能性のあるイベント。 |
|
| 操作またはアクティビティーの正常な実行を妨げる可能性がありますが、アプリケーションの実行は妨げないエラー状態。 |
|
| 重大なサービス障害やアプリケーションのシャットダウンを引き起こす可能性のあるイベント。 |
上記の個々のメッセージのレベルに加えて、この設定では、ALL (すべてのメッセージを含む) と OFF (すべてのメッセージを除外) のさらに 2 つの値を可能にします。
5.1.2.2. Data Grid ログカテゴリー リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は、機能領域ごとにログを整理する INFO、WARN、ERROR、FATAL のレベルのメッセージのカテゴリーを提供します。
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- クロスサイトレプリケーション操作に固有のメッセージ。
5.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クラスを使用します。
5.1.2.4. ログパターン リンクのコピーリンクがクリップボードにコピーされました!
CONSOLE および FILE アペンダーは、PatternLayout を使用して、pattern に従ってログメッセージをフォーマットします。
%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p (%t) [%c{1}] %m%throwable%n は、FILE アペンダーのデフォルトのパターンの例になります。
-
%d{yyyy-MM-dd HH:mm:ss,SSS}は現在の日時を追加します。 -
%-5pは、ログレベルを右揃えで指定します。 -
%tは、現在のスレッドの名前を追加します。 -
%c{1}はロギングカテゴリーの短縮名を追加します。 -
%mはログメッセージを追加します。 -
%throwableは例外スタックトレースを追加します。 -
%nは改行を追加します。
パターンについては、 PatternLayout ドキュメント で詳細に説明されています。
5.1.2.5. JSON ログハンドラーの有効化および設定 リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は、JSON 形式でメッセージを書き込む JSON ログハンドラーを提供します。
前提条件
Data Grid が実行されていないことを確認します。ログハンドラーは動的に有効にすることはできません。
手順
-
任意のテキストエディターで
$RHDG_HOME/${infinispan.server.root}/conf/log4j2.xmlを開きます。 JSON-FILEアペンダーのコメントを解除して、FILEアペンダーをコメントアウトします。<!--<AppenderRef ref="FILE"/>--> <AppenderRef ref="JSON-FILE"/><!--<AppenderRef ref="FILE"/>--> <AppenderRef ref="JSON-FILE"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプションで、JSON アペンダー と レイアウト を設定します。
-
logging.propertiesを保存して閉じます。
Data Grid を起動すると、各ログメッセージが JSON マップとして以下のファイルに書き込みます。
$RHDG_HOME/${infinispan.server.root}/log/server.log.json
5.1.3. アクセスログ リンクのコピーリンクがクリップボードにコピーされました!
hotgitops および REST エンドポイントは、以下のカテゴリーですべての受信クライアント要求をログエントリーとして記録できます。
-
Hotgitops エンドポイントの
org.infinispan.HOTROD_ACCESS_LOGロギングカテゴリー。 -
REST エンドポイントの
org.infinispan.REST_ACCESS_LOGロギングカテゴリー。
5.1.3.1. アクセスログの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod および REST エンドポイントのアクセスログはデフォルトで無効になっています。いずれかのログカテゴリーを有効にするには、次の例のように、Data Grid ログ設定でレベルを TRACE に設定します。
<Logger name="org.infinispan.HOTROD_ACCESS_LOG" additivity="false" level="INFO"> <AppenderRef ref="HR-ACCESS-FILE"/> </Logger>
<Logger name="org.infinispan.HOTROD_ACCESS_LOG" additivity="false" level="INFO">
<AppenderRef ref="HR-ACCESS-FILE"/>
</Logger>
5.1.3.2. アクセスログのプロパティー リンクのコピーリンクがクリップボードにコピーされました!
アクセスログのデフォルト形式は以下のとおりです。
`%X{address} %X{user} [%d{dd/MMM/yyyy:HH:mm:ss Z}] "%X{method} %m %X{protocol}" %X{status} %X{requestSize} %X{responseSize} %X{duration}%n`
`%X{address} %X{user} [%d{dd/MMM/yyyy:HH:mm:ss Z}] "%X{method} %m %X{protocol}" %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} 表記を使用し、アクセスログの形式を変更可能にします。以下は、デフォルトのロギングプロパティーです。
| プロパティー | 説明 |
|---|---|
|
|
|
|
| 認証を使用する場合のプリンシパル名。 |
|
|
使用されるメソッド。 |
|
|
使用されるプロトコル |
|
|
REST エンドポイントの HTTP ステータスコード。 |
|
| リクエストのサイズ (バイト単位)。 |
|
| 応答のサイズ (バイト単位)。 |
|
| サーバーによる要求の処理にかかった時間 (ミリ秒数)。 |
h: で始まるヘッダー名を使用して、リクエストに含まれるヘッダーをログに記録します (例: %X{h:User-Agent})。