prometheus配置pod模式的服务发现-监控pod组件

1.先在prometheus-cfg.yaml配置文件里添加如下配置信息:

   - job_name: kubernetes-pods
      kubernetes_sd_configs:
      - role: pod
      relabel_configs:
      - action: keep
        regex: true
        source_labels:
        - __meta_kubernetes_pod_annotation_prometheus_io_scrape
      - action: replace
        regex: (.+)
        source_labels:
        - __meta_kubernetes_pod_annotation_prometheus_io_path
        target_label: __metrics_path__
      - action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
        source_labels:
        - __address__
        - __meta_kubernetes_pod_annotation_prometheus_io_port
        target_label: __address__
      - action: labelmap
        regex: __meta_kubernetes_pod_label_(.+)
      - action: replace
        source_labels:
        - __meta_kubernetes_namespace
        target_label: kubernetes_namespace
      - action: replace
        source_labels:
        - __meta_kubernetes_pod_name
        target_label: kubernetes_pod_name

2.需要修改pod,让prometheus可以抓取到

kubectl -n monitoa-sa get po 

[root@k8s-master ~]# kubectl get pods -n monitor-sa
NAME                                 READY   STATUS    RESTARTS   AGE
node-exporter-7vs6m                  1/1     Running   3          27d
node-exporter-xqh6c                  1/1     Running   3          27d
prometheus-server-86cf69fb95-w2cjp   2/2     Running   0          12h

kubectl edit pods prometheus-server-86cf69fb95-w2cjp -n monitor-sa

修改annotations字段
metadata:
  annotations:
    cni.projectcalico.org/podIP: 10.244.1.68/32
prometheus.io/scrape: "true"   #默认是false,变成true,就可以被prometheus抓取到,如果pod内没有这段内容,直接加上这段内容即可,加上这段内容就可以被prometheus监控到,其他pod也一样如此

修改好之后,在prometheus web界面,点击status->targets,可以看到target列表多了kubernetes-pod这个列表
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Prometheus 是一个非常流行的开源监控系统,可以用于监控 Kubernetes 集群中的各种组件,包括 Pod、Service、Node 等。要监控 Pod,需要在 Pod 中运行一个 Prometheus 的客户端,通常是通过 Prometheus Operator 来实现。 具体的步骤如下: 1. 安装 Prometheus Operator:可以使用 Helm 来安装 Prometheus Operator,具体命令为: ``` helm install stable/prometheus-operator --name prometheus-operator --namespace monitoring ``` 上述命令会在 monitoring 命名空间中安装 Prometheus Operator。 2. 部署应用程序:在 Kubernetes 集群中部署你的应用程序,确保它们都被部署在 monitoring 命名空间中,这样 Prometheus Operator 才能够自动监控它们。 3. 配置 ServiceMonitor:在 Prometheus Operator 中,可以通过 ServiceMonitor 来指定需要监控服务。在这里,我们需要创建一个 ServiceMonitor,用于监控我们的应用程序。下面是一个示例: ``` apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: my-app namespace: monitoring spec: endpoints: - interval: 30s port: web selector: matchLabels: app: my-app ``` 在上面的示例中,我们指定了需要监控服务的标签选择器和端口号。 4. 配置 Prometheus:最后,我们需要将 ServiceMonitor 添加Prometheus配置文件中。可以编辑 Prometheus 的 ConfigMap,添加以下内容: ``` apiVersion: v1 kind: ConfigMap metadata: name: prometheus namespace: monitoring data: prometheus.yml: | global: scrape_interval: 15s scrape_configs: - job_name: 'kubernetes-service-endpoints' kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: [__meta_kubernetes_service_label_app] action: keep regex: my-app - job_name: 'kubernetes-pods' kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_label_app] action: keep regex: my-app ``` 在上面的示例中,我们将 ServiceMonitor 添加到了 Prometheus配置文件中,并指定了需要监控服务的标签选择器和端口号。 完成以上步骤后,Prometheus 就可以自动监控指定的 Pod 了。可以使用 Prometheus 的图形界面来查看 Pod监控信息,并设置告警规则来实现自动告警。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值