本教程介绍如何在 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.CostManagementExports 和 Microsoft.EventGrid 资源提供程序。
- Azure 门户
- PowerShell
- 在 Azure 门户中,打开 订阅列表。
- 选择要用于 FinOps 中心部署的订阅。
- 在左侧菜单中,选择 “设置>资源提供程序”。
- 在资源提供程序列表中,找到 Microsoft.EventGrid 的行。
- 如果 状态 列显示“未注册”,请选择提供程序名称右侧的上下文菜单(⋅⋅⋅⋅),然后选择“ 注册”。
- 对 Microsoft.CostManagementExports 重复步骤 4-5。
规划网络体系结构
你更喜欢公共或专用网络路由吗?
公共路由最常见且最容易使用。 可从打开的 Internet 访问资源。 访问控制通过基于角色的访问控制(RBAC)进行控制。 公共路由不需要配置。
你更喜欢公共或专用网络路由吗?
- 公共路由是最常见的,最容易使用,并使资源可从开放 Internet 访问。
- 专用路由是最安全的,附带了额外的成本,并且使资源只能从对等网络访问。
公共路由不需要配置。 如果选择私有路由,请与网络管理员协作配置对等互连和路由,以便您的网络能够到达 FinOps 中心的隔离网络。 在决定之前,请详细了解 “配置专用网络”中所需的额外配置步骤。
可选:设置 Microsoft Fabric
许多组织采用 Microsoft Fabric 作为统一的数据平台,以简化数据分析、存储和处理。 FinOps 中心可以使用 Microsoft Fabric Real-Time Intelligence (RTI)作为主要或辅助数据存储。 仅当将 Microsoft Fabric 配置为主数据存储而不是 Azure 数据资源管理器时,此部分才适用。
配置 Microsoft Fabric 是一个手动过程,需要模板部署前后的显式步骤。 本部分介绍初始设置要求。
- 创建工作区和活动中心:
- 在 Microsoft Fabric 中,打开所需的工作区或创建新工作区。 了解详细信息。
- 在 Fabric 工作区中,选择页面顶部的 “+ 新建项 ”命令。
- 选择 Store data>Eventhouse。
- 指定名称(例如),
FinOpsHub
然后选择“ 创建”。
- 创建和配置 引入 数据库:
- 选择页面顶部的 Eventhouse>+ Database ,将名称设置为
Ingestion
,然后选择“ 创建”。 - 在左侧菜单中选择 Ingestion_queryset 。
- 删除文件中的所有文本。
- 在文本编辑器中下载并打开 finops-hub-fabric-setup-Ingestion.kql 文件 。
- 将此文件中的整个文本复制到 Fabric 查询集编辑器中。
- 按 Ctrl+H 触发查找和替换对话框,将查找文本
$$rawRetentionInDays$$
设置为该对话框,并将其替换为0
或所需的天数以将数据保留在 _raw 表中,然后按 Ctrl+Alt+Enter 替换所有实例。 - 按 Ctrl+Home 将光标置于文件的开头,然后按 Shift+Enter 或选择页面顶部的 “运行 ”命令。
- 等待脚本完成,然后查看 “结果 ”列,确认所有命令都成功完成。
- 如果含有$rawRetentionInDays$$的行出现错误,请重复步骤 2.6 和 2.7。
- 如果遇到其他错误, 请在 GitHub 中创建问题。
- 选择页面顶部的 Eventhouse>+ Database ,将名称设置为
- 请对 Hub 数据库重复步骤 2,使用 finops-hub-fabric-setup-Hub.kql 脚本文件。
- 在左窗格中,选择“系统概述”,然后在右侧的详细信息窗格中选择“查询 URI”属性的“复制 URI”链接。
- 记下查询 URI。 在下一步骤中将使用它。
部署 FinOps 中心模板
FinOps 中心的核心引擎通过 Azure 资源管理器部署模板进行部署。 该模板在 bicep 中提供。 该模板包括存储帐户、Azure 数据工厂、Azure 数据资源管理器和其他支持资源。 若要详细了解模板和最低特权访问要求,请参阅 FinOps 中心模板详细信息。
- Azure 门户
- PowerShell
- 在 Azure 门户中打开所需的模板:
- 部署到 Azure
- 部署到 Azure Gov
- 部署到 Azure 中国区(仅限 "MCA")
- 选择所需的订阅和资源组。
- 选择要在其中部署资源的 Azure 区域。
- 如果连接到 Microsoft Fabric,请选择与 Fabric 容量相同的区域。 可以在工作区设置>“许可证信息>许可证”容量中找到该区域。
- 指定用于核心资源和报告目的的中心名称。
- 所有资源都有一个通用 cm-resource-parent 标记,将它们在成本管理枢纽下组合在一起。
- 指定唯一的 Azure 数据资源管理器群集名称或 Microsoft Fabric eventhouse 查询 URI。
- 此名称用于查询数据并连接到报表、仪表板和其他工具。
- 如果部署到 Microsoft Fabric,请使用 Fabric 事件库查询 URI,并将数据资源管理器群集名称保持空白。
- 数据资源管理器和Fabric是可选的,但如果监控总支出超过 10 万美元,建议这样做。
- 警告:如果依赖存储花费超过 100 万美元,Power BI 可能会遇到超时和数据刷新问题。 如果遇到问题,请使用数据资源管理器或Microsoft Fabric 重新部署。
- 选择窗体底部的“ 下一步 ”按钮。
- 如果需要,可以更改存储冗余或数据浏览器 SKU。
- 建议不要为初始部署更改任何一个设置。
- 如果使用数据资源管理器,则存储帐户是临时数据存储,不需要异地冗余。
- 大多数部署不需要更大的数据资源管理器 SKU。 建议先从开发/测试群集开始,在纵向扩展或横向扩展之前监视性能。
- 有关缩放数据资源管理器的详细信息,请参阅 为群集选择 SKU。
- 选择窗体底部的“ 下一步 ”按钮。
- 设置所需的数据保留期。
- 原始数据保留是指添加到Data Explorer的数据,但未规范化为最终表格。 除非需要排查引入问题,否则请使用 0。 此数字表示保留期(以天为单位)。
- 规范化数据保留是指数据在最终表中可用的月份的时间范围。 0 只保留本月,1 仅保留上个月和本月,依此等。
- 选择窗体底部的“ 下一步 ”按钮。
- 指示是否需要基础结构加密。
- 除非有需要基础结构加密的特定策略,否则不建议这样做。
- 指示需要公共或专用网络路由。 了解详细信息。
- 如果选择了专用,请指定所需的专用网络地址前缀。
- 选择窗体底部的“ 下一步 ”按钮。
- 如果需要,请指定要添加到资源的更多标记。
- 选择窗体底部的“ 下一步 ”按钮。
- 查看配置摘要,然后选择窗体底部的 “创建 ”按钮。
可选:配置 Fabric 访问
如果将 Microsoft Fabric 设置为主数据存储,请配置 Data Factory 和 Fabric 事件屋 的访问权限。
- 获取数据工厂标识:
- 在 Azure 门户中,打开 FinOps 中心资源组。
- 在资源列表中,选择数据工厂实例。
- 在左侧菜单中,选择“设置>”并复制“对象”(主体)ID。
- 向数据工厂授予对中心和引入数据库的访问权限:
在 Microsoft Fabric 中,打开所需的工作区并选择目标事件库。
在左窗格中选择 引入 数据库。
在左窗格中选择 Ingestion_queryset 。
单独运行以下命令,将
<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 计费配置文件来获得最佳覆盖范围和最广泛的可用数据集。 若要详细了解手动导出和托管导出之间的差异,请参阅 “配置范围”。
- Azure 门户
- PowerShell
- 在 Azure 门户中,打开 成本管理。
- 从页面顶部的范围选择器中选择所需的范围。
- 在左侧菜单中,选择“ 报告 + 分析>导出”。
- 选择“创建 ”命令。
- 选择 “所有成本”(FOCUS)+ 价格 模板。
- 指定前缀(例如 finops-hub),然后选择底部的 “下一步 ”。
- 选择 FinOps 中心部署创建的订阅和存储帐户。
- 将容器设置为
msexports
. - 将目录设置为标识范围的唯一字符串(例如
billingAccounts/###
)。 - 选择 Parquet 格式和 Snappy 压缩,以获得最佳性能。
- 支持 CSV 和 parquet、压缩或未压缩的任意组合,但建议使用 snappy parquet。
- 选择底部的 “下一步 ”。
- 根据需要查看并更正设置,然后选择底部的 “创建 ”。
- 对更多数据集重复步骤 4-12。
- 要加载费率优化报告的“预留建议”页面,需要提供预留建议。
管控出口
托管导出允许 FinOps 中心为你设置和维护成本管理导出。 若要启用托管导出,必须授予Azure 数据工厂访问权限才能读取要监视的每个范围中的数据。 有关详细说明,请参阅 “配置托管导出”。
从其他数据源导入
若要从支持 FOCUS 的其他数据提供程序引入数据,例如 Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Oracle 云基础结构 (OCI)和腾讯:
- 从您的提供商配置 FOCUS 数据集。
- 创建一个工作流,将数据复制到 FinOps 中心存储帐户中的 引入 容器中。
- 文件按 UTC 日历月分隔,每个文件应小于 2 GB,以 parquet 格式保存。 Snappy 压缩是可选的。
- 文件应放在以下文件夹路径中:
Costs/yyyy/mm/{scope}
-
yyyy
表示数据集的四位数年份。 -
mm
表示数据集的两位数月份。 -
{scope}
表示数据集的逻辑一致标识符。 此值可以是使用一个或多个嵌套文件夹的任何有效路径。
-
- 如果提供程序在每个数据集中生成不重叠的变化量,请在月份和范围文件夹之间为日期和/或小时(
dd
或dd/hh
)添加一个额外的文件夹。- 目标是确保重写数据集应始终位于同一文件夹路径中,以便每次覆盖它们。 应将非重叠数据集推送到新的文件夹路径。
- 在同一文件夹中创建一个空
manifest.json
文件。- 添加或更新 manifest.json 文件时,将触发 Data Explorer 进行数据引入。
- 如果当前引入过程中未涵盖任何列,请相应地更新 Costs_raw 和 Costs_final_v1_0 表,以及 Costs_transform_v1_0、 Costs_v1_0 和 Costs 函数。
- 提交 功能请求 以将新列添加到默认引入代码,以确保自定义项不会阻止将来的升级。
可选:填充历史数据
FinOps 中心不会自动回填数据。 若要填充历史数据,请从原始数据提供程序运行历史数据导出,包括用于将数据发布到 引入 存储容器的任何自定义数据管道。
对于 Microsoft 成本管理:
- Azure 门户
- PowerShell
- 在 Azure 门户中,打开 成本管理。
- 从页面顶部的范围选择器中选择所需的范围。
- 在左侧菜单中,选择“ 报告 + 分析>导出”。
- 在导出列表中选择所需的导出。
- 始终在成本之前导出价格,以确保这些价格可以用于补充成本和使用情况数据集中的缺失价格。
- 如果首先导出成本,请重新运行 ingestion_ExecuteETL 管道,以更新本月成本数据中缺失的价格。
- 选择“ 导出所选日期 ”并指定所需的月份。 始终导出整个月份。
- 对所有所需月份重复步骤 5。
- 成本管理仅支持从 Azure 门户导出过去 12 个月。
- 请考虑使用 PowerShell 导出最近超过 12 个月的数据。
- 为每个导出重复步骤 4-6。
- 为每个范围重复步骤 2-7。
可选:以关注者身份连接到 Microsoft Fabric
如果您选择使用数据资源管理器配置 FinOps 中心,但仍有兴趣使数据在 Microsoft Fabric 中可用,请使用 Fabric 事件屋创建快捷(跟随者)数据库。 如果直接导入 Fabric 事件库,则不需要快捷方式数据库。
- 在 Fabric 工作区中,选择页面顶部的 “+ 新建项 ”命令。
- 选择 Store data>Eventhouse。
- 指定名称并选择“ 创建”。
- 选择页面顶部的 “+ 数据库 ”。
- 将名称设置为
Ingestion
且类型设置为 “新建快捷数据库(追随者)”,然后选择 下一步。 - 将群集 URI 设置为 FinOps 中心群集 URI 和数据库
Ingestion
,然后选择“ 创建”。 - 对
Hub
数据库重复步骤 4-6。
配置报表和仪表板
FinOps 中心附带了数据资源管理器仪表板和 Power BI 报表,这些报表可以通过 KQL 或 Azure Data Lake Storage 连接到数据资源管理器中的数据。
建议设置数据探索仪表板,即使你使用 Power BI,也是因为其设置快捷方便,并能深入了解引入的数据。
- 下载仪表板模板。
- 授予任何用户查看器(或更高)访问Hub和Ingestion数据库的权限。 了解详细信息。
- 转到 Azure 数据资源管理器仪表板。
- 从步骤 1 中的文件导入新仪表板。
- 编辑仪表板并将数据源更改为 FinOps 中心群集。
有关详细信息,请参阅 “配置数据资源管理器”仪表板。
故障排除
如果遇到特定错误,请检查 常见错误列表 以获取缓解步骤。 如果没有遇到与错误代码相关的问题或其他故障,请参阅 故障排除指南。
如果问题未通过故障排除指南解决,请参阅 获取对 FinOps 工具包问题的支持 以获取其他帮助。
提供反馈
请您给我们一个简短的评价,让我们知道我们做得怎么样。 我们将使用这些评审来改进和扩展 FinOps 工具和资源。
如果您在寻找特定的东西,可以为现有想法投票或者创建新想法。 与他人分享想法,以获得更多的选票。 我们专注于拥有最多选票的想法。
相关内容
相关的 FinOps 功能:
相关产品:
相关解决方案: