10.5.1 メッセージログ
- 〈この項の構成〉
(1) 出力先
(a) HMP-PCTOが出力するメッセージログ
HMP-PCTOは、メッセージログをログレベルに応じて標準出力および標準エラー出力に出力します。メッセージログのログレベルと出力先の対応を次の表に示します。
ログレベル |
出力先 |
---|---|
ERROR |
標準エラー出力 |
WARN |
標準出力 |
INFO |
標準出力 |
出力内容は、次の方法で確認できます。
-
Kubernetesのkubectl logsコマンド
出力内容は、Kubernetesのkubectl logsコマンドで確認できます。詳細については、Kubernetesのリファレンスを参照してください。
-
Kibanaなどの可視化ツール
Elasticsearchに格納された情報を、Kibanaなどの可視化ツールで確認できます。詳細については、Kibanaなどの可視化ツールのリファレンスを参照してください。
KibanaのDiscover機能でHMP-PCTOのメッセージを抽出するためのフィールドを次の表に示します。このフィールドはFilebeatによって設定されています。
表10‒33 検索対象のフィールド フィールド名
説明
@timestamp
Filebeatで付与された時刻情報。
検索時に対象時刻の絞り込みに使用します。
kubernetes.container.name
ログが出力されたコンテナ名。
サイドカーとして起動したFilebeatで収集したログでは、「-」として表されます。
kubernetes.deployment.name
Podを定義したDeploymentリソースの名前。
サイドカーとして起動したFilebeatで収集したログでは、「-」として表されます。
Deploymentで作成したPodではない場合は、「-」として表されます。
kubernetes.daemonset.name
Podを定義したDaemonsetリソースの名前。
サイドカーとして起動したFilebeatで収集したログでは、「-」として表されます。
Daemonsetで作成したPodではない場合は、「-」として表されます。
kubernetes.labels.*
Podに設定したラベルに設定した値。
* には、ラベルのkeyに相当する値が入ります。
サイドカーとして起動したFilebeatで収集したログでは、「-」として表されます。
kubernetes.namespace
ログが出力されたPodが作成されているネームスペース名。
サイドカーとして起動したFilebeatで収集したログでは、Pod名を付与するために設定が必要です。設定内容については、「3.6 Kubernetesマニフェスト作成」に記載のマニフェスト例を参照してください。
kubernetes.node.name
ログが出力されたPodが起動しているKubernetesノードの名前。
サイドカーとして起動したFilebeatで収集したログでは、Pod名を付与するために設定が必要です。設定内容については、「3.6 Kubernetesマニフェスト作成」に記載のマニフェスト例を参照してください。
kubernetes.pod.name
ログが出力されたPod名。
サイドカーとして起動したFilebeatで収集したログでは、Pod名を付与するために設定が必要です。設定内容については、「3.6 Kubernetesマニフェスト作成」に記載のマニフェスト例を参照してください。
検索時には、メッセージを抽出したいHMP-PCTOのコンポーネントを指定します。
(例)「mediator」
kubernetes.statefulset.name
Podを定義したStatefulsetリソースの名前。
サイドカーとして起動したFilebeatで収集したログでは、「-」として表されます。
Statefulsetで作成したPodではない場合は、「-」として表されます。
log.file.path
ログが出力されたファイルパス。
message
ログ本文。
検索時には、「KFSG*」と指定して、HMP-PCTOが出力したメッセージを抽出します。
図10‒26 検索の例
(b) ライフサイクルイベントハンドラが出力するメッセージログ
Kubernetesのコンテナのライフサイクルイベントハンドラは、メッセージログを標準出力および標準エラー出力します。出力内容は、Kubernetesのイベントリソースに保存されます。Kubernetesのkubectl describeコマンドまたはkubectlget eventsコマンドで確認できます。
詳細については、Kubernetesのリファレンスを参照してください。
(2) 出力フォーマット
(a) HMP-PCTOが出力するメッセージログ
メッセージの出力フォーマットを次に示します。
yyyy-mm-dd hh:mm:ss.SSS level hostname thread classname PID KFSGN1N2N3N4N5-X message
出力情報 |
説明 |
---|---|
yyyy-mm-dd hh:mm:ss.SSS |
出力日時 年月日 時分秒ミリ秒 |
level |
ログレベル |
hostname |
ホスト名の値を取得し、出力します。 値が取得できない場合は、nullを表示します。 |
thread |
スレッド名 |
classname |
メッセージ出力元クラス名 短縮名で表示します。 <例> 正式名称:jp.co.Hitachi.soft.hmppcto.common.Myclass 短縮名:j.c.H.s.h.c.Myclass |
PID |
プロセスID |
KFSGN1N2N3N4N5-X |
メッセージID |
message |
メッセージテキスト |
メッセージログ出力例を次に示します。
2023-03-09 18:49:08.347 INFO myhost Main j.c.H.s.h.c.Myclass 31 KSFG10000-E test message. information = test information
(b) ライフサイクルイベントハンドラが出力するメッセージログ
メッセージの出力フォーマットを次に示します。
KFSGN1N2N3N4N5-X message
(3) メッセージログ機能が参照するファイル
(a) ロギングライブラリの設定ファイル
HMP-PCTOは、メッセージログを出力するためのロギングライブラリとしてLogbackを使用します。その設定はロギングライブラリの設定ファイルを参照しています。ファイルはHMP-PCTOのライブラリファイル内に格納されています。
- 重要
-
ユーザ責務のKubernetesアプリケーションで使用するロギングライブラリの設定ファイル
ユーザ責務のKubernetesアプリケーションでLogbackを使用し、その設定をリソースフォルダの直下のlogback-spring.xmlに記載する場合、次の記載が必要です。記載しない場合は、メッセージログが正常な出力フォーマットで出力されなくなります。また、メッセージログが出力されないことがあります。ユーザ責務のKubernetesアプリケーションで、ロギングライブラリの設定を変更しない場合、次の記載は不要です。HMP-PCTOと同様の出力フォーマットでログが出力されます。
- 記載個所
-
次のどちらかに記載します。
記載個所1
<configuration> 記載個所 </configuration>
記載個所2
<springProfile name={プロファイル名}> 記載個所 </springProfile >
- 記載内容
-
logback-spring.xmlへの記載内容を次に示します。
<include resource="hmppcto-include.xml"/> <logger name="PCTO_STD" level="INFO" additivity="false"> <appender-ref ref="PCTO_STD" /> </logger> <logger name="PCTO_ERR" level="ERROR" additivity="false"> <appender-ref ref="PCTO_ERR" /> </logger>
- 重要
-
HMP-ADIFと連携する場合
HMP-ADIFのロギング機能は、Logbackを使用します。その設定はlogback-spring.xmlに定義します。ユーザ責務のKubernetesアプリケーションでHMP-ADIFと連携し、HMP-ADIFのロギングパターンでHMP-ADIFのログを出力したい場合は、次の対応が必要です。対応しない場合は、HMP-PCTOと同様の出力フォーマットでHMP-ADIFのログが出力されます。
Logbackの設定方法を次に示します。詳細については、LogbackやSpring Frameworkのドキュメントを参照してください。
-
次の表に示すとおりにHMP-ADIFのJARファイルを展開し、HMP-ADIFのデフォルト設定のlogback-spring.xmlファイルを取り出す
表10‒35 HMP-ADIFのデフォルト設定のlogback-spring.xmlファイルが含まれているJARファイル 項目
仕様
ファイル名
msa-common-core-<version>.jar
ファイル格納パス
<HMP-ADIFインストール先パス>\org\globallogic\microservice\msa-common-core\<version>
logback-spring.xmlファイル格納パス
<JARファイル展開パス>\logback-spring.xml
-
logback-spring.xmlファイルに次の記載を追加する
記載個所
<configuration> 記載個所 </configuration>
記載内容
<include resource="hmppcto-include.xml"/> <logger name="PCTO_STD" level="INFO" additivity="false"> <appender-ref ref="PCTO_STD" /> </logger> <logger name="PCTO_ERR" level="ERROR" additivity="false"> <appender-ref ref="PCTO_ERR" /> </logger>
-
カスタマイズしたlogback-spring.xmlファイルを次の表に示す仕様に従って格納する
表10‒36 logback-spring.xmlファイルの格納仕様 項目
仕様
ファイル名
logback-spring.xml
ファイル格納パス
Springアプリケーションのリソースフォルダの直下
-
(b) メッセージプロパティファイル
HMP-PCTOは、メッセージログを作成するためにメッセージプロパティファイルを参照しています。ファイルはHMP-PCTOのライブラリファイル内に格納されています。
- 重要
-
ユーザ責務のKubernetesアプリケーションで使用するプロパティファイル
ユーザ責務のKubernetesアプリケーションでは、リソースフォルダの直下に次プロパティファイルを作成しないでください。作成した場合は、メッセージログが正常な出力フォーマットで出力されなくなります。
プロパティファイル名:hmppcto_messages.properties