貔貅云原生

貔貅云原生

kube-prometheus监控外部exporter

2024-11-19
kube-prometheus监控外部exporter

kube-prometheus 使用外部 exporter

kube-prometheus 简化了部署 prometheus 复杂程度,但是这个项目的 prometheus-operator 添加动态目标是通过 serviceMonitor 资源实现。只能针对 k8s 中 service 的类型,如果是外部的 exporter 就需要进行挂载 prometheus 文件实现

实现方法,静态文件

需要添加一个文件内容如下:

[root@VM]# cat external-node.yaml
- job_name: 'external-node-exporter'
  static_configs:
    - targets:
        - 10.0.1.130:9100
  relabel_configs:
    - source_labels: [__address__]
      regex: "([^:]+):[0-9]+"
      target_label: instance
      replacement: "$1"

创建 secret 配置文件

kubectl create secret generic external-node-configs --from-file=external-node.yaml -n monitoring

引用到 prometheus 资源下,添加 additionalScrapeConfigs 实现

[root@VM]# kubectl edit prometheus -n monitoring k8s
...
  namespace: monitoring
  resourceVersion: "45924480"
  uid: ab9b158c-8027-42a8-8f0f-acc2341d99de
spec:
  additionalScrapeConfigs:  // 添加内容
    key: external-node.yaml // 添加内容
    name: external-node-configs // 添加内容
  alerting:
    alertmanagers:
    - apiVersion: v2
      name: alertmanager-main
      namespace: monitoring
      port: web
  enableFeatures: []
  evaluationInterval: 30s
  externalLabels: {}
  image: quay.io/prometheus/prometheus:v2.55.1
  ...