教程:创建和更新 FinOps 中心

本教程介绍如何在 Azure 或 Microsoft Fabric 中创建新的或更新现有 FinOps 中心实例。 本教程逐步讲解在设置和配置 FinOps 中心时需要做出的部署选项和决策。 本文将会帮助你:

  • 应用 FinOps 中心先决条件。
  • 创建新的或更新现有的 FinOps 中心实例。
  • 在 FinOps 中心引入和回填数据。
  • 将中心连接到 Microsoft Fabric。
  • 创建报表和仪表板。

先决条件

  • 需要有权访问并部署 FinOps 中心模板的活动 Azure 订阅:
  • 在成本管理中访问一个或多个受支持的企业协议(EA)、Microsoft客户协议(MCA)或Microsoft合作伙伴协议(MPA)范围以配置导出:
    • 订阅和资源组:成本管理贡献者
    • EA 计费范围:企业读取者、部门读取者或帐户所有者(也称为注册帐户)。
    • MCA 计费范围:计费帐户、计费配置文件或发票科目的参与者。
    • MPA 计费范围:计费帐户、计费配置文件或客户的贡献者。
  • 可选:有权访问 Power BI 或具有参与者或成员权限的 Microsoft Fabric 工作区,以创建资源和发布报表。
  • 可选:安装了 并导入了 FinOps 工具包 PowerShell 模块 的 PowerShell 7 或 Azure Cloud Shell。

本教程将介绍更多权限。


启用所需的资源提供程序

FinOps 中心使用成本管理导出数据和事件网格,以了解何时将数据添加到存储帐户。 在部署模板之前,需要注册 Microsoft.CostManagementExportsMicrosoft.EventGrid 资源提供程序。

  1. 在 Azure 门户中,打开 订阅列表
  2. 选择要用于 FinOps 中心部署的订阅。
  3. 在左侧菜单中,选择 “设置>资源提供程序”。
  4. 在资源提供程序列表中,找到 Microsoft.EventGrid 的行。
  5. 如果 状态 列显示“未注册”,请选择提供程序名称右侧的上下文菜单(⋅⋅⋅⋅),然后选择“ 注册”。
  6. Microsoft.CostManagementExports 重复步骤 4-5。

规划网络体系结构

你更喜欢公共或专用网络路由吗?

公共路由最常见且最容易使用。 可从打开的 Internet 访问资源。 访问控制通过基于角色的访问控制(RBAC)进行控制。 公共路由不需要配置。

你更喜欢公共或专用网络路由吗?

  • 公共路由是最常见的,最容易使用,并使资源可从开放 Internet 访问。
  • 专用路由是最安全的,附带了额外的成本,并且使资源只能从对等网络访问。

公共路由不需要配置。 如果选择私有路由,请与网络管理员协作配置对等互连和路由,以便您的网络能够到达 FinOps 中心的隔离网络。 在决定之前,请详细了解 “配置专用网络”中所需的额外配置步骤。


可选:设置 Microsoft Fabric

许多组织采用 Microsoft Fabric 作为统一的数据平台,以简化数据分析、存储和处理。 FinOps 中心可以使用 Microsoft Fabric Real-Time Intelligence (RTI)作为主要或辅助数据存储。 仅当将 Microsoft Fabric 配置为主数据存储而不是 Azure 数据资源管理器时,此部分才适用。

配置 Microsoft Fabric 是一个手动过程,需要模板部署前后的显式步骤。 本部分介绍初始设置要求。

  1. 创建工作区和活动中心:
    1. 在 Microsoft Fabric 中,打开所需的工作区或创建新工作区。 了解详细信息
    2. 在 Fabric 工作区中,选择页面顶部的 “+ 新建项 ”命令。
    3. 选择 Store data>Eventhouse
    4. 指定名称(例如), FinOpsHub然后选择“ 创建”。
  2. 创建和配置 引入 数据库:
    1. 选择页面顶部的 Eventhouse>+ Database ,将名称设置为 Ingestion,然后选择“ 创建”。
    2. 在左侧菜单中选择 Ingestion_queryset
    3. 删除文件中的所有文本。
    4. 在文本编辑器中下载并打开 finops-hub-fabric-setup-Ingestion.kql 文件
    5. 将此文件中的整个文本复制到 Fabric 查询集编辑器中。
    6. Ctrl+H 触发查找和替换对话框,将查找文本 $$rawRetentionInDays$$设置为该对话框,并将其替换为 0 或所需的天数以将数据保留在 _raw 表中,然后按 Ctrl+Alt+Enter 替换所有实例。
    7. Ctrl+Home 将光标置于文件的开头,然后按 Shift+Enter 或选择页面顶部的 “运行 ”命令。
    8. 等待脚本完成,然后查看 “结果 ”列,确认所有命令都成功完成。
      • 如果含有$rawRetentionInDays$$的行出现错误,请重复步骤 2.6 和 2.7。
      • 如果遇到其他错误, 请在 GitHub 中创建问题
  3. 请对 Hub 数据库重复步骤 2,使用 finops-hub-fabric-setup-Hub.kql 脚本文件。
  4. 在左窗格中,选择“系统概述”,然后在右侧的详细信息窗格中选择“查询 URI”属性的“复制 URI”链接。
    • 记下查询 URI。 在下一步骤中将使用它。

部署 FinOps 中心模板

FinOps 中心的核心引擎通过 Azure 资源管理器部署模板进行部署。 该模板在 bicep 中提供。 该模板包括存储帐户、Azure 数据工厂、Azure 数据资源管理器和其他支持资源。 若要详细了解模板和最低特权访问要求,请参阅 FinOps 中心模板详细信息

  1. 在 Azure 门户中打开所需的模板:
  2. 选择所需的订阅和资源组。
  3. 选择要在其中部署资源的 Azure 区域。
    • 如果连接到 Microsoft Fabric,请选择与 Fabric 容量相同的区域。 可以在工作区设置>“许可证信息>许可证”容量中找到该区域。
  4. 指定用于核心资源和报告目的的中心名称。
    • 所有资源都有一个通用 cm-resource-parent 标记,将它们在成本管理枢纽下组合在一起。
  5. 指定唯一的 Azure 数据资源管理器群集名称或 Microsoft Fabric eventhouse 查询 URI。
    • 此名称用于查询数据并连接到报表、仪表板和其他工具。
    • 如果部署到 Microsoft Fabric,请使用 Fabric 事件库查询 URI,并将数据资源管理器群集名称保持空白。
    • 数据资源管理器和Fabric是可选的,但如果监控总支出超过 10 万美元,建议这样做。
    • 警告:如果依赖存储花费超过 100 万美元,Power BI 可能会遇到超时和数据刷新问题。 如果遇到问题,请使用数据资源管理器或Microsoft Fabric 重新部署。
  6. 选择窗体底部的“ 下一步 ”按钮。
  7. 如果需要,可以更改存储冗余或数据浏览器 SKU。
    • 建议不要为初始部署更改任何一个设置。
    • 如果使用数据资源管理器,则存储帐户是临时数据存储,不需要异地冗余。
    • 大多数部署不需要更大的数据资源管理器 SKU。 建议先从开发/测试群集开始,在纵向扩展或横向扩展之前监视性能。
    • 有关缩放数据资源管理器的详细信息,请参阅 为群集选择 SKU
  8. 选择窗体底部的“ 下一步 ”按钮。
  9. 设置所需的数据保留期。
    • 原始数据保留是指添加到Data Explorer的数据,但未规范化为最终表格。 除非需要排查引入问题,否则请使用 0。 此数字表示保留期(以天为单位)。
    • 规范化数据保留是指数据在最终表中可用的月份的时间范围。 0 只保留本月,1 仅保留上个月和本月,依此等。
  10. 选择窗体底部的“ 下一步 ”按钮。
  11. 指示是否需要基础结构加密。
    • 除非有需要基础结构加密的特定策略,否则不建议这样做。
  12. 指示需要公共或专用网络路由。 了解详细信息
  13. 如果选择了专用,请指定所需的专用网络地址前缀。
  14. 选择窗体底部的“ 下一步 ”按钮。
  15. 如果需要,请指定要添加到资源的更多标记。
  16. 选择窗体底部的“ 下一步 ”按钮。
  17. 查看配置摘要,然后选择窗体底部的 “创建 ”按钮。

可选:配置 Fabric 访问

如果将 Microsoft Fabric 设置为主数据存储,请配置 Data Factory 和 Fabric 事件屋 的访问权限。

  1. 获取数据工厂标识:
    1. 在 Azure 门户中,打开 FinOps 中心资源组。
    2. 在资源列表中,选择数据工厂实例。
    3. 在左侧菜单中,选择“设置>”并复制“对象”(主体)ID
  2. 向数据工厂授予对中心和引入数据库的访问权限:
    1. 在 Microsoft Fabric 中,打开所需的工作区并选择目标事件库。

    2. 在左窗格中选择 引入 数据库。

    3. 在左窗格中选择 Ingestion_queryset

    4. 单独运行以下命令,将 <adf-identity-id> 替换为第 1 步中的数据工厂托管标识对象 ID:

      .add database Ingestion admins ('aadapp=<adf-identity-id>')
      
      .add database Hub admins ('aadapp=<adf-identity-id>')
      

配置要监视的范围

FinOps 中心可以监视与 FinOps 开放成本和使用情况规范(FOCUS)相符的任何成本和使用情况数据集。

可以通过手动创建导出或授权 FinOps Hubs 来创建和管理导出,从 Microsoft 成本管理引入数据。 对于需要监视的每个范围,必须重复以下步骤。 建议使用 EA 计费帐户和 MCA 计费配置文件来获得最佳覆盖范围和最广泛的可用数据集。 若要详细了解手动导出和托管导出之间的差异,请参阅 “配置范围”。

  1. 在 Azure 门户中,打开 成本管理
  2. 从页面顶部的范围选择器中选择所需的范围。
  3. 在左侧菜单中,选择“ 报告 + 分析>导出”。
  4. 选择“创建 ”命令
  5. 选择 “所有成本”(FOCUS)+ 价格 模板。
  6. 指定前缀(例如 finops-hub),然后选择底部的 “下一步 ”。
  7. 选择 FinOps 中心部署创建的订阅和存储帐户。
  8. 将容器设置为 msexports.
  9. 将目录设置为标识范围的唯一字符串(例如 billingAccounts/###)。
  10. 选择 Parquet 格式和 Snappy 压缩,以获得最佳性能。
    • 支持 CSV 和 parquet、压缩或未压缩的任意组合,但建议使用 snappy parquet。
  11. 选择底部的 “下一步 ”。
  12. 根据需要查看并更正设置,然后选择底部的 “创建 ”。
  13. 对更多数据集重复步骤 4-12。
    • 要加载费率优化报告的“预留建议”页面,需要提供预留建议。

管控出口

托管导出允许 FinOps 中心为你设置和维护成本管理导出。 若要启用托管导出,必须授予Azure 数据工厂访问权限才能读取要监视的每个范围中的数据。 有关详细说明,请参阅 “配置托管导出”。

从其他数据源导入

若要从支持 FOCUS 的其他数据提供程序引入数据,例如 Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Oracle 云基础结构 (OCI)和腾讯:

  1. 从您的提供商配置 FOCUS 数据集。
  2. 创建一个工作流,将数据复制到 FinOps 中心存储帐户中的 引入 容器中。
    • 文件按 UTC 日历月分隔,每个文件应小于 2 GB,以 parquet 格式保存。 Snappy 压缩是可选的。
    • 文件应放在以下文件夹路径中: Costs/yyyy/mm/{scope}
      • yyyy 表示数据集的四位数年份。
      • mm 表示数据集的两位数月份。
      • {scope} 表示数据集的逻辑一致标识符。 此值可以是使用一个或多个嵌套文件夹的任何有效路径。
    • 如果提供程序在每个数据集中生成不重叠的变化量,请在月份和范围文件夹之间为日期和/或小时(dddd/hh)添加一个额外的文件夹。
      • 目标是确保重写数据集应始终位于同一文件夹路径中,以便每次覆盖它们。 应将非重叠数据集推送到新的文件夹路径。
  3. 在同一文件夹中创建一个空 manifest.json 文件。
    • 添加或更新 manifest.json 文件时,将触发 Data Explorer 进行数据引入。
  4. 如果当前引入过程中未涵盖任何列,请相应地更新 Costs_rawCosts_final_v1_0 表,以及 Costs_transform_v1_0Costs_v1_0Costs 函数。
    • 提交 功能请求 以将新列添加到默认引入代码,以确保自定义项不会阻止将来的升级。

可选:填充历史数据

FinOps 中心不会自动回填数据。 若要填充历史数据,请从原始数据提供程序运行历史数据导出,包括用于将数据发布到 引入 存储容器的任何自定义数据管道。

对于 Microsoft 成本管理:

  1. 在 Azure 门户中,打开 成本管理
  2. 从页面顶部的范围选择器中选择所需的范围。
  3. 在左侧菜单中,选择“ 报告 + 分析>导出”。
  4. 在导出列表中选择所需的导出。
    • 始终在成本之前导出价格,以确保这些价格可以用于补充成本和使用情况数据集中的缺失价格。
    • 如果首先导出成本,请重新运行 ingestion_ExecuteETL 管道,以更新本月成本数据中缺失的价格。
  5. 选择“ 导出所选日期 ”并指定所需的月份。 始终导出整个月份。
  6. 对所有所需月份重复步骤 5。
    • 成本管理仅支持从 Azure 门户导出过去 12 个月。
    • 请考虑使用 PowerShell 导出最近超过 12 个月的数据。
  7. 为每个导出重复步骤 4-6。
  8. 为每个范围重复步骤 2-7。

可选:以关注者身份连接到 Microsoft Fabric

如果您选择使用数据资源管理器配置 FinOps 中心,但仍有兴趣使数据在 Microsoft Fabric 中可用,请使用 Fabric 事件屋创建快捷(跟随者)数据库。 如果直接导入 Fabric 事件库,则不需要快捷方式数据库。

  1. 在 Fabric 工作区中,选择页面顶部的 “+ 新建项 ”命令。
  2. 选择 Store data>Eventhouse
  3. 指定名称并选择“ 创建”。
  4. 选择页面顶部的 “+ 数据库 ”。
  5. 将名称设置为 Ingestion 且类型设置为 “新建快捷数据库(追随者)”,然后选择 下一步
  6. 将群集 URI 设置为 FinOps 中心群集 URI 和数据库 Ingestion,然后选择“ 创建”。
  7. Hub 数据库重复步骤 4-6。

配置报表和仪表板

FinOps 中心附带了数据资源管理器仪表板和 Power BI 报表,这些报表可以通过 KQL 或 Azure Data Lake Storage 连接到数据资源管理器中的数据。

建议设置数据探索仪表板,即使你使用 Power BI,也是因为其设置快捷方便,并能深入了解引入的数据。

  1. 下载仪表板模板
  2. 授予任何用户查看器(或更高)访问HubIngestion数据库的权限。 了解详细信息
  3. 转到 Azure 数据资源管理器仪表板
  4. 从步骤 1 中的文件导入新仪表板。
  5. 编辑仪表板并将数据源更改为 FinOps 中心群集。

有关详细信息,请参阅 “配置数据资源管理器”仪表板


故障排除

如果遇到特定错误,请检查 常见错误列表 以获取缓解步骤。 如果没有遇到与错误代码相关的问题或其他故障,请参阅 故障排除指南

如果问题未通过故障排除指南解决,请参阅 获取对 FinOps 工具包问题的支持 以获取其他帮助。


提供反馈

请您给我们一个简短的评价,让我们知道我们做得怎么样。 我们将使用这些评审来改进和扩展 FinOps 工具和资源。

如果您在寻找特定的东西,可以为现有想法投票或者创建新想法。 与他人分享想法,以获得更多的选票。 我们专注于拥有最多选票的想法。


相关的 FinOps 功能:

相关产品:

相关解决方案: