Prometheus通过node_exporter监控Node节点,Node节点的详细指标解读

2024-09-05 09:28

本文主要是介绍Prometheus通过node_exporter监控Node节点,Node节点的详细指标解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,云原生k8s,Prometheus监控,linux,shell脚本等实操经验,网站搭建,数据库等分享。

所属的专栏:Prometheus监控系统零基础到进阶
景天的主页:景天科技苑

在这里插入图片描述

文章目录

  • Prometheus如何监控Node节点
    • 安装node_exporter
    • 配置node_exporter
    • 启动node_exporter
    • 配置Prometheus
    • 导⼊Grafana模板
  • node_exporter常用指标详细解读
    • CPU与内存相关指标
      • 1、CPU负载相关核心指标
      • 2、CPU使用相关核心指标
      • 3、内存相关核心指标
      • 4、SWAP相关核心指标
    • 磁盘与网络相关指标
      • 1、磁盘空间相关核心指标
      • 2、磁盘Inode相关核心指标
      • 3、磁盘IO吞吐量相关核心指标
      • 4、磁盘IOPS相关核心指标
      • 5、网络核心指标
      • 6、连接追踪核心指标
    • TCP与其他相关指标
      • 1、TCP相关核心指标
      • 2、文件描述符
      • 3、系统其他指标

Prometheus如何监控Node节点

监控节点(如服务器或者虚拟机)通常涉及收集硬件和操作系统层⾯的指标,比如 CPU 使⽤率、内存占⽤、磁盘 I/O、⽹络流量等。
但是这些指标并不能直接被Prometheus 抓取,因此我们需要借助Node exporter将对应的指标转为Prometheus能够兼容的指标格式,并对外提供HTTP接⼝暴露给Prometheus进⾏指标抓取。

监控地址规划:
在这里插入图片描述

安装node_exporter

1、访问Prometheus官⽹ https://prometheus.io/download/ 获取Node-exporter的下载地址
https://github.com/prometheus/node_exporter/releases/
在这里插入图片描述

当然,如果是windows机器,也可以获取其他比如Windows上的版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在服务器wget下载

wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz

在这里插入图片描述
在这里插入图片描述

推送给其他节点

for i in {21..22};do scp node_exporter-1.8.2.linux-amd64.tar.gz 10.10.0.$i:/root/;done

在这里插入图片描述

2、解压node-exporter

tar xf node_exporter-1.8.2.linux-amd64.tar.gz -C /etc/

创建软连接

ln -s /etc/node_exporter-1.8.2.linux-amd64/ /etc/node_exporter

在这里插入图片描述

配置node_exporter

启动 Node Exporter 即可开始进⾏指标采集,它默认启⽤了⼀些常⻅的收集器以监控 CPU、内存、⽹络等关键指标。
然而,由于每个操作系统对收集器的⽀持程度不同,Node Exporter 也提供了⼀些"默认未启用的收集器"。我们可以根据监控需求,通过特定的参数来启用这些收集器。
我们可通过 ./node_exporter --help 可以查看哪有是默认启动了,哪些默认没启动
在这里插入图片描述

要禁⽤默认激活的收集器,可以使⽤参数 --no-collector.<name>
要启⽤默认未激活的收集器,可以使⽤参数 --collector.<name>
如果只想启动某些特定的收集器,可以使⽤ --collector.disable-defaults 标志禁用所有默认的,然后在指定具体要启⽤收集器 --collector.<name> 来进⾏收集。
默认关闭一些收集器的原因在于,有些指标采集需要占用过多资源开销、太重、太慢;所以谨慎开启;如果你想启用,就要小心测试了,看看采集耗时、对机器的资源占用的影响等。
其实,默认开启的收集器,就足够我们使用了
我们直接启动看看
在这里插入图片描述
在这里插入图片描述

1、例如,禁⽌默认启动的arp的采集
#直接启动会发现有arp采集
[root@prom-node01 ~]# /etc/node_exporter/node_exporter

ts=2023-12-10T02:42:06.808Z caller=node_exporter.go:117 level=info collector=arp

#禁⽤arp收集器,就看不到了
[root@prom-node01 ~]# /etc/node_exporter/node_exporter --no-collector.arp

2、启⽤默认未激活的 tcpstat 收集器
#直接启动默认不会收集tcpstat
[root@prom-node01 ~]# /etc/node_exporter/node_exporter
#启⽤tcpstat
[root@prom-node01 ~]# /etc/node_exporter/node_exporter --collector.tcpstat

ts=2023-12-10T02:46:13.612Z caller=node_exporter.go:117 level=info collector=tcpstat

3、也可以禁⽤所有收集器,仅启用那些只想启用的收集器

[root@jingtian01 node_exporter ]#./node_exporter --collector.disable-defaults --collector.cpu --collector.diskstats --collector.netstat

在这里插入图片描述

启动node_exporter

1、配置system管理Prometheus启动和停止

[root@jingtian01 node_exporter ]#vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
ExecStart=/etc/node_exporter/node_exporter \--web.listen-address=:9100 \--web.max-requests=40 \--collector.mountstats \--collector.systemd \--collector.ethtool \--collector.tcpstat
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
Restart=always
[Install]
WantedBy=multi-user.target

在这里插入图片描述

2、启动node-exporter

systemctl daemon-reload
systemctl start node_exporter.service

查看启动状态

systemctl status node_exporter.service

在这里插入图片描述

3、检查监听的端⼝

netstat -lanptu|grep 9100

在这里插入图片描述

4、访问对应的metrics,验证是否能采集到数据

curl -s http://localhost:9100/metrics

有数据,也可以在浏览器上查看
在这里插入图片描述

在这里插入图片描述

另外两台也都开启node_exporter服务

配置Prometheus

1、修改Prometheus配置,添加新的Job分组,然后将对应的节点纳⼊监控中;

[root@jingtian01 node_exporter ]#vim /etc/prometheus/prometheus.yml- job_name: "node_exporter"metrics_path: "metrics"scheme: "http"static_configs:- targets: ["jingtian01:9100","jingtian02:9100","jingtian03:9100"]

2、重新加载Prometheus

[root@jingtian01 node_exporter ]#curl -vv -X POST http://localhost:9090/-/reload
* About to connect() to localhost port 9090 (#0)
*   Trying ::1...
* Connected to localhost (::1) port 9090 (#0)
> POST /-/reload HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:9090
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Wed, 04 Sep 2024 05:41:21 GMT
< Content-Length: 0
< 
* Connection #0 to host localhost left intact

3、检查Prometheus是否已将对应节点纳⼊监控(点击Status–>Targets)
http://10.10.0.20:9090/
在这里插入图片描述

在普罗米修斯查看指标
在这里插入图片描述

导⼊Grafana模板

在Grafana的官⽅插件库中,有很多Node-exporter模板。
其中相对受欢的模板的ID是: 11074、1860 。
11074 :模板包括了CPU、内存、磁盘、网络、温度传感器等指标(常用)。
1860 :模板包括CPU、内存、磁盘、网络等。这运⾏状况,及时发现潜在
问题并进行调优。
我们直接可以进官网搜
https://grafana.com/grafana/dashboards/
在这里插入图片描述

这个就是node_epxorter
在这里插入图片描述

点进去可以看到ID
在这里插入图片描述

或者直接在这搜
在这里插入图片描述

怎么导入呢?
点击仪表盘
在这里插入图片描述

点击 新建–导入
在这里插入图片描述

这里输入ID
在这里插入图片描述

点击加载,除了输入ID,也可以将json文件复制过来点击加载
在这里插入图片描述

选择数据源,我们选prometheus
在这里插入图片描述

点击import
在这里插入图片描述

然后就可以到dashboard
在这里插入图片描述
在这里插入图片描述

node_exporter常用指标详细解读

CPU与内存相关指标

1、CPU负载相关核心指标

gauge类型,数据会随着系统变化而产生变化
在这里插入图片描述

2、CPU使用相关核心指标

Counter类型,数据会随着时间一直累加
在这里插入图片描述
在这里插入图片描述

可以过滤,用大括号包裹着标签
在这里插入图片描述

3、内存相关核心指标

在这里插入图片描述
在这里插入图片描述

node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100

在这里插入图片描述

4、SWAP相关核心指标

在这里插入图片描述

磁盘与网络相关指标

1、磁盘空间相关核心指标

在这里插入图片描述
在这里插入图片描述

查看磁盘可用空间

node_filesystem_avail_bytes / node_filesystem_size_bytes * 100

在这里插入图片描述

2、磁盘Inode相关核心指标

在这里插入图片描述

3、磁盘IO吞吐量相关核心指标

在这里插入图片描述

4、磁盘IOPS相关核心指标

在这里插入图片描述
在这里插入图片描述

5、网络核心指标

在这里插入图片描述

6、连接追踪核心指标

在这里插入图片描述

TCP与其他相关指标

1、TCP相关核心指标

在这里插入图片描述
在这里插入图片描述

2、文件描述符

在这里插入图片描述
在这里插入图片描述

node_filefd_maximum
在这里插入图片描述

node_filefd_allocated
在这里插入图片描述

3、系统其他指标

在这里插入图片描述

这篇关于Prometheus通过node_exporter监控Node节点,Node节点的详细指标解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138568

相关文章

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

springboot2.1.3 hystrix集成及hystrix-dashboard监控详解

《springboot2.1.3hystrix集成及hystrix-dashboard监控详解》Hystrix是Netflix开源的微服务容错工具,通过线程池隔离和熔断机制防止服务崩溃,支持降级、监... 目录Hystrix是Netflix开源技术www.chinasem.cn栈中的又一员猛将Hystrix熔

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.

Java实现TXT文件导入功能的详细步骤

《Java实现TXT文件导入功能的详细步骤》在实际开发中,很多应用场景需要将用户上传的TXT文件进行解析,并将文件中的数据导入到数据库或其他存储系统中,本文将演示如何用Java实现一个基本的TXT文件... 目录前言1. 项目需求分析2. 示例文件格式3. 实现步骤3.1. 准备数据库(假设使用 mysql

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

在 Spring Boot 中连接 MySQL 数据库的详细步骤

《在SpringBoot中连接MySQL数据库的详细步骤》本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,... 目录一、添加依赖二、配置数据库连接三、创建实体类四、创建仓库接口五、创建服务类六、创建控制器七、运行应用程序八

MySQL连表查询之笛卡尔积查询的详细过程讲解

《MySQL连表查询之笛卡尔积查询的详细过程讲解》在使用MySQL或任何关系型数据库进行多表查询时,如果连接条件设置不当,就可能发生所谓的笛卡尔积现象,:本文主要介绍MySQL连表查询之笛卡尔积查... 目录一、笛卡尔积的数学本质二、mysql中的实现机制1. 显式语法2. 隐式语法3. 执行原理(以Nes

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1