天天看點

Prometheus - Node Exporter

Exporter 是由于向 Prometheus 提供監控資料的程式,通常 Exporter 也抽象成一個 Target, Prometheus 通過 Pull 模式往 Target 中擷取監控資料。

來源區分

社群提供的 Exporter

自定義的 Exporter

支援方式區分

獨立的 Exporter 去暴露服務,例如 MySQL Exporter、Consul Exporter

服務自包含的 Exporter,例如 Kubelet 内置 cAdvisor、etcd

https://github.com/prometheus/node_exporter

Node Exporter 部署

Node Exporter 在 Kubernetes 上可以直接通過 DaemonSet 的方式在每一個節點上啟動一個Pod

并且和主控端共用同一個 Network Namespace 或者通過 HostNetwork 的方式暴露 Metrics 端口

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: node-exporter-daemonset
  namespace: monitoring
spec:
  selector:
    matchLabels:
      app: node-exporter-daemonset
  template:
    metadata:
      labels:
        app: node-exporter-daemonset
    spec:
      containers:
        - image: 'prom/node-exporter:v1.1.2'
          name: node-exporter-daemonset
          ports:
- containerPort: 9100
              hostPort: 9100
              name: metrics
              protocol: TCP
      dnsPolicy: ClusterFirst
      hostNetwork: true
      volumes:
        - hostPath:
            path: /proc
            type: ''
          name: proc
        - hostPath:
            path: /sys
            type: ''
          name: sys
        - hostPath:
            path: /
            type: ''
          name: root
---
    spec:
      containers:
          image: 'prom/node-exporter:v1.1.2'
          name: node-exporter-daemonset
          ports:
            - containerPort: 9528
              name: metrics
              protocol: TCP
 hostNetwork: true      

Node Exporter 資料暴露

通過 http://NodeIP:9100/metrics 去檢視暴露的資料

Prometheus - Node Exporter

配置 Prometheus 采集規則

cat prometheus.yml

global:
  scrape_interval:     15s
  evaluation_interval: 15s
scrape_configs:
  - job_name: 'node-exporter'
    file_sd_configs:
    - files:
      - targets/node-exporter.yml
      refresh_interval: 1m
cat targets/node-exporter.yml
- targets:
  - "172.20.31.195:9100"
  - "172.20.31.196:9100"
  - "172.20.31.197:9100"      

# 效果同樣,隻不過以下這種可以根據不同的目标去配置标簽等資訊。

cat targets/node-exporter.yml

- targets: ["172.20.31.195:9100"]
- targets: ["172.20.31.196:9100"]
- targets: ["172.20.31.197:9100"]      
Prometheus - Node Exporter

Grafana

Dashboard ID: 11074

Prometheus - Node Exporter

繼續閱讀