7.7.20 Kafkaアダプタ実行時の障害対策
この項では,Kafkaアダプタの運用時に発生する障害に対して取得できる情報の種類について説明します。
Kafkaアダプタに関する障害情報には次の種類があります。
-
メッセージログ
-
メソッドトレース
-
データトレース
-
性能解析トレース(PRFトレース)
-
例外ログ
-
Kafkaプロトコルトレース
ここでは,これらの障害情報について説明します。
- 〈この項の構成〉
(1) メッセージログ(Kafkaアダプタ)
メッセージログのJ2EEサーバの稼働ログに,Kafkaアダプタで発生した各種情報がメッセージとして出力されます。
メッセージログについては,「7.4.1 メッセージログ」を参照してください。
(2) メソッドトレース(Kafkaアダプタ)
メソッドトレースは,内部メソッド発行の時刻やシーケンスを確認できます。保守員が障害解析のために使用します。
(a) 出力形式
メソッドトレースの出力形式を次の図に示します。
(b) 出力される内容
メソッドトレースに出力される内容を次の表に示します。
項目 |
内容 |
---|---|
番号 |
メソッドトレースの出力通番が表示されます。 |
日付 |
メソッドトレースの取得日付がyyyy/mm/ddの形式で出力されます。
|
時刻 |
メソッドトレースの取得時刻がhh:mm:ss.SSSの形式で出力されます。
ローカル時刻でミリ秒単位の時刻を示します。 |
製品ID |
製品を特定するための識別子として,Kafkaアダプタを示す「ADPKAFKA」が表示されます。 |
pid |
プロセスを識別するためのIDが出力されます。 |
tid |
スレッドを識別するためのIDが出力されます。 |
ID |
空白 |
種別 |
トレース取得ポイントの種別が出力されます。
|
クラス名 |
トレースを取得するクラス名が出力されます。 30文字未満の場合は左詰めされ,足りない文字はスペースで補われます。 |
メソッド名 |
トレースを取得するメソッド名が出力されます。 30文字未満の場合は左詰めされ,足りない文字はスペースで補われます。 |
入出力情報 |
トレースを取得するメソッドの入出力情報(引数や戻り値の値など)が出力されます。 |
CRLF |
レコード終端符号が出力されます。 |
(c) 出力先
Kafkaアダプタのメソッドトレースの出力先を次に示します。
<J2EEサーバのログ出力ディレクトリ>\CSCADP\KAFKAADP\maintenance\<サービスID>
<J2EEサーバのログ出力ディレクトリ>は,HCSCサーバが動作するJ2EEサーバ用オプション定義ファイル(usrconf.cfg)のejb.server.log.directoryキーで指定します。詳細は,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」を参照してください。
メソッドトレースのトレースファイル名を次に示します。
トレースファイルの出力モード |
トレースファイル名 |
---|---|
ラップアラウンドモードの場合 |
csckafkaadpmtd_<HCSCサーバ名>_<面数>.log |
シフトモードの場合 |
csckafkaadpmtd_<HCSCサーバ名>_.log |
メソッドトレースのローテーションは,次のどちらかの条件に合致した際に実行されます。
-
指定したローテーション時刻に達したとき
ローテーション時刻の指定方法は,Application Serverの設定に従います。詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.3 usrconf.properties(J2EEサーバ用ユーザプロパティファイル)」を参照してください。
-
指定したファイルサイズに達したとき
トレースファイルの面数は,Kafkaアダプタ実行環境プロパティファイルのmethodtracefile.numキーで変更できます。トレースファイルのサイズは,Kafkaアダプタ実行環境プロパティファイルのmethodtracefile.sizeキーで変更できます。Kafkaアダプタ実行環境プロパティファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.17.1 Kafkaアダプタ実行環境プロパティファイル」を参照してください。
変更方法の詳細については,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「3.3.16 Kafkaアダプタを定義する」のKafkaアダプタ実行環境プロパティファイルの作成に関する説明を参照してください。
(3) データトレース(Kafkaアダプタ)
データトレースは,送信メッセージの情報を取得できます。メッセージの正当性の確認や,障害対策に利用できます。
(a) 出力形式
データトレースの出力形式を次に示します。
(b) 出力される内容
データトレースに出力される内容を次の表に示します。
項目 |
内容 |
---|---|
番号 |
データトレースの出力通番が表示されます。 |
日付 |
データトレースの取得日付がyyyy/mm/ddの形式で出力されます。
|
時刻 |
データトレースの取得時刻がhh:mm:ss.SSSの形式で出力されます。
ローカル時刻でミリ秒単位の時刻を示します。 |
製品ID |
製品を特定するための識別子として,Kafkaアダプタを示す「ADPKAFKA」と,バージョン情報が表示されます。 バージョン情報の形式は次のとおりです。
|
pid |
プロセスを識別するためのIDが出力されます。 |
tid |
スレッドを識別するためのIDが出力されます。 |
ID |
空白 |
RootAP情報 |
性能解析トレースに出力されるRootAPの情報であるIPアドレス・プロセスID・通信番号を「/(スラッシュ)」で区切った文字列が出力されます。 |
取得ポイント |
トレースの取得ポイント情報(取得位置)が出力されます。
|
メッセージ情報 |
メッセージ情報※が出力されます。 |
CRLF |
レコード終端符号が出力されます。 |
- 注※
-
メッセージ情報の出力形式を次に示します。
topic = [1], partition = [2], offset = [3], Timestamp = [4], serialized key size = [5], serialized value size = [6], headers = [7] RecordHeaders(headers = [RecordHeader(key = [7-1], value = [7-2]),…(ヘッダの数だけくり返し出力する)], isReadOnly = [7-3]), key = [8], value = [9], Service ID = [10]
この出力形式の各項番に対応する項目を次に説明します。設定できない項目には「****」と出力されます。
項番
項目
説明
[1]
トピック
このメッセージの送信先トピック
[2]
パーティション
このメッセージの送信先パーティション
[3]
オフセット
対応するパーティション内のこのメッセージの位置
[4]
タイムスタンプ
メッセージのタイムスタンプ
[5]
キーのサイズ
シリアル化された非圧縮キーのサイズ(単位:バイト)
[6]
値のサイズ
シリアル化された非圧縮の値のサイズ(単位:バイト)
[7]
メッセージのヘッダ
ヘッダ情報
[7-1]
ヘッダのキー
ヘッダのキー
[7-2]
ヘッダの値
ヘッダの値をhexBinary形式でエンコードして出力します。
[7-3]
ヘッダが読み取り専用か
-
読み取り専用の場合:true
-
読み取り専用でない場合:false
[8]
メッセージのキー
メッセージのキー
値がバイト配列の形式の場合は,hexBinary形式でエンコードした結果を出力します。
[9]
メッセージの値
メッセージの値
値がバイト配列の形式の場合は,hexBinary形式でエンコードした結果を出力します。
[10]
サービスID
KafkaアダプタのサービスID
メッセージ情報の出力例を次に示します。
topic = topic-1, partition = 0, offset = 81, Timestamp = 1631607555074, serialized key size = 4, serialized value size = 15, headers = RecordHeaders(headers = [RecordHeader(key = header1, value = 77FA4), RecordHeader(key = header2, value = 76F5E), RecordHeader(key = header3, value = 147A6)], isReadOnly = false), key = key1, value = value1, Service ID = srv1
-
(c) 出力先
データトレースの出力先を次に示します。
<J2EEサーバのログ出力ディレクトリ>\CSCADP\KAFKAADP\maintenance\<サービスID>
<J2EEサーバのログ出力ディレクトリ>は,usrconf.cfg(J2EEサーバ用オプション定義ファイル)のejb.server.log.directoryキーで変更できます。usrconf.cfgの詳細は,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」を参照してください。
データトレースのトレースファイル名を次に示します。
トレースファイルの出力モード |
トレースファイル名 |
---|---|
ラップアラウンドモードの場合 |
dattrace<面数>.log |
シフトモードの場合 |
dattrace.log |
データトレースのローテーションは,次のどちらかの条件に合致した際に実行されます。
-
指定したローテーション時刻に達したとき
ローテーション時刻の指定方法は,Application Serverの設定に従います。詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.3 usrconf.properties(J2EEサーバ用ユーザプロパティファイル)」を参照してください。
-
指定したファイルサイズに達したとき
トレースファイルの面数は,Kafkaアダプタ実行環境プロパティファイルのdatatracefile.numキーで変更できます。トレースファイルのサイズは,Kafkaアダプタ実行環境プロパティファイルのdatatracefile.sizeキーで変更できます。
Kafkaアダプタ実行環境プロパティファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.17.1 Kafkaアダプタ実行環境プロパティファイル」を参照してください。変更方法の詳細については,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「3.3.16 Kafkaアダプタを定義する」のKafkaアダプタ実行環境プロパティファイルの作成に関する説明を参照してください。
(4) 性能解析トレース(PRFトレース)(Kafkaアダプタ)
サービスリクエスタから要求を受け付けて,実行結果を返却するまでの一連の処理で出力される性能解析情報を基に,アプリケーションサーバシステムの性能を検証できます。Kafkaアダプタの性能解析トレース取得ポイントでは,Kafkaアダプタ固有の情報が出力されます。情報は,保守員が性能ボトルネックの解析のために使用します。
(a) 出力先
性能解析トレースの出力先およびトレースファイル名を次に示します。
トレースの出力先パス |
トレースファイル名 |
---|---|
<環境変数PRFSPOOLの設定ディレクトリ>\utt\prf\<PRF識別子>\dcopltrc※ |
prf_<n> |
(b) ファイル面数
出力ファイル面数のデフォルトは4面です。出力ファイル面数は,運用管理ポータルまたはcprfstartコマンドで変更できます。運用管理ポータルの詳細は,マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」を参照してください。cprfstartコマンドの詳細はマニュアル「アプリケーションサーバ リファレンス コマンド編」を参照してください。
(c) ファイルサイズ
性能解析トレース(PRFトレース)のファイルサイズのデフォルトは次のとおりです。
-
運用管理ポータルでファイルサイズを設定した場合:32MB
-
cprfstartコマンドでファイルサイズを設定した場合:8MB
ファイルサイズは,運用管理ポータルまたはcprfstartコマンドで変更できます。運用管理ポータルの詳細は,マニュアル「アプリケーションサーバ 運用管理ポータル操作ガイド」を参照してください。cprfstartコマンドの詳細は,マニュアル「アプリケーションサーバ リファレンス コマンド編」を参照してください。
(d) 出力形式
性能解析トレースに出力される形式は,アプリケーションサーバの性能解析トレースと同様です。詳細については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7.3 Management Serverを利用した性能解析トレースファイルの収集」を参照してください。
(e) 性能解析トレースの取得ポイント
Kafkaアダプタの性能解析トレース取得ポイントでは,Kafkaアダプタ固有の情報が出力されます。
Kafkaアダプタの性能解析トレース取得ポイントを次に示します。
性能解析トレースの取得ポイントには,ポイント固有のイベントIDが割り当てられます。Kafkaアダプタで出力されるトレースのイベントIDは0xab10〜0xab13です。
イベントID,トレース取得ポイント,および性能解析トレース取得レベルを次の表に示します。表の「図中の番号」は,上の図の番号と対応しています。
イベントID |
図中の番号 |
トレース取得ポイント |
レベル |
---|---|---|---|
0xab10 |
1 |
リクエスト受付時 |
B |
0xab11 |
2 |
メッセージ送信処理呼び出し時 |
A |
0xab12 |
3 |
メッセージ送信処理完了時 |
A |
0xab13 |
4 |
レスポンス送信時 |
B |
PRFトレースの取得レベルを変更する場合,cprflevelコマンドの-PrfChangeLevelオプションに,32ビットの16進数(8桁)の値を2つ指定します。それぞれの16進数の値には,インデックス番号(インデックス1,インデックス2)が割り当てられています。KafkaアダプタのPRFトレースの取得レベルは,インデックス2の7桁目に指定してください。
cprflevelコマンドの指定方法については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cprflevel(PRFトレース取得レベルの表示と変更)」を参照してください。性能解析トレースレベルの変更方法の詳細については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」を参照してください。デフォルトは「標準」です。
(5) 例外ログ(Kafkaアダプタ)
トレースの開始以降に発生した例外情報(スタックトレース)を例外ログとして別のファイルに出力します。例外ログでは,出力ファイルのパスと出力レベルは設定しないで,出力ファイルのサイズと面数を設定します。
Kafkaアダプタの例外ログについて説明します。
(a) 例外ログの出力形式
例外ログの出力形式を次の図に示します。
(b) 出力される内容
例外ログに出力される内容を次の表に示します。
項目 |
内容 |
---|---|
番号 |
例外ログの出力通番が表示されます。 |
日付 |
例外ログの取得日付がyyyy/mm/ddの形式で出力されます。
|
時刻 |
例外ログの取得時刻がhh:mm:ss.SSSの形式で出力されます。
ローカル時刻でミリ秒単位の時刻を示します。 |
製品ID |
製品を特定するための識別子として,Kafkaアダプタを示す「ADPKAFKA」が出力されます。 |
pid |
プロセスを識別するためのIDが出力されます。 |
tid |
スレッドを識別するためのIDが出力されます。 |
ID |
空白 |
スタックトレース情報 |
スタックトレース情報が出力されます。 |
CRLF |
レコードの終端符号が出力されます。 |
(c) 出力先
例外ログの出力先を次に示します。
<J2EEサーバのログ出力ディレクトリ>\CSCADP\KAFKAADP\maintenance\<サービスID>
<J2EEサーバのログ出力ディレクトリ>は,usrconf.cfg(J2EEサーバ用オプション定義ファイル)のejb.server.log.directoryキーで変更できます。usrconf.cfgの詳細は,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」を参照してください。
例外ログのログファイル名を次の表に示します。
ログファイルの出力モード |
ログファイル名 |
---|---|
ラップアラウンドモードの場合 |
csckafkaadpexp_<HCSCサーバ名>_<面数>.log |
シフトモードの場合 |
csckafkaadpexp_<HCSCサーバ名>_.log |
例外ログのローテーションは,次のどちらかの条件に合致した際に実行されます。
-
指定したローテーション時刻に達したとき
ローテーション時刻の指定方法は,Application Serverの設定に従います。詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.3 usrconf.properties(J2EEサーバ用ユーザプロパティファイル)」を参照してください。
-
指定したファイルサイズに達したとき
ログファイルの面数は,Kafkaアダプタ実行環境プロパティファイルのexptracefile.numプロパティで指定します。ログファイルのサイズは,Kafkaアダプタ実行環境プロパティファイルのexptracefile.sizeプロパティで指定します。
Kafkaアダプタ実行環境プロパティファイルの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「6.17.1 Kafkaアダプタ実行環境プロパティファイル」を参照してください。
(6) Kafkaプロトコルトレース(Kafkaアダプタ・Kafkaインバウンドアダプタ共通)
Kafkaプロトコルトレースには,Brokerへの接続処理やリクエスト内容などを出力します。KafkaプロトコルトレースはKafkaインバウンドアダプタと共通で使用します。
(a) 出力形式
Kafkaプロトコルトレースの出力形式を次の図に示します。
(b) 出力される内容
Kafkaプロトコルトレースに出力される内容を次の表に示します。
項目 |
内容 |
---|---|
日付 |
Kafkaプロトコルトレースの取得日付がyyyy/mm/ddの形式で出力されます。
|
時刻 |
Kafkaプロトコルトレースの取得時刻がhh:mm:ss.SSSの形式で出力されます。
ローカル時刻でミリ秒単位の時刻を示します。 |
pid |
プロセスを識別するためのIDが出力されます。OSが管理するプロセスIDとは異なります。 |
tid |
スレッドを識別するためのIDが出力されます。OSが管理するスレッドIDとは異なります。 |
クラス名 |
クラス名が出力されます。 |
メソッド名 |
メソッド名が出力されます |
kafka-clients内のログ出力内容 |
kafka-clients内のログ内容が出力されます。 |
CRLF |
レコードの終端符号が出力されます。 |
(c) 出力先
Kafkaプロトコルトレースの出力先を次に示します。
<J2EEサーバのログ出力ディレクトリ>\csc\maintenance\kafka\
<J2EEサーバのログ出力ディレクトリ>は,HCSCサーバが動作するJ2EEサーバ用オプション定義ファイル(usrconf.cfg)のejb.server.log.directoryキーで指定します。詳細は,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」を参照してください。
Kafkaプロトコルトレースのトレースファイル名を次に示します。
ファイルの種類 |
トレースファイル名 |
---|---|
現用ファイル |
kafkaprotocoltrace.log |
バックアップファイル※ |
kafkaprotocoltrace.log.<面数> |
Kafkaプロトコルトレースの採取有無,出力レベル,ファイルサイズ,およびファイル面数は,HCSCサーバランタイム定義ファイルの次に示すプロパティで変更できます。
-
kafka-protocoltrace-enabled=Kafkaプロトコルトレースの採取有無
-
kafka-protocoltrace-level=Kafkaプロトコルトレースの出力レベル
-
kafka-protocoltrace-filenum=Kafkaプロトコルトレース面数
-
kafka-protocoltrace-filesize=Kafkaプロトコルトレースファイルサイズ
HCSCサーバランタイム定義ファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.5.6 HCSCサーバランタイム定義ファイル」を参照してください。