添加了 kubernetes ServiceMonitor 但未发现目标(0/0 启动)
kubernetes ServiceMonitor added but no targets discovered (0/0 up)
我正在尝试在 prometheus 上公开 kubernetes 应用程序的一些自定义指标。
我在 kubernetes 上成功部署部署了我的应用程序。还添加了 ServiceMonitor,但未发现任何目标(0/0 启动)。
该应用程序是具有相关 nginx-prometheus-exporter sidecar 的 nginx 服务器。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-example-v3
labels:
app: nginx-example-v3
spec:
selector:
matchLabels:
app: nginx-example-v3
template:
metadata:
labels:
app: nginx-example-v3
spec:
containers:
- name: nginx
image: nginx
resources:
limits:
memory: "128Mi"
cpu: "100m"
ports:
- name: http
containerPort: 8080
volumeMounts:
- name: "config"
mountPath: "/etc/nginx/nginx.conf"
subPath: "nginx.conf"
- name: exporter
image: nginx/nginx-prometheus-exporter:0.8.0
ports:
- containerPort: 9113
volumes:
- name: "config"
configMap:
name: "nginx-example-v2-config"
---
apiVersion: v1
kind: Service
metadata:
labels:
name: nginx-example-v3
name: nginx-example-v3
spec:
type: LoadBalancer
selector:
app: nginx-example-v3
ports:
- name: http
port: 8080
targetPort: 8080
- name: http-exporter
port: 9113
targetPort: 9113
之后我可以看到在 /metrics API 中公开的 nginx 自定义指标:
然后我申请监控服务:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: nginx-example-v3
spec:
endpoints:
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
interval: 15s
port: web
selector:
matchLabels:
app: nginx-example-v3
我可以在prometheus的“服务发现”部分看到该服务已成功添加:
但是没有代表 prometheus 发现任何目标(0/0 启动)
我错过了什么???
任何帮助真的很感激,因为我已经坚持了这么多天!
非常感谢你提前。 :-)
回复
@efotopoulou
我稍微更改了服务清单,现在可以获取指标。
抱歉新的讨论。我希望我的清单能帮助其他人配置他们的服务。
这是更新后的清单。
:-)
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx-example-v3
name: nginx-example-v3
spec:
type: LoadBalancer
selector:
app: nginx-example-v3
ports:
- name: http
port: 8080
targetPort: 8080
- name: web
port: 9113
targetPort: 9113
我正在尝试在 prometheus 上公开 kubernetes 应用程序的一些自定义指标。
我在 kubernetes 上成功部署部署了我的应用程序。还添加了 ServiceMonitor,但未发现任何目标(0/0 启动)。 该应用程序是具有相关 nginx-prometheus-exporter sidecar 的 nginx 服务器。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-example-v3
labels:
app: nginx-example-v3
spec:
selector:
matchLabels:
app: nginx-example-v3
template:
metadata:
labels:
app: nginx-example-v3
spec:
containers:
- name: nginx
image: nginx
resources:
limits:
memory: "128Mi"
cpu: "100m"
ports:
- name: http
containerPort: 8080
volumeMounts:
- name: "config"
mountPath: "/etc/nginx/nginx.conf"
subPath: "nginx.conf"
- name: exporter
image: nginx/nginx-prometheus-exporter:0.8.0
ports:
- containerPort: 9113
volumes:
- name: "config"
configMap:
name: "nginx-example-v2-config"
---
apiVersion: v1
kind: Service
metadata:
labels:
name: nginx-example-v3
name: nginx-example-v3
spec:
type: LoadBalancer
selector:
app: nginx-example-v3
ports:
- name: http
port: 8080
targetPort: 8080
- name: http-exporter
port: 9113
targetPort: 9113
之后我可以看到在 /metrics API 中公开的 nginx 自定义指标:
然后我申请监控服务:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: nginx-example-v3
spec:
endpoints:
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
interval: 15s
port: web
selector:
matchLabels:
app: nginx-example-v3
我可以在prometheus的“服务发现”部分看到该服务已成功添加:
但是没有代表 prometheus 发现任何目标(0/0 启动)
我错过了什么??? 任何帮助真的很感激,因为我已经坚持了这么多天! 非常感谢你提前。 :-)
回复 @efotopoulou
我稍微更改了服务清单,现在可以获取指标。 抱歉新的讨论。我希望我的清单能帮助其他人配置他们的服务。 这是更新后的清单。 :-)
apiVersion: v1
kind: Service
metadata:
labels:
app: nginx-example-v3
name: nginx-example-v3
spec:
type: LoadBalancer
selector:
app: nginx-example-v3
ports:
- name: http
port: 8080
targetPort: 8080
- name: web
port: 9113
targetPort: 9113