尝试实施自定义Kubernetes监控系统时的最佳实践

尝试实施自定义Kubernetes监控系统时的最佳实践,kubernetes,prometheus,Kubernetes,Prometheus,我有两个Kubernetes集群,它们代表开发和登台环境 另外,我还部署了一个定制的DevOps仪表板,用于监视这两个集群。在此仪表板上,我需要显示以下信息: 每个环境中每个已部署吊舱的RAM/HD空间/CPU使用率 Pod运行状况(如有太多容器重启等) 吊舱正常运行时间 所有这些统计数据都必须是集群级别的,最好是每个名称空间。与中一样,如果我查询一个特定的名称空间,我必须获得该名称空间的所有资源使用情况 因此,我的仪表板的webservice层将向我各自集群的主节点发送一个服务请求,以获取

我有两个Kubernetes集群,它们代表开发和登台环境

另外,我还部署了一个定制的DevOps仪表板,用于监视这两个集群。在此仪表板上,我需要显示以下信息:

  • 每个环境中每个已部署吊舱的RAM/HD空间/CPU使用率
  • Pod运行状况(如有太多容器重启等)
  • 吊舱正常运行时间
所有这些统计数据都必须是集群级别的,最好是每个名称空间。与中一样,如果我查询一个特定的名称空间,我必须获得该名称空间的所有资源使用情况

因此,我的仪表板的webservice层将向我各自集群的主节点发送一个服务请求,以获取此信息

我需要的另一件事是在我的DevOps仪表板中实现实时通知。每次集装箱发生故障时,我都需要捕捉该事件并通知相关人员

我一直在阅读,两件事,弹出了很多是普罗米修斯和公制服务器。我需要两个还是一个?我在本地集群上设置了Prometheus,但找不到它公开的任何端点,这些端点可以被我的仪表板服务调用。我还试图建立普罗米修斯警报管理器,但到目前为止,它还没有发挥预期的作用。我现在正试图修复它。我只是想看看这些技术是否有能力满足我的需求


谢谢

我不知道你为什么要考虑自己的定制监控系统。提供您提到的所有功能。 最终,您只能使用自己的grafana仪表板,其中包含所有必需的信息

如果您需要自定义通知,您可以在创建正确的
prometheusrules.monitoring.coreos.com
中进行设置,您可以在中找到许多预配置的prometheusrules。 使用Alertmanager中的标签和名称空间,您可以设置正确的路由,以通知负责给定部署的人员

我需要两者还是一个都需要?
,是的,当
Metrick server
从您的群集节点公开度量值供您的Prometheus刮取时,您需要两者-
Prometheus
收集并聚合度量值

如果你对普罗米修斯有问题,Alertmanger等考虑使用“入口点”。

+是一个非常标准的设置。 安装或通过将为您提供 默认情况下,Grafana、Alertmanager、

节点导出器
kube状态度量
,所有这些都可以为kubernetes度量设置

将alertmanager配置为。SMTP通常是安装的第一件事,但如果这是人们需要依赖的服务,我建议使用某种类型的事件管理器

尽管仪表板不是您需求的一部分,但这将告诉您如何连接到prometheus作为数据源

这里有很多。也有一些

您的外部服务将不会直接与prometheus一起查询度量,而是查询存储在集群中的prometheus中收集的数据。要从外部访问API,您需要设置到prometheus服务的外部路径。这可以通过头盔部署中的入口控制器进行配置:

prometheus.ingress.enabled: true
如果需要,可以对alertmanager API和grafana执行相同的操作

alertmanager.ingress.enabled: true
grafana.ingress.enabled: true

如果证明有用,您可以通过相同的普罗米修斯入口将集群外的Grafana用作仪表板。

遵循官方k8s文档,以获取有关资源指标的更多信息。您能否详细说明“我会推荐某种类型的事件管理器”?电子邮件通常是管理警报或事件的可怕方式。事件管理器是一种工具,可以让您将数据输入,并轻松地将输入分类、筛选和管理到标准事件中,然后对其执行操作。//。大多数监控系统都实现了某些版本的it,但效果很差。Alertmanager还不够吗?您推荐哪种解决方案?我主要关心的是价格。Alertmanager在UI端非常薄,只保留当前状态。它需要一个“接收器”来发送事件。SMTP是最简单的解决方案,可能需要为其创建特定的邮箱。