云容器实例 CCI-使用Prometheus监控CCI实例:使用ConfigMap管理Prometheus配置

时间:2024-01-16 17:11:32

使用ConfigMap管理Prometheus配置

为了能够方便的管理配置文件,我们这里将 prometheus.yml 文件用 ConfigMap 的形式进行管理。通过ConfigMap可以方便的做到配置解耦,使得不同环境有不同的配置。相比环境变量,Pod中引用的ConfigMap可以做到实时更新,当您更新ConfigMap的数据后,Pod中引用的ConfigMap会同步刷新。

创建prometheus-config.yml文件,并写入以下内容:

kind: ConfigMap
apiVersion: v1
metadata:
  name: prometheus-config
  labels:
    name: prometheus-config
data:
  prometheus.yml: |-
    global:
      scrape_interval: 15s   
      evaluation_interval: 15s  
    scrape_configs: 
      - job_name: kuberenete-pods   # 对pod中应用的监控,自定义监控
        kubernetes_sd_configs:  
        - role: pod
          kubeconfig_file: /etc/kube/kubeconfig    # 指定deployment挂载kubeconfig的路径
          namespaces:
            names:
            - test     # 要监控的命名空间列表
          relabel_configs:
          - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
            action: keep    
            regex: true  
          - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
            action: replace
            target_label: __metrics_path__
            regex: (.+)  
          - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
            action: replace
            regex: ([^:]+)(?::\d+)?;(\d+)
            replacement: $1:$2
            target_label: __address__
          - action: labelmap
            regex: __meta_kubernetes_pod_label_(.+)
          - source_labels: [__meta_kubernetes_namespace]
          - action: replace
            target_label: kubernetes_namespace
          - source_labels: [__meta_kubernetes_pod_name]
          - action: replace
            target_label: kubernetes_pod_name  
       - job_name: cci-monitor    # 监控pod指标
        kubernetes_sd_configs:  
        - role: pod
          kubeconfig_file: /etc/kube/kubeconfig    #指定deployment挂载kubeconfig的路径
          namespaces:
            names:
            - test    # 要监控的命名空间列表
          relabel_configs:
          - source_labels: [__meta_kubernetes_pod_annotation_monitoring_cci_io_enable_pod_metrics]
          - action: drop
            regex: false
          - action: replace
            regex: ([^:]+)(?::\d+)?
            replacement: $1:19100
            source_labels: [__meta_kubernetes_pod_ip]
            target_label: __address__
          - action: replace
            regex: ([^:]+)(?::\d+)?;(\d+)
            replacement: $1:$2
            source_labels: [__meta_kubernetes_pod_ip, __meta_kubernetes_pod_annotation_monitoring_cci_io_metrics_port]
            target_label: __address__
support.huaweicloud.com/bestpractice-cci/cci_04_0054.html