警报是监视 Azure Kubernetes 服务(AKS)上的工作负荷的关键部分。 高级警报需要在 Log Analytics 工作区中使用 Analytics 层日志,但对于大容量环境或某些类型的日志(例如审核日志)而言,这可能成本高昂。
通过将 ContainerLogsV2 等表转换为 基本日志,可以显著降低数据引入成本。 Azure Monitor 提供针对基本日志表的事件驱动和基于摘要的警报的选项,使你能够更好地控制成本,而不会牺牲对 AKS 工作负载的运行状况和行为的可见性。
本文介绍针对 AKS 工作负载发出警报的多个策略,这些表支持配置为“基本”的容器日志。 这些建议有助于平衡成本和性能,同时仍满足运营需求和服务级别目标(SLO)。
小窍门
使用在 Log Analytics 工作区中根据数据使用情况选择表计划的指南,将任何表的计划设置为“基本”。
托管 Prometheus 警报
尽可能优先考虑针对指标的警报而不是日志,因为这通常更具可扩展性和成本效益,特别是在大型 AKS 环境中。 与日志相比,指标是精简的、专为快速评估而构建的,并且会产生较低的引入、存储和查询成本。
Azure 托管 Prometheus 支持准实时的指标引入和警报,而无需管理自己的 Prometheus 基础结构的开销。 它可以直接与 AKS 集群集成,并支持以 Prometheus 格式抓取 Kubernetes 原生指标。 可以在 Azure 托管 Grafana 中可视化和分析警报规则,或集成到 Azure Monitor 中,以便进行警报路由。
首先启用建议的 警报规则。 这包括平台指标警报,例如当节点的 CPU 超过阈值时触发。 还可以为各种方案启用不同级别的 Prometheus 警报。 除了内置警报规则,还使用 Prometheus 指标创建自己的自定义警报规则。
简单日志搜索警报规则(预览版)
Azure Monitor 中的简单日志搜索警报旨在提供传统日志搜索警报的更简单、更快的替代方法,并且基本日志表支持这些警报。 与在定义的时间段内聚合行的日志搜索警报不同,简单的日志警报单独评估每一行并允许单条件日志搜索。 它们非常适合用于监视特定错误事件或状态变化等情景。
例如,可以设置一个规则,在每次出现来自基于云的应用程序的特定错误消息时触发,或者可以选择对任何具有错误级别严重性的消息触发。
除了在每次出现消息时触发外,还可以为指定时间窗口内的出现次数设置阈值。 例如,你可能有一条消息指示登录失败,并希望在一分钟内在其应用程序中失败的登录尝试次数超过阈值时发出警报。 标识后,可以使用表本身的日志查询来识别失败的登录尝试
创建转换以将关键日志发送到分析层
如果需要对容器日志进行近实时警报,摘要规则可能不够响应。 在操作敏感场景中,在需要准实时日志警报的情况下,使用转换将重要日志(如错误和关键事件)路由到分析日志表,同时将其他日志发送到基础日志表。
此转换的配置在容器 Insights 中的数据转换中提供。
使用此策略,可以对 Analytics Logs 表执行高级警报,同时保留基本日志表,以便对不太重要的日志进行经济高效的存储和分析。