prometheus operator - 启用对所有命名空间中的所有内容的监控

Ram*_*san 5 monitoring kubernetes prometheus kubernetes-helm prometheus-operator

我想监视名为命名空间的一个Kubernetes集群上运行的应用程序夫妇developmentproduction通过普罗米修斯运营商。

使用的安装命令(根据Github)是:

helm install prometheus-operator stable/prometheus-operator -n production --set prometheusOperator.enabled=true,prometheus.service.type=NodePort,prometheusOperator.service.type=NodePort,alertmanager.service.type=NodePort,grafana.service.type=NodePort,grafana.service.nodePort=30906

我需要向上述命令添加哪些参数才能prometheus-operator发现和监控所有运行的应用程序/服务/pod namespaces

有了这个,Service Discovery只显示一些prometheus-operator相关的services,但不显示我在“生产”命名空间中运行的应用程序,即使prometheus-operator安装在同一个namespace

我缺少什么吗?

注 - 正在使用同一用户(使用$HOME/.kube/config file)执行所有操作,因此我认为权限不是问题。

kubectl 版本 - v1.17.3 掌舵版本 - 3.1.2

PS 在不同的论坛上有很多关于此的文章,但我仍然没有找到简单而直接的答案。

Ser*_*min 8

我有同样的问题。经过一些调查回答更多细节。

我已经通过Helm 图表安装了 Prometheus 堆栈,其中包括直接作为子项目的 Prometheus 操作员图表。Prometheus operator 监视由以下 helm 值指定的命名空间:

prometheusOperator:
  namespaces: ''
  denyNamespaces: ''
  prometheusInstanceNamespaces: ''
  alertmanagerInstanceNamespaces: ''
  thanosRulerInstanceNamespaces: ''
Run Code Online (Sandbox Code Playgroud)

namespaces值指定 ServiceMonitor 和 PodMonitor CRD 的受监控命名空间。其他 CRD 有自己的设置,如果没有设置,默认为namespaces. Helm 值作为命令行参数传递给操作符。请参阅此处此处

普罗米修斯 CRD 由操作员从提到的命名空间中选择,默认情况下 - 无处不在。但是,由于 Operator 的设计考虑了多个 Prometheus 的同时发布,因此特定 Prometheus 应用程序实例选择的内容由相应的 Prometheus CRD 控制。CRD 选择器和相应的命名空间选择器通过以下 Helm 值控制:

prometheus:
  prometheusSpec:
    serviceMonitorSelectorNilUsesHelmValues: true
    serviceMonitorSelector: {}
    serviceMonitorNamespaceSelector: {}
Run Code Online (Sandbox Code Playgroud)

其他 CRD 也有类似的值:alertmanagerConfigXXX、ruleNamespaceXXX、podMonitorXXX、probeXXX。XXXSelectorNilUsesHelmValues设置为 true,表示查找具有特定发布标签的 CRD,例如release=myrelease. 见这里

空选择器(对于命名空间、CRD 或任何其他对象)意味着没有过滤。因此,对于 Prometheus 对象从其他命名空间中获取 ServiceMonitor 的选项很少:

  • 设置serviceMonitorSelectorNilUsesHelmValues: false。这使得 serviceMonitorSelector 为空。
  • 将发布标签,例如release=myrelease,应用到您的 ServiceMonitor CRD。
  • 设置一个与您的 ServiceMonitor 匹配的非空 serviceMonitorSelector。

对于好奇的人,这里是运营商来源的链接:


小智 -3

不,它很好,但您可以创建新的命名空间来监视并安装 prometheus 在那里会很好地管理与监视相关的事情。

helm install prometheus-operator stable/prometheus-operator -n monitoring
Run Code Online (Sandbox Code Playgroud)