IBM Cloud Docs
ログの表示

ログの表示

ロギングを行うと、IBM Cloud® Code Engine の問題のトラブルシューティングに役立ちます。 コンソールまたはCLIを使ってログを見ることができます。

2024年3月28日現在、IBM Log Analysisこのサービスは廃止され、2025 年 3 月 30 日をもってサポートされなくなります。 顧客は移行する必要があるIBM Cloud Logs 2025年3月30日まで。 移行期間中、お客様はIBM Log AnalysisとともにIBM Cloud Logs 。 ログ記録は両方のサービスで同じです。 移行に関する情報については、IBM Log AnalysisにIBM Cloud Logsサービスを並行して実行するには、 移行計画

コンソールでのログの表示

ロギングを有効にしてコンソールでCode Engineアプリ、ジョブ、関数、ビルドを操作すると、ログはIBM Cloud Logsサービスに転送され、インデックス化されます。

アプリ、ジョブ、またはビルドのログをCode Engineコンソールで表示するには、IBM Cloud LogsインスタンスをCode Engineプロジェクトと同じリージョンに作成する必要があります。 Code Engineコンポーネントを使用する前に、このインスタンスを作成する必要はありません。 コンソールの Code Engine アプリ、ジョブ、機能、またはビルド・ページから、ロギング機能を追加できます。

Code Engine のロギングの有効化は、アカウントごとに、1 リージョンにつき 1 度だけ行う必要があります。

コンソールからログを表示する際の考慮事項

コンソールからロギングを使用したい場合、最初にIBM Cloud Logsプラットフォームログを設定し、Code Engineロギングデータを受信する必要があります。 アクティブな IBM Cloud Logs インスタンスを確認するには、「プログラム識別情報」ダッシュボードを参照してください。

IBM Cloud Logs サービスプラン の情報を確認し、保持、検索、ログ分析の必要性を検討する。

Code Engineアプリケーション、ジョブの実行、またはビルドの実行のログデータを表示する場合、IBM Cloud Logsでデータが利用可能になるまでに遅延が発生することがあります。 例えば、IBM Cloud Logsにログデータが表示されるまで、特に「Store and search データパイプラインを使用している場合は、5分から10分程度かかる場合があります。

IBM Cloud Logsインスタンスのログレイテンシとコストのバランスをとるオプションについては、データパイプライン のドキュメントを参照してください。

CLIでロギングを使用する場合、'Code Engine IBM Cloud Logsプラットフォームログを設定する必要はない。

CLIを通じて提供されるロギング機能は限られており、開発目的でのみ考慮されるべきである。 本番ワークロードを実行する場合は、常にIBM Cloud Logsインスタンスを使用する必要があります。

IBM Cloud Logsのデータにフィルタを適用できますか?

はい。 必要性に応じて、IBM Cloud Logsページから、特定のアプリケーションリビジョン、ジョブ実行、またはビルド実行に対して、特定のレベル、またはより詳細なレベルでログデータを表示するようにフィルタを変更し、スコープすることができます。

  • message.serviceName:"codeengine" 設定されている場合、Code Engineログのみが表示される。

  • label.Project:'<project_name>' が設定されている場合は、特定のプロジェクトのログのみが表示されます。

  • message._app:'<your_component_name>' が設定されている場合、指定されたコンポーネント (アプリケーション、ジョブ、またはビルド) からのログのみが表示されます。 Code Engine コンポーネントが同じ名前を共有する場合、フィルターにはこれらのコンポーネントからのログが含まれます。 以下に例を示します。

    • フィルター message.serviceName:"codeengine" AND message._app:"myapp" は、ログのスコープを myapp アプリケーション・レベルに設定します。
    • フィルター message.serviceName:"codeengine" AND message._app:"myapp\-00002" は、ログのスコープを myapp-0002 アプリケーション・リビジョン・レベルに設定します。
    • フィルター message.serviceName:"codeengine" AND message._app:"myjob" は、ログの有効範囲を特定の myjob ジョブ・レベルに設定します。
    • フィルター message.serviceName:"codeengine" AND message._app:"myjob\-jobrun\-t6m7l" は、ログのスコープを特定の myjob-jobrun-t6m7l ジョブ実行レベルに設定します。
    • フィルター message.serviceName:"codeengine" AND message._app:"mybuild" は、ログのスコープを特定の mybuild ビルド・レベルに設定します。
    • フィルター message.serviceName:"codeengine" AND message._app:"mybuild\-run\-121212" は、ログのスコープを特定の mybuild-run-121212 ビルド実行レベルに設定します。

コンソールでのロギングの設定と開始の詳細については、コンソールからアプリ、ジョブ、または関数のログを表示する を参照してください。

ログ・データが複数行の場合はどうなりますか?

IBM Cloud Logsに正しく表示されるためには、すべてのログ行にログレベルとタイムスタンプ情報が含まれていなければなりません。 ログ行が複数行にまたがる場合は、単一行になるようにログのフォーマット設定と出力の方法を変更してください。 IBM Cloud Logsを使用して、ログにJSONL形式を使用します。 また、ログは IBM Cloud Logsの制限 に準拠する必要があります。 ログの書式を変更した後、IBM Cloud Logs検索と書式機能を利用することができます。

コンソールからのアプリ・ログ、ジョブ・ログ、または機能ログの表示

アプリ、ジョブ、または機能のログを表示できます。 これらのいずれかをコンソールから表示する手順はよく似ています。

作業対象のプロジェクトを選択した後、 Code Engine の「概要」ページまたはその子ページ ( 「アプリケーション」「ジョブ」、または 「機能」 ページなど) から、あるいはアプリケーション、ジョブ、または機能に固有のページからロギング機能を追加できます。 以下のステップは、特定の Code Engine ページから作業していることを前提としています。

  1. あなたが作成し、デプロイしたアプリ、ジョブ、または機能に移動します。 Code Engine コンソールの「プロジェクト」ページでプロジェクトを選択し、必要に応じて 「アプリケーション」「ジョブ」、または 「関数」 を選択します。 作業対象のアプリ、ジョブ、または機能を選択します。
  2. 以前にIBM Cloud Logsインスタンスを作成した場合、IBM Cloud Logsサービスを開くには、[Logging] をクリックします。
  3. ロギング機能を追加して構成します。
    1. Test application(アプリケーションのテスト)、Submit job(ジョブの送信)、または Test function(関数のテスト)のオプションメニューから、Add logging(ロギングの追加)をクリックしてIBM Cloud Logsインスタンスを作成します。 この操作によって、IBM Cloud Logs サービスが開きます。
    2. IBM Cloud Logs サービスから、ロギング・インスタンスを作成します。 ロギング・インスタンスが作成されたことを確認するために、「プログラム識別情報」ダッシュボードを参照してください。
    3. Code Engine のアプリ、ジョブ、または機能のページで、 「アプリケーションのテスト」「ジョブの実行依頼」、または 「機能のテスト」 のオプション・メニューから 「ロギングの追加」 をクリックします。 今回は、IBM Cloud Logsインスタンスを選択して、プラットフォームのログを受信する。 前のステップで作成したロギング・インスタンスを選択します。 「選択」 をクリックします。 Code Engine では、有効なプラットフォーム・ログが Code Engine ロギング・データを受信する必要があります。 このアクションを完了すると、 Code Engine によってプラットフォーム・ロギングが有効になります。
  4. プラットフォーム・ログが構成されたので、 Code Engine アプリケーション、ジョブ、または機能のページで、 「アプリケーションのテスト」「ジョブの実行依頼」、または 「機能のテスト」 のオプション・メニューから 「ロギング」 をクリックして、プラットフォーム・ログ・ウィンドウを開きます。 プラットフォーム・ログがリージョンに対して設定されていることを確認するには、 「プログラム識別情報」ダッシュボードを確認します。
  5. (オプション) 必要に応じて、 検索用のフィルター を絞り込みます。
  6. 以下のいずれかのステップを実行して、構成を検証します。
    • アプリケーションまたは関数をテストするには、クリックします。テストアプリケーションまたはテスト機能必要に応じてクリックしますリクエストを送信。 Web ページでアプリケーションまたは関数を開くには、 「アプリケーション URL」 または 「関数 URL」 をクリックします。 プラットフォームログウィンドウで、テストのプラットフォームログを見ることができます。
    • ジョブの場合は、ジョブを実行します。 「ジョブ実行」 領域で、 「ジョブの実行依頼」 をクリックしてジョブを実行します。 ジョブ実行の構成値を指定します。デフォルト値を受け入れることもできます。 **「ジョブの実行依頼」**をクリックしてジョブを実行します。 ジョブ実行時のプラットフォームログは、プラットフォームログウィンドウで見ることができます。

これでIBM Cloud Logsインスタンスは、Code Engineアプリ、ジョブ、または関数のプラットフォームロギングを受信できるように設定されました。

または、Observabilityダッシュボード を使用してインスタンスを作成し、プラットフォームログのルーティングを構成する ことで、IBM Cloud Logsインスタンスを構成することもできます。

コンソールでのビルド・ログの表示

コンソールで、特定のビルド実行インスタンスのログを表示できます。

  1. Code Engine ダッシュボードに進みます。
  2. プロジェクトを選択します (またはプロジェクトを作成します)。
  3. 「プロジェクト」ページで、**「イメージ・ビルド (Image builds)」**をクリックします。
  4. 「イメージ・ビルド」 タブで、イメージ・ビルドの名前をクリックして定義済みビルドのビルド・ページを開くか、 ビルドを作成 します。
  5. 定義済みビルドのビルド・ページの**「ビルド実行 (Build runs)」セクションで、該当するビルド実行のインスタンスの名前をクリックします。 ビルド実行を作成するには、「ビルドの実行依頼 (Submit build)」**をクリックする必要がある場合があります。 ビルド実行時のプラットフォームログは、プラットフォームログウィンドウで見ることができます。 あるいは、「ビルド実行インスタンス」ページから、ビルド・ステップの詳細のビルド・ログ情報を表示することもできます。 特定のビルド・ステップ・ログ・データのビルド・ステップを展開します。 必要に応じて、オプションで 検索用のフィルター を絞り込むことができます。

CLI でのログの表示

CLI でロギング出力を表示するには、アプリまたはジョブのインスタンスが実行されている必要があります。 アプリがゼロ にスケーリングされた場合、またはジョブ実行インスタンスが完了した場合は、 ibmcloud ce app logs および ibmcloud ce jobrun logs コマンドの出力にログ・データは含まれません。 あるいは、IBM Cloud Logsサービスを使ってログデータを見ることもできます。

CLI でのアプリケーション・ログの表示

CLI で特定のアプリのアプリ・ログを表示するには、application logs コマンドを使用します。 アプリのすべてのインスタンスのログを表示したり、アプリの特定のインスタンスのログを表示したりできます。 app get コマンドを使用すると、アプリに関する詳細 (アプリの実行中インスタンスを含む) が表示されます。

  • myapp アプリのすべてのインスタンスのログを表示するには、次の例のように、--app オプションでアプリの名前を指定します。

    ibmcloud ce app logs --app myapp
    

    出力例

    Getting logs for all instances of application 'myapp'...
    OK
    
    myapp-ii18y-2-deployment-7657c5f4f9-dgk5f:
    Server running at http://0.0.0.0:8080/
    
  • アプリの特定のインスタンスのログを表示するには、次の例のように、--instance オプションでアプリの特定のインスタンスの名前を指定します。

    ibmcloud ce app logs --instance myapp-ii18y-2-deployment-7657c5f4f9-dgk5f
    

    出力例

    Getting logs for application instance 'myapp-a5yp2-2-deployment-65766594d4-hj6c5'...
    OK
    
    myapp-a5yp2-2-deployment-65766594d4-hj6c5:
    Server running at http://0.0.0.0:8080/
    

CLI でのジョブのログの表示

CLI で特定のジョブ実行についてのログを表示するには、jobrun logs コマンドを使用します。 ジョブ実行のすべてのインスタンスのログを表示したり、ジョブ実行の特定のインスタンスのログを表示したりできます。 jobrun get コマンドを使用すると、ジョブ実行に関する詳細情報 (ジョブ実行インスタンスを含む) が表示されます。

  • testjobrun ジョブ実行のすべてのインスタンスのログを表示するには、次の例のように、--jobrun オプションでジョブ実行の名前を指定します。

    ibmcloud ce jobrun logs --jobrun testjobrun
    

    出力例

    Getting jobrun 'testjobrun'...
    Getting instances of jobrun 'testjobrun'...
    Getting logs for all instances of job run 'testjobrun'...
    OK
    
    testjobrun-1-0:
    Hello World!
    
    testjobrun-2-0:
    Hello World!
    
    testjobrun-3-0:
    Hello World!
    
    testjobrun-4-0:
    Hello World!
    
    testjobrun-5-0:
    Hello World!
    
  • testjobrun-1-0 ジョブ実行インスタンスのログを表示するには、次の例のように、--instance オプションでジョブ実行の特定のインスタンスの名前を指定します。

    ibmcloud ce jobrun logs --instance testjobrun-1-0
    

    出力例

    Getting logs for job run instance 'testjobrun-1-0'...
    OK
    
    testjobrun-1-0:
    Hello World!
    

CLI でのビルド・ログの表示

CLI で特定のビルド実行のビルド・ログを表示するには、buildrun logs コマンドを使用します。 ビルド実行の名前に基づいて、ビルド実行のすべてのインスタンスのログを表示できます。

mybuildrun ビルド実行のすべてのインスタンスのログを表示するには、次の例のように、--name オプションでビルド実行の名前を指定します。

ibmcloud ce buildrun logs --name mybuildrun

出力例

Getting build run 'mybuildrun'...
Getting instances of build run 'mybuildrun'...
Getting logs for build run 'mybuildrun'...
OK

mybuildrun-zg5rj-pod-z5gzb/step-git-source-source-r9fcf:
{"level":"info","ts":1614363665.8331757,"caller":"git/git.go:169","msg":"Successfully cloned https://github.com/IBM/CodeEngine @ 8b514ce871e50d67cfea3e344b90cade4bd26e90 (grafted, HEAD, origin/main) in path /workspace/source"}
{"level":"info","ts":1614363666.82988,"caller":"git/git.go:207","msg":"Successfully initialized and updated submodules in path /workspace/source"}

mybuildrun-zg5rj-pod-z5gzb/step-build-and-push:
INFO[0002] Retrieving image manifest node:12-alpine
INFO[0002] Retrieving image node:12-alpine
INFO[0003] Retrieving image manifest node:12-alpine
INFO[0003] Retrieving image node:12-alpine
INFO[0003] Built cross stage deps: map[]
INFO[0003] Retrieving image manifest node:12-alpine
INFO[0003] Retrieving image node:12-alpine
INFO[0004] Retrieving image manifest node:12-alpine
INFO[0004] Retrieving image node:12-alpine
INFO[0004] Executing 0 build triggers
INFO[0004] Unpacking rootfs as cmd RUN npm install requires it.
INFO[0008] RUN npm install
INFO[0008] Taking snapshot of full filesystem...
INFO[0010] cmd: /bin/sh
INFO[0010] args: [-c npm install]
INFO[0010] Running: [/bin/sh -c npm install]
npm WARN saveError ENOENT: no such file or directory, open '/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/package.json'
npm WARN !invalid#2 No description
npm WARN !invalid#2 No repository field.
npm WARN !invalid#2 No README data
npm WARN !invalid#2 No license field.

up to date in 0.267s
found 0 vulnerabilities

INFO[0011] Taking snapshot of full filesystem...
INFO[0011] COPY server.js .
INFO[0011] Taking snapshot of files...
INFO[0011] EXPOSE 8080
INFO[0011] cmd: EXPOSE
INFO[0011] Adding exposed port: 8080/tcp
INFO[0011] CMD [ "node", "server.js" ]

mybuildrun-zg5rj-pod-z5gzb/step-image-digest-exporter-ngl6j:
2021/02/26 18:21:02 warning: unsuccessful cred copy: ".docker" from "/tekton/creds" to "/tekton/home": unable to open destination: open /tekton/home/.docker/config.json: permission denied
{"severity":"INFO","timestamp":"2021-02-26T18:21:26.372494581Z","caller":"logging/config.go:116","message":"Successfully created the logger."}
{"severity":"INFO","timestamp":"2021-02-26T18:21:26.372621756Z","caller":"logging/config.go:117","message":"Logging level set to: info"}