You need to enable JavaScript to run this app.
导航
告警和运维建议
最近更新时间:2023.04.27 11:03:51首次发布时间:2023.02.28 17:57:43

VM Agent 采集器部署完成后,可以配置采集器和 Exporter 相关的告警,用来监控采集器和 Exporter 的工作状态。本文为您介绍 VM Agent 采集器的常用监控指标和告警配置。

说明

告警的配置方式,请参考 创建告警规则

容器资源饱和度

容器资源饱和度,主要用来监控 VM Agent 采集器和 Exporter 容器的 CPU 使用率和内存使用率。当容器资源不足时给出告警。
容器资源饱和度一般全局采用统一策略。监控采集组件不需要做特殊化配置。

建议告警配置

容器 CPU 监控

建议使用以下 PromQL 语句配置容器 CPU 监控。告警预置和告警等级的对应关系如下表所示。

max(rate(container_cpu_usage_seconds_total[5m])) by (namespace, pod, container)
  / ON(namespace, pod, container)
  kube_pod_container_resource_limits{resource="cpu"}
告警等级触发阈值持续时间
P1> 0.81m
P2> 0.61m

容器内存监控

建议使用以下 PromQL 语句配置容器内存监控。告警预置和告警等级的对应关系如下表所示。

max(container_memory_working_set_bytes) by (namespace, pod, container)
  / ON(namespace, pod, container)
  kube_pod_container_resource_limits{resource="memory"}
告警等级触发阈值持续时间
P1> 0.8立即触发
P2> 0.6立即触发

运维建议

  • kube-state-metrics 组件和 VM Agent 采集器支持分片,资源不足时可以不调整配额,优先增加分片数。操作方法请参见 组件扩容
  • 其他组件应当在触发告警后,可以调大容器资源的 Requests 和 Limits 配合。建议每次调整时 Requests 和 Limits 一起翻倍。

容器运行状态

容器运行状态,主要用来监控 VM Agent 采集器和 Exporter 容器的运行状态和内存使用率。当容器状态不正常,或内存不足时给出告警。

一般全局采用统一策略。监控采集组件不需要做特殊化配置。

建议告警配置

容器状态监控

建议使用以下 PromQL 语句配置容器状态监控。告警预置和告警等级的对应关系如下表所示。

kube_pod_status_phase{phase!~"Running|Succeeded|Pending"}
告警等级触发阈值持续时间
P0= 15m
P1= 1立即触发

运维建议

  • kube-state-metrics 和 VM Agent 采集器支持分片,资源不足时可以不调整配额,优先增加分片数。操作方法请参见 组件扩容

节点资源饱和度

节点资源饱和度,主要用来监控 Node 节点的 CPU 使用率和内存使用率。即使容器资源用量没有触及配额限制,虚拟机资源不足仍可能导致资源相关问题。

建议告警配置

节点 CPU 监控

建议使用以下 PromQL 语句配置节点 CPU 监控。告警预置和告警等级的对应关系如下表所示。

node_load5 / ON(node) machine_cpu_cores
告警等级触发阈值持续时间
P1> 21m
P2> 11m

节点内存监控

建议使用以下 PromQL 语句配置节点内存监控。告警预置和告警等级的对应关系如下表所示。

node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes
告警等级触发阈值持续时间
P1< 0.2立即触发
P2< 0.4立即触发

运维建议

  • 在集群中增加更多的节点资源。
  • 使用 kubectl delete pod 命令删除可重启的 Pod ,迫使其重新调度到更空闲的节点。

采集器对 VMP 写请求

采集器对 VMP 写请求成功率,主要用来监控采集器对 VMP 工作区数据写入的成功率。如果采集器对 VMP 工作区数据写入失败,将会导致您的监控数据丢失。

建议告警配置

请求失败率

建议使用以下 PromQL 语句配置采集器数据写请求失败率。告警预置和告警等级的对应关系如下表所示。

sum(
  sum(rate(vmagent_remotewrite_errors_total[5m])) without (url) /
  sum(rate(vmagent_remotewrite_requests_total[5m])) without (status_code, url)
) without (instance, pod)
告警等级触发阈值持续时间
P0> 0.5立即触发
P1> 0.1立即触发
P2> 0立即触发

是否存在请求指标

建议使用以下 PromQL 语句配置采集器是否存在请求指标。告警预置和告警等级的对应关系如下表所示。

absent(vmagent_remotewrite_requests_total)
告警等级触发阈值持续时间
P0= 1立即触发

运维建议

  • 建议采集器成功运行后再配置此监控项。安装阶段先确认环境和 VMP 服务的连通性以及鉴权信息是否配置正确。
  • 如果运行过程中出现相关告警,请发起工单寻求帮助。

采集目标状态

采集目标状态,主要监控采集器和被采集目标之间的链路和目标的状态是否正常。如果采集器和被采集目标之间的链路异常,或被采集目标状态异常,会导致采集器无法采集到正确的数据。

建议告警配置

请求成功率

建议使用以下 PromQL 语句配置采集器数据采集请求状态。告警预置和告警等级的对应关系如下表所示。

vm_promscrape_targets{status="down"}
告警等级触发阈值持续时间
P1= 15m
P2= 1立即触发

运维建议

  • 排查采集器和被监控服务之间的网络连通性。重点关注安全组配置以及所属节点之间是否可以 ping 通。
  • 排查被监控对象的服务是否健康,metrics 接口可是否正常。