IBM Cloud Private でのロギングとトレース

improve this page | report issue

概説

IBM Mobile Foundation は、エラー、警告、および通知メッセージをログ・ファイルに記録します。 ロギングの基礎となるメカニズムは、アプリケーション・サーバーによって異なります。 IBM Cloud Private では、サポートされるアプリケーション・サーバーは Liberty のみです。

以下の資料で、IBM Cloud Private 上の Kubernetes クラスターで実行されている MobileFirst Server のトレースを有効にし、ログを収集する方法について説明します。

ジャンプ先:

前提条件

ログ収集およびトラブルシューティングに必要な以下のツールをインストールし、構成します。

  • Docker (docker)
  • Kubernetes CLI (kubectl)

IBM Cloud Private 上で稼働するクラスター用の kubectl クライアントを構成するには、ここに記述されているステップに従ってください。

ロギングおよびモニターのメカニズムの構成

デフォルトでは、すべての Mobile Foundation ロギングがアプリケーション・サーバー・ログ・ファイルに入ります。 Liberty で使用可能な標準ツールを使用して、Mobile Foundation サーバー・ロギングを制御できます。 詳しくは、ロギングとモニタリングのメカニズムの構成の資料を参照してください。

ロギングとモニタリングのメカニズムの構成には、ロギングを構成するために server.xml を更新する方法の詳細が記載されているほか、トレースの有効化に関する情報も提供されています。 トレースを選択的に有効にするには、フィルター com.ibm.ws.logging.trace.specification を使用します。詳細はこちらを参照してください。 このプロパティーは、jvm.option から指定するか、サーバー・インスタンスの bootstrap.properties で指定できます。

例えば、jvm.options に以下のエントリーを追加すると、com.ibm.mfp で始まるすべてのメソッドのトレースが有効になり、トレース・レベルは all に設定されます。

-Dcom.ibm.ws.logging.trace.specification=com.ibm.mfp.*=all=enabled

このエントリーは、JNDI 構成を使用して設定することもできます。 詳しくは、こちらを参照してください。

kubectl ログの収集

kubectl logs コマンドを使用すると、Kubernetes クラスター上にデプロイ済みのコンテナーに関する情報を取得できます。 例えば、以下のコマンドは、コマンドに指定されている pod_name を持つポッドのログを取得します。

kubectl logs po/<pod_name>

kubectl logs コマンドについて詳しくは、Kubernetes の資料を参照してください。

IBM 提供のカスタム・スクリプトを使用したログの収集

MobileFirst Server のログおよびコンテナーのログは、スクリプト get-icp-logs.sh を使用して収集できます。 このスクリプトは、Helm リリース名 を入力として受け取り、デプロイされているすべてのポッドのログを収集します。

このスクリプトは、以下のように実行できます。

get-icp-logs <helm_release_name> [<output_directory>] [<name_space>]

以下の表で、カスタム・スクリプトで使用される各パラメーターについて説明します。

オプション 説明 注釈
helm_release_name 該当する Helm チャート・インストール済み環境のリリース名 必須
output_directory 収集されたログが配置される出力ディレクトリー オプション
デフォルト: 現行作業ディレクトリーの下の mfp-icp-logs
name_space 該当する Helm チャートがインストールされている名前空間 オプション
デフォルト: default
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on February 28, 2020