MicroK8s Observability插件问题:如何添加Prometheus新采集目标?
解决MicroK8s Observability插件中Prometheus添加采集目标的问题
在MicroK8s v1.29.0的Observability插件中,Prometheus配置并非以传统的prometheus.yaml ConfigMap形式存在,而是通过Prometheus Operator结合自定义资源(CRD)动态管理,以下是具体操作步骤:
1. 确认Prometheus Operator与实例状态
先检查Observability命名空间下的Prometheus相关资源:
# 查看Prometheus实例 kubectl get prometheus -n observability # 查看Prometheus Operator Pod kubectl get pods -n observability | grep operator
2. 通过ServiceMonitor添加采集目标(推荐方式)
Prometheus Operator会自动根据ServiceMonitor或PodMonitor资源生成采集配置,无需手动修改配置文件。
示例:创建ServiceMonitor监控自定义服务
假设你的目标服务标签为app: my-app,暴露了8080端口的/metrics端点:
- 创建
my-app-servicemonitor.yaml文件:
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: my-app-monitor namespace: observability labels: release: observability # 需与Prometheus实例的serviceMonitorSelector标签匹配 spec: selector: matchLabels: app: my-app # 匹配你的服务标签 endpoints: - port: web # 服务的端口名称(或直接写端口号如8080) path: /metrics interval: 30s # 采集间隔
- 应用该资源:
kubectl apply -f my-app-servicemonitor.yaml
验证标签匹配
确保ServiceMonitor的标签与Prometheus实例的选择器一致,查看Prometheus实例的选择器:
kubectl get prometheus observability-k8s -n observability -o yaml | grep -A 6 serviceMonitorSelector
3. (不推荐)直接查看/修改Prometheus配置文件
如果必须直接操作配置文件,可通过以下步骤:
- 找到Prometheus Pod名称:
kubectl get pods -n observability | grep prometheus
- 查看Pod的挂载卷信息,找到配置来源:
kubectl describe pod <prometheus-pod-name> -n observability | grep -A 10 Volumes
- 若配置存储在Secret中,解码查看:
kubectl get secret <secret-name> -n observability -o jsonpath='{.data.prometheus\.yaml}' | base64 -d
注意:直接修改配置会被Prometheus Operator覆盖,重启后失效,仅用于临时调试。
内容的提问来源于stack exchange,提问作者Naveen Bhatt
相关产品推荐
相关产品推荐

