我正在尝试在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以及我的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接下来,基于文章:how monitor to an external service
我试着去做上面描述的步骤。按照建议,我为现有的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: TCPapiVersion: 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: ExternalNameapiVersion: 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在prometheus服务发现页面中,我可以看到:

此服务未处于活动状态,并且所有标签都将被丢弃。我做了很多事情来解决这个问题,比如设置targetLabels。尝试重新标记发现的一次,如这里所述:prometheus relabeling,但不幸的是什么都不起作用。问题可能是什么,或者我如何更好地调查它?
发布于 2019-07-03 17:32:37
好了,我发现服务应该与服务监视器和端点在同一个名称空间中,在那之后,prometheus开始看到来自cassandra的一些指标。
发布于 2020-09-16 19:10:20
严格来说,只有“Endpoint”和"Service“应该在同一个名称空间中。此外,“端点”和“服务”应该与Lucas之前提到的名称相同。
ServiceMonitor可以放在任何地方,它在已定义的名称空间(名称空间选择器->匹配名称)中查找并抓取SVC/端点,并匹配所有标签(选择器->匹配标签):
spec:
selector:
matchLabels:
app: cassandra-metrics80
release: prometheus-operator
namespaceSelector:
matchNames:
- my-namespace此外,现在有了更简单的方法来定义额外的抓取:https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/additional-scrape-config.md第二个方法的唯一缺点是它需要在更改后重新启动pod。基于Endpoint/Service/ServiceMonitor的配置似乎是自动发现和应用的。
https://stackoverflow.com/questions/56848428
复制相似问题