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

相关文章

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

Java操作PDF文件实现签订电子合同详细教程

《Java操作PDF文件实现签订电子合同详细教程》:本文主要介绍如何在PDF中加入电子签章与电子签名的过程,包括编写Word文件、生成PDF、为PDF格式做表单、为表单赋值、生成文档以及上传到OB... 目录前言:先看效果:1.编写word文件1.2然后生成PDF格式进行保存1.3我这里是将文件保存到本地后

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

使用SpringBoot创建一个RESTful API的详细步骤

《使用SpringBoot创建一个RESTfulAPI的详细步骤》使用Java的SpringBoot创建RESTfulAPI可以满足多种开发场景,它提供了快速开发、易于配置、可扩展、可维护的优点,尤... 目录一、创建 Spring Boot 项目二、创建控制器类(Controller Class)三、运行

springboot整合gateway的详细过程

《springboot整合gateway的详细过程》本文介绍了如何配置和使用SpringCloudGateway构建一个API网关,通过实例代码介绍了springboot整合gateway的过程,需要... 目录1. 添加依赖2. 配置网关路由3. 启用Eureka客户端(可选)4. 创建主应用类5. 自定

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五