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









上一篇:Elasticsearch Word Segmentation


下一篇:Prometheus - Introduction