Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


10.5.1 メッセージログ

〈この項の構成〉

(1) 出力先

(a) HMP-PCTOが出力するメッセージログ

HMP-PCTOは、メッセージログをログレベルに応じて標準出力および標準エラー出力に出力します。メッセージログのログレベルと出力先の対応を次の表に示します。

表10‒32 ログレベルと出力先

ログレベル

出力先

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
表10‒34 出力情報

出力情報

説明

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のドキュメントを参照してください。

  1. 次の表に示すとおりに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

  2. 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>
  3. カスタマイズしたlogback-spring.xmlファイルを次の表に示す仕様に従って格納する

    表10‒36 logback-spring.xmlファイルの格納仕様

    項目

    仕様

    ファイル名

    logback-spring.xml

    ファイル格納パス

    Springアプリケーションのリソースフォルダの直下

(b) メッセージプロパティファイル

HMP-PCTOは、メッセージログを作成するためにメッセージプロパティファイルを参照しています。ファイルはHMP-PCTOのライブラリファイル内に格納されています。

重要

ユーザ責務のKubernetesアプリケーションで使用するプロパティファイル

ユーザ責務のKubernetesアプリケーションでは、リソースフォルダの直下に次プロパティファイルを作成しないでください。作成した場合は、メッセージログが正常な出力フォーマットで出力されなくなります。

プロパティファイル名:hmppcto_messages.properties