首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >prometheus operator -启用对所有名称空间中的所有内容的监控

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

Stack Overflow用户
提问于 2020-03-16 20:49:53
回答 4查看 11.5K关注 0票数 8

我想通过prometheus-operator监视在名为developmentproduction的名称空间中的Kubernetes集群上运行的两个应用程序。

使用的安装命令(根据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发现并监控在所有namespaces中运行的所有应用/服务/pods,我需要在上面的命令中添加哪些参数?

这样,Service Discovery只显示了一些与prometheus-operator相关的services,而不是我在'production‘命名空间中运行的应用程序,即使prometheus-operator安装在同一个namespace中。

我遗漏了什么吗?

注意-我使用同一个用户(使用$HOME/.kube/config file)运行所有操作,所以我假设权限不是问题。

kubectl版本- v1.17.3 helm版本- 3.1.2

附注:在不同的论坛上有很多关于这方面的文章,但我仍然找不到简单直接的答案。

EN

回答 4

Stack Overflow用户

发布于 2021-01-10 08:16:13

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

我已经通过Helm charts安装了普罗米修斯堆栈,它直接将普罗米修斯运行图作为一个子项目。Prometheus操作符监视由以下helm值指定的名称空间:

代码语言:javascript
复制
prometheusOperator:
  namespaces: ''
  denyNamespaces: ''
  prometheusInstanceNamespaces: ''
  alertmanagerInstanceNamespaces: ''
  thanosRulerInstanceNamespaces: ''

namespaces值为ServiceMonitor和PodMonitor CRD指定受监视的命名空间。其他CRD有自己的设置,如果未设置,则默认为namespaces。Helm值作为命令行参数传递给运算符。参见herehere

默认情况下,操作员从提到的名称空间中提取Prometheus CRDs -无处不在。然而,由于操作员在设计时考虑到了多个同步的普罗米修斯版本,因此由特定的普罗米修斯应用程序实例拾取的内容由相应的普罗米修斯CRD控制。CRDs选择器和相应的名称空间选择器通过以下Helm值进行控制:

代码语言:javascript
复制
prometheus:
  prometheusSpec:
    serviceMonitorSelectorNilUsesHelmValues: true
    serviceMonitorSelector: {}
    serviceMonitorNamespaceSelector: {}

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

空选择器(对于命名空间、CRD或任何其他对象)表示没有过滤。因此,对于Prometheus object从其他名称空间中拾取ServiceMonitor,有几个选择:

  • Set serviceMonitorSelectorNilUsesHelmValues: false。这将使serviceMonitorSelector保留为空。
  • 将版本标签(例如release=myrelease )应用到您的ServiceMonitor CRD。
  • 设置与您的CRD匹配的非空serviceMonitorSelector

对于那些好奇的人,这里有到操作符源的链接:

票数 9
EN

Stack Overflow用户

发布于 2020-03-17 01:44:06

我使用了https://github.com/helm/charts/blob/master/stable/prometheus-operator/values.yaml中的values.yaml,将参数*NilUsesHelmValues修改为False,看起来效果很好。helm安装prometheus-operator稳定/prometheus-operator -n监控-f values.yaml

此外,正如https://stackoverflow.com/users/7889479/anish-kumar-mourya所说,这些服务确实显示在Grafana仪表板中,即使它们不出现在Prometheus UI中的服务发现或目标下。

希望这对其他像我一样的新手有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2020-03-16 21:08:52

不,这很好,但你可以为监控创建新的名称空间,并在那里安装prometheus,这样就可以很好地管理与监控相关的事情。

代码语言:javascript
复制
helm install prometheus-operator stable/prometheus-operator -n monitoring
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60706343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档