Kubernetes 如何监控普罗米修斯运营商的外部服务

Kubernetes 如何监控普罗米修斯运营商的外部服务,kubernetes,prometheus,kubernetes-helm,prometheus-operator,Kubernetes,Prometheus,Kubernetes Helm,Prometheus Operator,我试图监控普罗米修斯运营商的外部服务(卡桑德拉度量的出口商)。我使用helm 2.11.0安装了普罗米修斯操作员。我使用这个yaml安装了它: apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: till

我试图监控普罗米修斯运营商的外部服务(卡桑德拉度量的出口商)。我使用helm 2.11.0安装了普罗米修斯操作员。我使用这个yaml安装了它:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system
我的kubernetes群集上有以下命令:

kubectl create -f rbac-config.yml
helm init --service-account tiller --history-max 200
helm install stable/prometheus-operator --name prometheus-operator --namespace monitoring
接下来,根据文章:

我试着做上面描述的步骤。根据建议,我为现有的Prometheus创建了端点、服务和带有标签的ServiceMonitor。以下是我的yaml文件:

apiVersion: v1
kind: Endpoints
metadata:
  name: cassandra-metrics80
  labels:
    app: cassandra-metrics80
subsets:
- addresses:
  - ip: 10.150.1.80
  ports:
  - name: web
    port: 7070
    protocol: TCP
在普罗米修斯服务发现页面中,我可以看到:

此服务未处于活动状态,所有标签均已删除。 为了解决这个问题,我做了很多事情,比如设置targetlabel。尝试重新标记发现的一次,如 此处描述:
但不幸的是,一切都不起作用。有什么问题,或者我怎样才能更好地研究它呢?

好的,我发现服务应该与服务监视器和端点在同一个名称空间中,之后普罗米修斯开始从卡桑德拉那里看到一些指标。

严格来说,只有“端点”和“服务”应该在同一个名称空间中。 此外,“端点”和“服务”应该与Lucas之前提到的名称相同

ServiceMonitor可以放置在任何位置,它可以在定义的名称空间(名称空间选择器->匹配名称)中查找和刮取SVC/端点,并匹配所有标签(选择器->匹配标签):

spec:
选择器:
火柴标签:
应用程序:cassandra-metrics80
释放:普罗米修斯操作员
名称空间选择器:
匹配名称:
-我的命名空间
此外,现在有更简单的方法来定义附加刮削:
第二种方法的唯一缺点是,更改后需要重新启动pod。基于Endpoint/Service/ServiceMonitor的配置似乎是自动发现和应用的。

此外,Endpoint和Service必须具有相同的名称。感谢您做出准确、不幸的说明,我没有选择检查这是否正确。顺致敬意,
apiVersion: v1
kind: Service
metadata:
  name: cassandra-metrics80
  namespace: monitoring
  labels:
    app: cassandra-metrics80
    release: prometheus-operator
spec:
  externalName: 10.150.1.80
  ports:
  - name: web
    port: 7070
    protocol: TCP
    targetPort: 7070
  type: ExternalName
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: cassandra-metrics80
  labels:
    app: cassandra-metrics80
    release: prometheus-operator
spec:
  selector:
    matchLabels:
      app: cassandra-metrics80
      release: prometheus-operator
    namespaceSelector:
      matchNames:
      - monitoring
  endpoints:
  - port: web
    interval: 10s
    honorLabels: true