prometheus-operator中如何监控外部服务

Cod*_*Dog 5 kubernetes prometheus kubernetes-helm prometheus-operator

我正在尝试监视 prometheus-operator 中的外部服务(它是 cassandra 指标的导出器)。我使用 helm 2.11.0 安装了 prometheus-operator。我使用这个 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
Run Code Online (Sandbox Code Playgroud)

以及我的 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
Run Code Online (Sandbox Code Playgroud)

接下来,基于文章: 如何监控外部服务

我尝试执行其中描述的步骤。按照建议,我为现有的 Prometheus 创建了带有标签的 Endpoints、Service 和 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)

在普罗米修斯服务发现页面中,我可以看到: 服务发现

此服务未激活且所有标签均已删除。我做了很多尝试来解决这个问题,比如设置 targetLabels。尝试重新标记发现的一次,如下所述:prometheus relabeling 但不幸的是没有任何效果。可能是什么问题,或者我怎样才能更好地调查它?

Cod*_*Dog 5

好的,我发现服务应该与服务监视器和端点位于相同的命名空间中,之后 prometheus 开始看到来自 cassandra 的一些指标。

  • 此外,端点和服务必须具有相同的名称。 (2认同)