• k8s--基础--26.2--监控告警系统--prometheus--node-exporter


    k8s–基础–26.2–监控告警系统–prometheus–node-exporter


    1、node-exporter是什么?

    1. 采集机器(物理机、虚拟机、云主机等)的监控指标数据
    2. 能够采集到的指标包括CPU, 内存,磁盘,网络,文件数等信息。

    2、安装node-exporter组件

    在k8s集群的master1节点操作

    2.1、创建 monitor-sa 名称空间

    kubectl create ns monitor-sa
    
    
    • 1
    • 2

    2.2、部署node-exporter

    2.2.1、脚本

    cd /root/k8s/monitor
    
    vi /root/k8s/monitor/node-export.yaml
    
    • 1
    • 2
    • 3

    内容

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      # DaemonSet 名称
      name: node-exporter
      # 名称空间为 monitor-sa
      namespace: monitor-sa
      # DaemonSet 标签
      labels:
        name: node-exporter
    spec:
      # 定义选择template的标签
      selector:
        matchLabels:
         name: node-exporter
      # 定义template标签
      template:
        metadata:
          labels:
            name: node-exporter
        # 容器配置
        spec:
          # 使用主机的 pid 名称空间(资源隔离,docker网络有介绍到)
          hostPID: true
          # 使用主机的ipc 名称空间(资源隔离,docker网络有介绍到)
          hostIPC: true
          # 使用主机的网络 名称空间(资源隔离,docker网络有介绍到)
          hostNetwork: true
          containers:
          - name: node-exporter
            image: prom/node-exporter:v0.16.0
            ports:
            - containerPort: 9100
            resources:
              requests:
                cpu: 0.15
            securityContext:
              # 使容器真正拥有root权限
              privileged: true
            args:
            - --path.procfs
            - /host/proc
            - --path.sysfs
            - /host/sys
            - --collector.filesystem.ignored-mount-points
            - '"^/(sys|proc|dev|host|etc)($|/)"'
            # 使用存储卷
            volumeMounts:
            - name: dev
              mountPath: /host/dev
            - name: proc
              mountPath: /host/proc
            - name: sys
              mountPath: /host/sys
            - name: rootfs
              mountPath: /rootfs
          # 容忍度设置
          tolerations:
          - key: "node-role.kubernetes.io/master"
            operator: "Exists"
            effect: "NoSchedule"
          # hostPath存储卷设置
          volumes:
            - name: proc
              hostPath:
                path: /proc
            - name: dev
              hostPath:
                path: /dev
            - name: sys
              hostPath:
                path: /sys
            - name: rootfs
              hostPath:
                path: /
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77

    2.2.2、执行

    kubectl apply -f /root/k8s/monitor/node-export.yaml
    
    # 查看
    kubectl get pods -n monitor-sa
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    3、采集数据

    3.1、请求

    1. node-export默认的监听端口是9100
    2. 可以看到当前主机获取到的所有监控数据
    curl  http://192.168.187.154:9100/metrics
    
    • 1

    3.2、内容

    # HELP node_cpu_seconds_total Seconds the cpus spent in each mode.
    # TYPE node_cpu_seconds_total counter
    node_cpu_seconds_total{cpu="0",mode="idle"} 56136.98
    
    # HELP node_load1 1m load average.
    # TYPE node_load1 gauge
    node_load1 0.58
    
      
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3.2.1、解释1

    
    # HELP node_cpu_seconds_total Seconds the cpus spent in each mode.
    # TYPE node_cpu_seconds_total counter
    node_cpu_seconds_total{cpu="0",mode="idle"} 56136.98
    
    # HELP:当前指标的含义
    	上面表示:在每种模式下,node节点的cpu花费的时间,以s为单位
    # TYPE:当前指标的数据类型
    	上面表示:counter类型
    
    总结:
    	cpu0上idle进程占用CPU的总时间为56136.98秒
    	指标类型:counter
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3.2.2、解释2

    
    # HELP node_load1 1m load average.
    # TYPE node_load1 gauge
    node_load1 0.58
    
    
    # HELP:当前指标的含义
    	上面表示:当前主机在最近1分钟以内的平均负载
    # TYPE:当前指标的数据类型
    	上面表示:gauge类型
    
    总结:
    	当前主机在最近1分钟以内的平均负载是 0.58
    	指标类型:gauge类型
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3.2.3、指标的数据类型–>counter

    计数器:只是采集递增的指标

    3.2.4、指标的数据类型–>gauge

    标准尺寸:统计的指标可增加可减少

  • 相关阅读:
    TCP 连接管理机制(一)——TCP三次握手详解 + 为什么要有三次握手
    C. Bargain(数学贡献法)
    基于DPDK抓包的Suricata安装部署
    Pyside6 QMessageBox
    Hadoop初识及信息安全(大数据的分布式存储和计算平台)
    Unity射线实现碰撞检测(不需要rigbody组件)
    Notepad2 v4.22.11r4478 开源轻量级文本编辑软件
    聊聊对Andorid的FileProvider的理解
    skywalking--链路追踪
    兄弟凶弟凶帝
  • 原文地址:https://blog.csdn.net/zhou920786312/article/details/126244146