诊断和验证基础架构

指南主题

诊断基础架构

本页面提供了有关如何排查和验证汇总服务基础架构的指南。请按照以下步骤确定并解决问题。

排查 Terraform 问题

Terraform 是由 HashiCorp 创建的基础设施即代码 (IaC) 平台,是将汇总服务部署到所选公共云的主要驱动因素。如果您尚未安装 Terraform,请查看 HashiCorp 文档,了解如何在本地获取 CLI

如果您的需求需要您切换 Terraform 版本,您还可以考虑安装 tfenv

如果您没有看到汇总服务问题的解决方案,请通过提交 GitHub 问题技术支持表单通知我们。

如果您希望手动切换 Terraform,请执行以下操作:

rm -rf $(which terraform)
wget https://releases.hashicorp.com/terraform/1.2.3/terraform_1.2.3_linux_amd64.zip
unzip terraform_1.2.3_linux_amd64.zip
mv terraform /usr/local/bin/terraform
terraform --version

如果 Terraform 错误不明确,可以通过将 Terraform 日志记录设置为 TRACE 级别来查看输出。

Google Cloud

Google Cloud 的 Terraform 提供程序由 HashiCorp 和 Google 联合开发。如需进一步咨询和获取问题排查建议,请联系 Cloud Terraform 支持团队以了解详情,或前往 Hashicorp Discuss 门户网站的 Google 部分

Amazon Web Services

您可以在 AWS 网站上找到调试文档。我们还建议您查看 HashiCorp Discuss 门户的 AWS 部分

如需进一步了解 Terraform,请访问 HashiCorp 社区门户。 如需有关一般性 Terraform 的问题排查建议,请参阅其调试文档

修改这些目录时请务必小心,因为移除这些目录会导致 Terraform 无法再识别状态。它会尝试重新配置所有资源,并在您拥有完全同名的资源时出错。如果此问题仍然存在,请通过技术支持表单与我们联系。

修改这些目录时请务必小心,因为移除这些目录会导致 Terraform 无法再识别状态。它会尝试重新配置所有资源,并在您拥有完全同名的资源时出错。如果此问题仍然存在,请通过技术支持表单与我们联系

验证云设置

验证所选公共云中的汇总服务基础架构是否已正确部署。为此,我们将使用示例调试报告并在调试模式下运行作业。如果汇总服务能够接收 API 请求并做出响应,则表明该服务正在正常运行。如果您尚未设置,建议您使用 PostmancURL 设置对汇总服务的 API 调用。请注意,在正常聚合操作期间,应关闭调试模式(设置为 false)。

除了以下步骤之外,为了进一步验证您的汇总服务基础架构,请调查您的公有云中预配的所有云组件

步骤

  1. 如需生成示例调试报告和输出网域文件,请按照相应 Codelab 的步骤操作:

  2. 运行包含此正文的 createJob 请求,并替换突出显示的占位符:

    {
      "job_request_id": "<job_request_id>",
      "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
      "input_data_bucket_name": "<input_bucket_name>",
      "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
      "output_data_bucket_name": "<output_bucket_name>",
      "job_parameters": {
        "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
        "output_domain_bucket_name": "<output_domain_bucket_name>",
        "attribution_report_to": "<reporting_origin_domain>",
        "report_error_threshold_percentage": "10", // example value
        "debug_run": "true" // optional, but should be false by default
      }
    }
    
  3. 运行 getJob 请求以查看响应。如果您收到以下响应,则表示您的汇总服务已正确部署。

    {
        "job_status": "FINISHED",
        "request_received_at": <utc_timestamp>,
        "request_updated_at": <utc_timestamp>,
        "job_request_id": "<job_request_id>",
        "input_data_blob_prefix": "<report_folder>/<input_report_prefix>.avro",
        "input_data_bucket_name": "<input_bucket_name>",
        "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
        "output_data_bucket_name": "<output_bucket_name>",
        "postback_url": "",
        "result_info": {
            "return_code": "<return_code_and_message>",
            "return_message": "Aggregation job successfully processed",
            "error_summary": {
                "error_counts": [],
                "error_messages": []
            },
            "finished_at": <utc_timestamp>
        },
        "job_parameters": {
            "debug_run": "true", // optional, but should be false by default
            "output_domain_bucket_name": "<output_domain_bucket_name>",
            "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
            "attribution_report_to": "<reporting_origin_domain>"
        },
        "request_processing_started_at": <utc_timestamp>
    }
    

如果您未收到包含 job_status: FINISHED 的回答,请前往所选公共云的 Compute Engine 或 EC2 资源,收集更多信息。检查您的汇总服务实例,并检查日志,记录您在 TEE container launcher initiatingTEE container launcher exiting 之间看到的信息,以便提供给我们的技术支持团队。

Google Cloud

  1. 前往 Google Cloud:Compute Engine
  2. 点击虚拟机实例,然后选择您的汇总服务实例。
  3. 依次点击详情 > 日志 > 日志记录(或搜索“日志浏览器”)。

Amazon Web Services

  1. 前往 Amazon Web Services:EC2 Enclave
  2. 点击 EC2 实例,然后选择您的汇总服务实例。
  3. 依次点击操作 > 监控和问题排查 > 获取系统日志

检查并查看是否发现任何与我们 GitHub 上的公开指南中的错误通知相匹配的项。

注意:如果您刚刚升级了当前版本的汇总服务,则完整的配置过程可能需要几个小时,才能在最终的计算服务实例中反映正确的实例映像。如果您的情况并非如此,请与我们联系

后续步骤

如果您找不到汇总服务问题的解决方案,请通过提交 GitHub 问题技术支持表单通知我们。