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调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Springboot 中使用Sentinel的详细步骤

《Springboot中使用Sentinel的详细步骤》文章介绍了如何在SpringBoot中使用Sentinel进行限流和熔断降级,首先添加依赖,配置Sentinel控制台地址,定义受保护的资源,... 目录步骤 1: 添加 Sentinel 依赖步骤 2: 配置 Sentinel步骤 3: 定义受保护的

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr