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

相关文章

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot中配置文件的加载顺序解读

《SpringBoot中配置文件的加载顺序解读》:本文主要介绍SpringBoot中配置文件的加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot配置文件的加载顺序1、命令⾏参数2、Java系统属性3、操作系统环境变量5、项目【外部】的ap

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/