ログの表示と管理

クラウドインフラストラクチャプロジェクト上のAdobe Commerceのログは、​ フックのビルドとデプロイ ​、クラウドサービス、Adobe Commerce アプリケーションに関する問題のトラブルシューティングに役立ちます。

ファイルシステム、Cloud Consoleおよびmagento-cloud CLIからログを表示できます。

  • ファイルシステム - /var/log システムディレクトリには、すべての環境のログが含まれています。 var/log/ ディレクトリには、特定の環境に固有のアプリ固有のログが含まれています。 これらのディレクトリは、クラスター内のノード間で共有されません。 Pro実稼動環境とステージング環境では、各ノードのログを確認する必要があります。

  • Cloud Console – 環境​メッセージ リストで、ビルド、デプロイ、デプロイ後のログ情報を確認できます。

  • Cloud CLI- magento-cloud log コマンドを使用してローカル環境ログを表示するか、magento-cloud ssh コマンドを使用してリモート環境ログを表示できます。

ログの場所

システムログは、次の場所に保存されます。

  • 統合:/var/log/<log-name>.log
  • プロステージング:/var/log/platform/<project-ID>_stg/<log-name>.log
  • プロプロダクション:/var/log/platform/<project-ID>/<log-name>.log

<project-ID>の値は、プロジェクトと、環境がステージング環境か実稼動環境かによって異なります。 例えば、プロジェクト IDがyw1unoukjcaweの場合、ステージング環境ユーザーはyw1unoukjcawe_stg、実稼動環境ユーザーはyw1unoukjcaweです。

この例を使用すると、デプロイログは次のとおりです。/var/log/platform/yw1unoukjcawe_stg/deploy.log

特定のエラーログレコードの検索

特定のログレコード番号(475a3bca674d3bbc77b35973d028e6da1cbee7404888bfb113daffc6b2f4a7b9など)でエラーが発生した場合は、次の方法を使用してCommerce application server remote environment logsをクエリすることで、レコードを見つけることができます。

NOTE
Secure Shell (SSH)を使用してCommerce アプリケーションのリモート環境ログにアクセスする手順については、​ リモート環境へのセキュアな接続を参照してください。

方法1:grepを使用して検索する

# Search for the specific error record in all log files
magento-cloud ssh -e <environment-ID> "grep -r '475a3bca674d3bbc77b35973d028e6da1cbee7404888bfb113daffc6b2f4a7b9' /var/log/"

# Search in specific log files
magento-cloud ssh -e <environment-ID> "grep '475a3bca674d3bbc77b35973d028e6da1cbee7404888bfb113daffc6b2f4a7b9' /var/log/exception.log"

方法2:アーカイブされたログ内の検索

過去にエラーが発生した場合は、アーカイブされたログファイルを確認します。

# Search in compressed log files
magento-cloud ssh -e <environment-ID> "find /var/log -name '*.gz' -exec zgrep '475a3bca674d3bbc77b35973d028e6da1cbee7404888bfb113daffc6b2f4a7b9' {} \;"

方法3:New Relicを使用する(Pro環境)

Pro実稼動環境およびステージング環境では、New Relic ログを使用して特定のエラーレコードを検索します。 詳しくは、New Relic ログ管理を参照してください。

リモート環境のログを表示する

ほとんどのログには、リモート環境で発生するイベントが含まれています。 Proの場合、複数のノードがあり、各ノードには一意のログがあります。 すべてのホストのリストを表示するには、次を使用します。

magento-cloud ssh -p <project-ID> -e <environment-ID> --all

回答サンプル:

1.ent-project-environment-id@ssh.region.magento.cloud
2.ent-project-environment-id@ssh.region.magento.cloud
3.ent-project-environment-id@ssh.region.magento.cloud

リモート環境ログのリストを表示するには:

magento-cloud ssh -e <environment-ID> "ls var/log"

Proの例:

ssh 1.ent-project-environment-id@ssh.region.magento.cloud "ls var/log | grep error"

リモートログを表示するには:

magento-cloud ssh -e <environment-ID> "cat var/log/cron.log"

Proの例:

ssh 1.ent-project-environment-id@ssh.region.magento.cloud "cat var/log/cron.log"
TIP
Pro ステージング環境およびPro実稼動環境では、固定ファイル名のログファイルに対して、自動ログのローテーション、圧縮、削除が有効になります。各ログファイルタイプには、回転パターンとライフタイムがあります。
環境のログのローテーションと圧縮されたログの有効期間に関する詳細は、/etc/logrotate.conf/etc/logrotate.d/<various>で確認できます。
Pro ステージング環境およびPro実稼動環境の場合、ログローテーション設定の変更を求めるには、Adobe Commerce サポートチケット ​を送信する必要があります。
TIP
ログのローテーションは、Pro統合環境では設定できません。
Pro統合の場合は、カスタムソリューション/スクリプトを実装し、必要に応じてスクリプトを実行するようにcronを設定する必要があります。
NOTE
スタータープロジェクト環境には、ログのローテーションがありません。

ログのビルドとデプロイ

環境に変更をプッシュした後、var/log/cloud.log ファイル内の各フックからのログ記録を確認できます。 ログには、各フックの開始メッセージと停止メッセージが含まれます。 次の例では、メッセージは「Starting post-deploy.」および「Post-deploy is complete.」です

ログエントリのタイムスタンプを確認し、特定のデプロイメントのログを確認して見つけます。 次に、トラブルシューティングに使用できるログ出力の例を示します。

Re-deploying environment project-integration-ID
  Executing post deploy hook for service `mymagento`
    [2019-01-03 19:44:11] NOTICE: Starting post-deploy.
    [2019-01-03 19:44:11] INFO: Validating configuration
    [2019-01-03 19:44:11] INFO: End of validation
    [2019-01-03 19:44:11] INFO: Enable cron
    [2019-01-03 19:44:11] INFO: Create backup of important files.
    [2019-01-03 19:44:11] INFO: Backup /app/app/etc/env.php.bak for /app/app/etc/env.php was created.
    [2019-01-03 19:44:11] INFO: Backup /app/app/etc/config.php.bak for /app/app/etc/config.php was created.
    [2019-01-03 19:44:11] INFO: php ./bin/magento cache:flush --ansi --no-interaction
    [2019-01-03 19:44:32] INFO: Warming up failed: http://integration-id-project.us.magentosite.cloud/
    [2019-01-03 19:44:32] NOTICE: Post-deploy is complete.
TIP
Cloud環境を設定する際に、ビルドとデプロイのアクション用に​ ログベースのSlackとメール通知を設定できます。

次のログは、すべてのCloud プロジェクトに共通の場所を持ちます。

  • デプロイメントログ: var/log/cloud.log
  • 前回のデプロイメントエラーログ: var/log/cloud.error.log
  • デバッグログ: var/log/debug.log
  • 例外ログ: var/log/exception.log
  • システム ログ: var/log/system.log
  • サポートログ: var/log/support_report.log
  • レポート: var/report/

cloud.log ファイルには、デプロイメントプロセスの各段階からのフィードバックが含まれていますが、デプロイメントフックによって作成されたログは、各環境に固有です。 環境固有のデプロイログは、次のディレクトリにあります。

  • スターターとプロの統合: /var/log/deploy.log
  • Pro ステージング: /var/log/platform/<project-ID>_stg/deploy.log
  • Pro実稼動: /var/log/platform/<project-ID>/deploy.log

デプロイ ログ

各デプロイメントのログは、特定のdeploy.log ファイルに連結されます。 次の例では、現在の環境のデプロイログをターミナルに出力します。

magento-cloud log -e <environment-ID> deploy

回答サンプル:

Reading log file projectID-branchname-ID--mymagento@ssh.zone.magento.cloud:/var/log/'deploy.log'

[2023-04-24 18:58:03.080678] Launching command 'b'php ./vendor/bin/ece-tools run scenario/deploy.xml\\n''.

[2023-04-24T18:58:04.129888+00:00] INFO: Starting scenario(s): scenario/deploy.xml (magento/ece-tools version: 2002.1.14, magento/magento2-base version: 2.4.6)
[2023-04-24T18:58:04.364714+00:00] NOTICE: Starting pre-deploy.
...
WARNING
カスタムテーマファイルが見つからないなど、デプロイメント後にアプリケーションの静的コンテンツファイルに問題が発生した場合は、想定される最大実行時間を900秒以上に増やします。

エラーログ

デプロイメントプロセス中に生成されたエラーと警告メッセージは、var/log/cloud.logvar/log/cloud.error.log ファイルの両方に書き込まれます。 クラウドエラーログファイルには、最新のデプロイメントからのエラーと警告のみが含まれます。 空のファイルは、エラーのないデプロイメントが成功したことを示します。

Cloud CLI SSHを使用してログファイルを表示するか、ECE-Toolsを使用してエラーを表示して候補を表示できます。

magento-cloud ssh -e <environment-ID> "./vendor/bin/ece-tools error:show"

回答サンプル:

errorCode: 1001
stage: build
step: validate-config
suggestion: Please run the following commands:
1. bin/magento module:enable --all
2. git add -f app/etc/config.php
3. git commit -m 'Adding config.php'
4. git push
title: File app/etc/config.php does not exist
type: warning
---------------

errorCode: 1006
stage: build
step: validate-config
suggestion: Your application does not have the "post_deploy" hook enabled.
  In order to minimize downtime, add the following to ".magento.app.yaml":
  hooks:
      post_deploy: |
          php ./vendor/bin/ece-tools run scenario/post-deploy.xml
title: The configured state is not ideal
type: warning

ほとんどのエラーメッセージには、説明と提案されたアクションが含まれています。 ECE-Tools🔗の エラーメッセージ参照を使用して、エラーコードを調べて詳細なガイダンスを得ることができます。 詳しいガイダンスについては、Adobe Commerce デプロイメントのトラブルシューティング ​を参照してください。

アプリケーションログ

デプロイログと同様に、アプリケーションログは各環境に対して一意です。

ログファイル
スターターとプロの統合
説明
ログのデプロイ
/var/log/deploy.log
​ デプロイ フック ​のアクティビティ。
デプロイ後のログ
/var/log/post_deploy.log
​ デプロイ後のフック ​のアクティビティ。
Cron ログ
/var/log/cron.log
cron ジョブからの出力。
Nginx アクセス ログ
/var/log/access.log
Nginxの開始時に、見つからないディレクトリと除外されたファイルタイプに対するHTTP エラーが発生します。
Nginx エラーログ
/var/log/error.log
Nginxに関連する設定エラーのデバッグに役立つ起動メッセージ。
PHP アクセス ログ
/var/log/php.access.log
PHP サービスへのリクエスト。
PHP FPM ログ
/var/log/app.log

Pro ステージング環境および実稼動環境の場合、デプロイ、ポストデプロイ、およびCron ログは、クラスター内の最初のノードでのみ使用できます。

ログファイル
プロステージング
プロ制作
ログのデプロイ
最初のノードのみ:
/var/log/platform/<project-ID>_stg*/deploy.log
最初のノードのみ:
/var/log/platform/<project-ID>/deploy.log
デプロイ後のログ
最初のノードのみ:
/var/log/platform/<project-ID>_stg*/post_deploy.log
最初のノードのみ:
/var/log/platform/<project-ID>/post_deploy.log
Cron ログ
最初のノードのみ:
/var/log/platform/<project-ID>_stg*/cron.log
最初のノードのみ:
/var/log/platform/<project-ID>/cron.log
Nginx アクセス ログ
/var/log/platform/<project-ID>_stg*/access.log
/var/log/platform/<project-ID>/access.log
Nginx エラーログ
/var/log/platform/<project-ID>_stg*/error.log
/var/log/platform/<project-ID>/error.log
PHP アクセス ログ
/var/log/platform/<project-ID>_stg*/php.access.log
/var/log/platform/<project-ID>/php.access.log
PHP FPM ログ
/var/log/platform/<project-ID>_stg*/php5-fpm.log
/var/log/platform/<project-ID>/php5-fpm.log

アーカイブされたログファイル

アプリケーションログは1日に1回圧縮およびアーカイブされ、デフォルトで​ 30日間 ​保持されます(Pro ステージングおよび実稼動クラスターの場合)。ログのローテーションは、すべての統合/スターター環境で利用できません。 圧縮されたログには、Number of Days Ago + 1に対応する一意のIDを使用して名前が付けられます。 例えば、Proの本番環境では、過去21日間のPHP アクセスログが保存され、次のように名前が付けられます。

/var/log/platform/<project-ID>/php.access.log.22.gz

アーカイブされたログファイルは、圧縮前に元のファイルが配置されていたディレクトリに常に保存されます。

​ サポートチケット ​を送信して、ログの保持期間またはログローテーション設定の変更を要求できます。 保持期間を最大365日まで延長したり、ストレージ クォータを節約するために期間を短縮したり、logrotate設定に追加のログパスを追加したりできます。 これらの変更は、Pro ステージングおよび実稼動クラスターで使用できます。

例えば、var/log/mymodule ディレクトリにログを保存するためのカスタムパスを作成する場合、このパスのログローテーションをリクエストできます。 ただし、現在のインフラストラクチャでは、ログのローテーションを適切に設定するために、Adobeに一貫したファイル名が必要です。 Adobeでは、設定の問題を回避するために、ログ名の一貫性を維持することをお勧めします。

NOTE
デプロイ​および​ デプロイ後 ​のログファイルはローテーションされず、アーカイブされません。 デプロイメント履歴はすべて、ログファイル内に書き込まれます。

サービスログ

各サービスは個別のコンテナで実行されるため、サービスログは統合環境では使用できません。 Adobe Commerce クラウドインフラストラクチャでは、統合環境でのみweb サーバーコンテナにアクセスできます。 次のサービスログの場所は、Pro実稼動環境とステージング環境用です。

  • Redis ログ: /var/log/platform/<project-ID>*/redis-server-<project-ID>*.log
  • Elasticsearch ログ: /var/log/elasticsearch/elasticsearch.log
  • Java ガベージコレクションログ: /var/log/elasticsearch/gc.log
  • メールログ: /var/log/mail.log
  • MySQL エラーログ: /var/log/mysql/mysql-error.log
  • MySQL スローログ: /var/log/mysql/mysql-slow.log
  • RabbitMQ ログ: /var/log/rabbitmq/rabbit@host1.log

サービスログは、ログの種類に応じて、異なる期間アーカイブおよび保存されます。 例えば、MySQLのログの有効期間は最も短く、7日後に削除されます。

TIP
スケーリングされたアーキテクチャ内のログファイルの場所は、ノードタイプによって異なります。 「拡張アーキテクチャの場所をログに記録する」トピックを参照してください。

プロの実稼動とステージング用のログデータ

Pro実稼動環境およびステージング環境では、プロジェクトに統合されたNew Relic ログ管理を使用して、Adobe Commerce on cloud infrastructure プロジェクトに関連付けられたすべてのログから集約されたログデータを管理します。

New Relic Logs アプリケーションは、クラウドインフラストラクチャの実稼動環境とステージング環境でAdobe Commerceをトラブルシューティングおよび監視するための一元化されたログ管理ダッシュボードを提供します。 また、ダッシュボードでは、Fastly CDN、Image Optimization、web アプリケーションファイアウォール(WAF)サービスのログデータへのアクセスも提供されます。 New Relic サービス ​を参照してください。

recommendation-more-help
commerce-on-cloud-help-cloud-guide