2. Azure成本治理框架与工具链
成本治理不是“月底看一张账单”这么简单。它要解决三个层次的问题:看得见(成本花在哪里)、说得清(谁该为哪部分负责)、管得住(异常能及时被发现并纠正)。Azure 提供了一组互补的工具,把它们串成一条链路,才能形成可持续的成本治理能力,而不是一次性的成本削减运动。
先建立整体认知:Azure Cost Management + Billing 是成本数据的权威来源,负责成本分析、预算、警报和导出;Azure Advisor 是优化建议引擎,从成本、可靠性、性能等维度给出可执行建议;Azure Monitor 负责运行时可观测性,把资源利用率与成本关联起来;标签(Tags) 是贯穿所有工具的责任归属骨架;导出(Exports) 则把成本数据落到存储账户,供长期留存和外部分析。下面这张图展示了它们之间的数据流与协作关系。
成本可见性基线:先看清,再动手
在优化之前,必须先建立成本可见性基线。基线不是一张静态报表,而是一组能持续回答“当前花了多少、花在哪、趋势如何、是否偏离预期”的最小能力集合。建议按以下顺序落地。
第一步:统一标签策略。标签是成本归属的骨架。没有标签,成本分析只能停留在订阅或资源组粒度,无法回答“哪个业务线花了多少钱”。建议至少定义四个强制标签:CostCenter(成本中心)、Owner(负责人)、Environment(环境:prod/staging/dev)、Project(项目)。在 Azure Policy 中配置“要求标签及其值”的策略,对新建资源强制生效;对存量资源用 az resource tag 或 Policy 修正任务批量补齐。标签值要规范,例如环境统一用 prod 而非 Production、生产 混用,否则分组会碎片化。
第二步:配置成本分析视图。进入 Cost Management 的“成本分析”,按“按资源分组”查看每日成本。关键操作是切换分组维度:按 Service name 看哪些服务最贵,按 Resource group 看哪个团队超支,按标签 CostCenter 看业务线分摊。建议保存一个“每日成本趋势”视图,粒度设为“每日”,时间范围“最近 30 天”,并固定按 CostCenter 分组。这样每天打开就能看到各成本中心的日花费曲线,异常抬升一眼可见。
第三步:设置预算与警报。预算是成本治理的“刹车”。在 Cost Management 中创建预算时,选择范围(订阅或资源组)、周期(每月)、金额,然后配置警报阈值。推荐设置两级:实际成本达到预算的 80% 触发预警,达到 100% 触发严重警报。警报动作可以发邮件给 Owner,也可以触发 Action Group 调用 Logic App 自动执行降级操作(例如停止非生产环境的 VM)。注意:预算警报是“事后”的,它告诉你已经花了多少,不能阻止花费发生,所以阈值要留出反应时间。
第四步:启用导出机制。Cost Management 的“导出”功能可以按日或按月把成本明细(包括标签、资源 ID、计量类别)自动推送到存储账户。导出的数据是 CSV 格式,适合用 Power BI、Excel 或 Synapse 做长期趋势分析和自定义报表。建议配置每日导出,保留 12 个月以上,这样即使 Cost Management 门户只保留有限时间的数据,你仍然拥有完整的历史成本档案。
第五步:接入 Advisor 和 Monitor。Advisor 会主动扫描你的环境,给出“关闭闲置 VM”“购买预留实例”“调整 VM 规格”等建议,每条建议都附带预估年节省金额。Azure Monitor 则提供资源利用率指标,例如某台 VM 的 CPU 连续 14 天低于 5%,这就是“规格过大”的客观证据。把 Monitor 的利用率数据和 Cost Management 的成本数据放在一起看,才能判断“贵”是因为用量大还是因为配置不合理。
- 是否已定义并强制 CostCenter / Owner / Environment / Project 四个标签?
- 是否已保存至少一个按 CostCenter 分组的每日成本趋势视图?
- 是否为每个成本中心设置了 80% 和 100% 两级预算警报?
- 是否已配置每日成本导出到存储账户,并验证过文件可读?
- 是否每周查看一次 Advisor 成本建议并记录处理状态?
- 是否对 Top 10 成本资源关联了 Monitor 利用率指标?