查看和管理日志

云基础架构项目上的Adobe Commerce日志可用于排除与生成和部署挂接、云服务和Adobe Commerce应用程序相关的问题。

您可以从文件系统、Cloud Console和magento-cloud CLI中查看日志。

  • 文件系统 - /var/log系统目录包含所有环境的日志。 var/log/目录包含特定环境专属的应用程序特定日志。 这些目录不在群集中的节点之间共享。 在Pro生产和暂存环境中,必须检查每个节点上的日志。

  • Cloud Console — 您可以在环境​ 消息 ​列表中看到生成、部署和部署后日志信息。

  • 云CLI — 您可以使用magento-cloud log命令查看本地环境日志,或使用magento-cloud ssh命令查看远程环境日志。

日志位置

系统日志存储在以下位置:

  • 集成: /var/log/<log-name>.log
  • Pro暂存: /var/log/platform/<project-ID>_stg/<log-name>.log
  • Pro生产: /var/log/platform/<project-ID>/<log-name>.log

<project-ID>的值取决于项目以及环境是“暂存”还是“生产”。 例如,项目ID为yw1unoukjcawe时,暂存环境用户为yw1unoukjcawe_stg,生产环境用户为yw1unoukjcawe

使用该示例,部署日志为: /var/log/platform/yw1unoukjcawe_stg/deploy.log

查看远程环境日志

大多数日志都包含在远程环境中发生的事件。 对于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暂存和生产环境,为具有固定文件名的日志文件启用自动日志轮换、压缩和删除。 每种日志文件类型都有一个旋转模式和生命周期。 入门级环境没有日志轮换。 有关环境的日志轮换和压缩日志的生命周期的完整详细信息,请参见: /etc/logrotate.conf/etc/logrotate.d/<various>。 无法在Pro Integration环境中配置日志轮换。 对于Pro集成,您必须实施自定义解决方案/脚本,并配置cron以根据需要运行脚本。

生成和部署日志

将更改推送到环境后,您可以从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
在配置云环境时,您可以设置基于日志的Slack和电子邮件通知以进行生成和部署操作。

以下日志具有适用于所有云项目的公共位置:

  • 部署日志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
  • 专业暂存/var/log/platform/<project-ID>_stg/deploy.log
  • 专业生产/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部署疑难解答程序

应用程序日志

与部署日志类似,应用程序日志对于每个环境都是唯一的:

日志文件
Starter和Pro集成
描述
部署日志
/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日志仅在群集中的第一个节点上可用:

日志文件
Pro Staging
Pro Production
部署日志
仅第一个节点:
/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

归档日志文件

应用程序日志每天压缩并存档一次,并保留一年。 压缩日志使用与Number of Days Ago + 1对应的唯一ID进行命名。 例如,在Pro生产环境中,过去21天的PHP访问日志按如下方式存储和命名:

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

存档的日志文件始终存储在压缩前原始文件所在的目录中。

NOTE
部署 ​和​ 部署后 ​日志文件未轮换和存档。 整个部署历史记录将写入这些日志文件中。

服务日志

由于每个服务都在一个单独的容器中运行,因此服务日志在集成环境中不可用。 云基础架构上的Adobe Commerce仅允许访问集成环境中的Web服务器容器。 以下服务日志位置适用于专业生产和暂存环境:

  • Redis日志/var/log/platform/<project-ID>_stg/redis-server-<project-ID>_stg.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关联的所有日志中的聚合日志数据。

New Relic Logs应用程序提供了一个集中式日志管理功能板,用于对云基础架构生产和暂存环境上的Adobe Commerce进行故障排除和监控。 仪表板还提供对Fastly CDN、图像优化和Web应用程序防火墙(WAF)服务的日志数据的访问。 请参阅New Relic服务

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26