我们将弃用本地 API。请参阅我们的本地 API 弃用文档,了解弃用详情以及如何迁移到我们的下一代云端 API。

支持日志

除了使用 support 节点检索您的支持信息外,您还可检索 Docker 日志、AWS 日志以及 HTTP 请求编号来解决问题。

本文档包含以下内容:

请参阅联系支持团队,详细了解如何开立站内支持工单。

检索 Docker 日志

使用 WADebug(首选

您可以使用 WADebug 工具自动收集和上传日志。您将在响应中收到 run_id,在站内支持中引用此编号可加快调查速度。只需运行以下命令即可:

  wadebug logs --send

注意:在高可用性或多连接模式下,容器安装在一台或多台主机上。对于这类模式,您需要登录各主机,安装 WADebug,然后运行上述命令。每次成功运行该命令时,您都会收到 run_id,在站内支持中引用此编号可加快调查速度。

使用 Docker

如果您无法使用 WADebug 工具,可以使用 docker logs命令单独检索各个容器的日志。例如,如要检索 waweb 容器中的日志,请运行以下命令:

docker logs <container id of waweb> >> waweb.log

您可以使用各种 docker logs 命令选项限制日志文件的大小。例如,如要仅获取 waweb 容器中后 1,000 行的日志,请运行以下命令:

docker logs <container id of waweb> --tail 1000 >> waweb.log

如要仅获取特定时间段内的 waweb 容器日志,请运行 docker logs 命令并使用 --since--until 选项,例如:

docker logs <container id of waweb> --since 2020-01-20T20:00:00Z --until 2020-01-21T08:00:00Z >> waweb.log

运行 docker logs 命令并加入所有 WhatsApp 容器,然后将这些文件发送到 WhatsApp 进行分析和调试。请参阅官方 docker logs文档,了解更多选项。

注意:所有容器日志均使用 GMT 时区。您需要将 GMT 时间戳传递给 --since--until 参数。

使用 Docker Compose

如获取所有 WhatsApp 容器中的全部日志,请运行以下命令:

WA_API_VERSION=new-whatsapp-version docker-compose logs > debug_output.txt

注意:此命令会生成非常大的日志文件。请参阅“使用 Docker”部分,了解如何使用选项检索较小且相关度更高的日志。

然后,您可以将这些文件发送到 WhatsApp,以进行分析和调试。

崩溃日志

我们在版本 2.53 中实现了一个新的崩溃日志系统,它可以在崩溃发生时保存转储文件。这些被称为崩溃转储的文件存储在 logs/ 目录中,并保存 30 天。这些文件只在机器上本地存储,可以使用与日志文件相同的方式检索。崩溃转储可能包括与崩溃线程相关的内存数据

检索 Kubernetes 日志

使用 kubectl

如要获取特定已部署服务(例如网页应用)的日志,请在 Kubernetes 设置中运行以下命令:

kubectl logs deployments/whatsapp-web-deployment > whatsapp-web-deployment.txt

然后,您可以将文件发送到 WhatsApp,以进行分析和调试。

检索 AWS 日志

请按照以下步骤获取 AWS 设置上的日志:

Rollback on Failure 设置为 No,以确保失败时日志不会被删除

这需要在堆栈创建或更新步骤期间设置,具体如下所示:

从 CloudWatch 控制台获取 CloudFormation 堆栈创建日志和事件


连接到您的 EC2 实例(如果已成功创建该实例)

遵循 AWS 指南,了解如何使用 SSH 登录您的 EC2 实例。请注意,在 WhatsApp Business API 堆栈创建或更新期间,您可以选择使用私有 VPC 或公共 VPC。如果使用私有 VPC,您需要按照 Securely Connect to Linux Instances Running in a Private Amazon VPC(安全连接到在私有 Amazon VPC 中运行的 Linux 实例)部分进行操作。

获取日志

当您获得容器的访问权限后,请获取以下日志并将其附加到站内支持工单中。

  1. sudo docker logs ecs-agent > ecs-agent.log
  2. 检索堆栈创建的所有 EC2 实例的 /var/log 并将其压缩为 .zip 文件
  3. 在所有 EC2 实例上安装 WADebug 并运行 wadebug logs命令以收集所有容器日志。
  4. 如果在第 3 步中无法使用 WADebug,请运行以下命令,以便手动收集日志:
    • 运行 docker ps -a 以列出所有正在运行的容器并分享输出结果
    • 运行 docker logs <docker container id of the core app> >> wacore.log 并分享日志
    • 运行 docker logs <docker container id of the web app> >> waweb.log 并分享日志
    • 运行 docker cp <docker container id of the web app>:/var/log/whatsapp/web.log ./web.log 并分享日志
    • 运行 docker cp <docker container id of the web app>:/var/log/lighttpd/error.log ./error.log 并分享日志

动态记录

如果未创建 EC2 实例,则需要相应自动缩放小组的动态记录。您可以在 EC2 console(EC2 控制台)-> AUTO SCALING(自动缩放)-> Auto Scaling Groups(自动缩放小组)中找到动态记录。然后为有问题的堆栈选择相应的小组,并选择 Activity History(动态记录)选项卡。

收集 HTTP 请求编号

v2.21.3 开始,WhatsApp Business API 会为收到的每个传入 HTTP 请求生成唯一的请求编号。这些请求编号用于帮助精确找出与特定请求相关的日志,以便快速排除故障。如要报告漏洞,请在工单中加入 X-Request-IDX-Internal-Request-IDS 响应标头的值,以帮助查明和重现您的问题。