云容器实例 CCI-使用Prometheus监控CCI实例:使用ConfigMap管理Prometheus配置
使用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__