诊断和验证基础架构

指南主题

诊断基础架构

本页面提供了有关如何排查和验证汇总服务基础架构的问题的指导。请按照相应步骤找出问题并加以解决。

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 错误不明确,您可以通过在 TRACE 级别启用 Terraform 日志记录来查看输出。

Google Cloud

Google Cloud 的 Terraform 提供程序由 HashiCorp 和 Google 联合开发。如有其他问题和问题排查建议,请与 Cloud Terraform 支持团队联系以了解详情,或前往 Hashicorp Discuss 门户的“Google”部分

Amazon Web Services

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

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

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

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

验证您的 Cloud 设置

验证您在所选公共云中的汇总服务基础架构是否已正确部署。为此,我们将使用示例调试报告,并在调试模式下运行作业。如果汇总服务能够接收 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 问题或提交技术支持表单通知我们。