当前位置: 首页 > backend >正文

Prometheus实战教程:k8s平台-node-exporter监控物理机

监控图示

部署方式:

(1)docker或docker-compose部署 (本文使用)

(2)二进制
(3)kubernetes中使用daemonset

步骤 1:准备工作

  1. 确保 Docker 已安装
    在部署之前,确保你的系统已经安装了 Docker。可以通过以下命令检查 Docker 是否已安装:

    docker --version

    如果未安装,请参考 Docker 官方文档 进行安装。

  2. 拉取 node_exporter 镜像
    从 Docker Hub 或其他镜像仓库拉取 node_exporter 镜像:

    docker pull prom/node-exporter:v1.8.2

步骤 2:创建 docker-compose.yml 文件

在本地创建一个 docker-compose.yml 文件,内容如下:

version: '3'
services:node-exporter:image: prom/node-exporter:v1.8.2container_name: node-exporterports:- "9100:9100"restart: always

docker命令运行

docker run -d \--name node-exporter \-p 9100:9100 \--restart always \harbor.fq.com/prometheus/node-exporter:v1.8.2    

步骤 3:启动 node_exporter

  1. 在终端中导航到包含 docker-compose.yml 文件的目录。

  2. 运行以下命令启动 node_exporter

    docker-compose up -d
    • -d 参数表示以“后台模式”运行。

步骤 4:验证 node_exporter 是否正常运行

  1. 检查容器状态
    运行以下命令,确认容器是否正常运行:

    docker ps -f name=node-exporter

    输出示例:

    CONTAINER ID   IMAGE                        COMMAND                  STATUS        PORTS                    NAMES
    abc123def456   prom/node-exporter:v1.8.2   "/bin/node_exporter"     Up 5 minutes  0.0.0.0:9100->9100/tcp   node-exporter
  2. 访问 node_exporter 指标接口
    打开浏览器或使用 curl 访问 node_exporter 的指标接口:

    curl http://localhost:9100/metrics

    如果一切正常,你会看到类似以下的输出(这是 Prometheus 格式的指标数据):

    # HELP go_gc_duration_seconds A summary of the GC invocation durations.
    # TYPE go_gc_duration_seconds summary
    go_gc_duration_seconds{quantile="0"} 0.000123
    go_gc_duration_seconds{quantile="0.25"} 0.000456
    ...
  3. 检查日志
    查看容器的日志,确认没有错误:

    docker logs node-exporter
  4. 查看主机端口

    [root@k8s-node03 ~]# ss -alutn |grep 9100
    tcp    LISTEN     0      10240     *:9100                  *:*
    tcp    LISTEN     0      10240  [::]:9100               [::]:*
---### **步骤 5:配置 Prometheus 抓取 `node_exporter` 数据**如果你使用 Prometheus 监控系统,需要将 `node_exporter` 添加到 Prometheus 的配置文件中。5. 编辑 Prometheus 的配置文件 `prometheus.yml`,添加以下内容:```yamlscrape_configs:- job_name: 'node_exporter'static_configs:- targets: ['<your-server-ip>:9100']

<your-server-ip> 替换为运行 node_exporter 的服务器的 IP 地址。 示例:

# [root@k8s-master02 monitoring]# cat prometheus/prometheus.yml
global:scrape_interval: 15s   # 每 15 秒抓取一次数据evaluation_interval: 15salerting:alertmanagers:- static_configs:- targets: ['alertmanager:9093']scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']- job_name: 'node-exporter'static_configs:- targets: ['node-exporter:9100']- job_name: 'cadvisor'static_configs:- targets: ['cadvisor:8080']- job_name: 'pushgateway'static_configs:- targets: ['pushgateway:9091']- job_name: 'node-linux'static_configs:- targets: ['10.255.209.40:9100']
rule_files:- '/etc/prometheus/alert_rules.yml'
  1. 重启 Prometheus 以加载新配置:

    docker-compose restart prometheus
  2. 在 Prometheus 的 Web UI 中验证是否成功抓取数据:

    • 打开 Prometheus 的 Web UI(默认地址:http://localhost:9090)。
    • 在搜索栏中输入 up,查看 node_exporter 的状态是否为 1(表示正常)。 


步骤 6:停止和清理

如果需要停止或删除 node_exporter 容器,可以运行以下命令: 3. 停止容器:

docker-compose down
  1. 删除容器和镜像:

    docker-compose down --rmi all
http://www.xdnf.cn/news/4818.html

相关文章:

  • OPCUA,OPCDA与MODBUS学习笔记
  • RabbitMQ学习(第二天)
  • ConcurrentHashMap解析
  • 3中AI领域的主流方向:预测模型、强化学习和世界模型
  • Pytorch的简单介绍(起源、历史、优缺点、应用领域等等)
  • stable-diffusion windows本地部署
  • uniapp上架苹果APP Store踩雷和部分流程注意事项(非完整流程)
  • word文档基本操作: 编辑页眉页脚和插入目录
  • 移动端前端开发中常用的css
  • SQLite3常用语句汇总
  • Kubernetes探针生产环境实战指南
  • 全连接神经网络学习笔记
  • 【Fifty Project - D25】
  • 在模 p 运算中,将负数 x 转换为对应的正数,执行 (x % p + p) % p 操作即可。
  • 单片机-STM32部分:9、定时器
  • 计算机网络笔记(十五)——3.2点对点协议PPP
  • 安装Pod网络插件时pod状态变为ImagePullBackOff
  • Spring Boot Controller 如何处理HTTP请求体
  • 微信小程序上传视频,解决ios上传完video组件无法播放
  • 【算法专题十一】字符串
  • Java并发编程几个问题的解答
  • ResNet中使用expansion放大维度特征
  • ESP32 DAC音频应用示例与场景
  • Java 的 Monitor 机制:原理与源码详解
  • c语言与c++到底有什么区别?
  • Alpha3DCS公差分析系统_国产替代的3D精度管控方案-SNK施努卡
  • 力扣热题——到达最后一个房间的最少时间 I
  • 云原生应用全生命周期管理实战:从开发、部署到运维的一体化方案
  • 华为首款鸿蒙电脑正式亮相,开启国产操作系统新篇章
  • 20250508在WIN10下使用移远的4G模块EC200A-CN直接上网