✨✨ 欢迎大家来到景天科技苑✨✨
🎈🎈 养成好习惯,先赞后看哦~🎈🎈
🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,云原生k8s,Prometheus监控,linux,shell脚本等实操经验,网站搭建,数据库等分享。所属的专栏:Prometheus监控系统零基础到进阶
景天的主页:景天科技苑
文章目录
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