本文将介绍关于如何在Kubernetes集群中配置基础设施层的警报。本文是关于在生产中使用Kubernetes系列的一部分。第一部分介绍了Kubernetes和监控工具的基础知识;这部分涵盖了Kubernetes报警的最佳实践,第三部分将介绍Kubernetes服务发现与故障排除,最后一部分是监控Kubernetes的实际使用案例。
- 可见性:容器是一个黑盒。传统工具只能针对公共监控端点进行检查。如果想深入监控相关服务,则需要采取不一样的方法。
- 新的基础架构层:现在服务和主机之间有一个新的层:容器和容器编排服务。这些是你需要监控的新内部服务,你的监控系统需要了解这些服务。
- 动态重调度:容器没有像之前那样的服务节点,所以传统的监控不能有效地工作。没有获取服务度量标准的静态端点,没有运行服务实例的静态数量(设想一个金丝雀发布或自动伸缩设置)。在某节点中一个进程被kill是正常的,因为它有很大的机会被重新调度到基础设施的其他节点。
- 元数据和标签:随着服务跨多个容器,为所有这些服务添加系统级别的监控以及服务特定的度量标准,再加上Kubernetes带来的所有新服务,如何让所有这些信息对我们有所帮助?有时你希望看到分布在不同节点容器中的服务的网络请求度量,有时你希望看到特定节点中所有容器的相同度量,而不关心它们属于哪个服务。这就需要一个多维度量系统,需要从不同的角度来看待这些指标。如果通过Kubernetes中存在的不同标签自动标记度量标准,并且监控系统能够了解Kubernetes元数据,那么只需要在每种情况下按照需要聚合和分割度量标准就可以实现多维度度量。
- 应用程序层度量标准的报警
- Kubernetes上运行的服务的报警
- Kubernetes基础设施的报警
- 在主机/节点层上的报警

- 服务相应时间
- 服务可用性
- SLA合规性
- 每秒请求的成功/失败数

- HTTP请求数
- 数据库连接数、副本数
- 线程数、文件描述符数、连接数
- 中间件特定指标:Python uwsgi worker数量,JVM堆大小等
timeAvg(kubernetes.replicaSet.replicas.running) < timeAvg(kubernetes.replicaSet.replicas.desired)




- 负载:load.average.1m, load.average.5m 和 load.average.15m
- CPU:cpu.used.percent
- memory:memory.used.percent 或 memory.bytes.used
- swap:memory.swap.used.percent 或 memory.swap.bytes.used
- 赞助本站
- 微信扫一扫
-
- 加入Q群
- QQ扫一扫
-
评论