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.