当前位置:首页 » 《关于电脑》 » 正文

prometheus使用node_exporter监控Linux主机CPU、内存、磁盘、服务运行状况

2 人参与  2024年04月17日 10:11  分类 : 《关于电脑》  评论

点击全文阅读


目录

1.node_exporter简介

2.部署node_exporter

2.1.安装node_exporter

2.2.编写system启动脚本

3.prometheus监控Linux主机

3.1.修改配置文件增加主机节点

3.2.主机添加成功

4.监控Linux主机CPU、内存、磁盘使用率

4.1.监控CPU使用率

4.1.1.获取空闲CPU监控数据

4.1.2.获取5分钟内的监控数据

4.1.3.获取5分钟内的CPU平均空闲情况

4.1.4.获取CPU5分钟内使用率

4.2.监控内存使用率

4.2.1.获取空闲内存

4.2.2.获取空闲内存率

4.2.3.获取内存使用率

4.3.监控磁盘使用率

4.3.1.获取磁盘空闲率

4.3.2.获取磁盘使用率

5.监控系统服务状态

5.1.配置node_exporter启动参数

5.2.查看服务的监控状态


1.node_exporter简介

node_exporter常用于系统监控,使用go语言编写的指标收集器

node_exporter操作文档:https://prometheus.io/docs/guides/node-exporter/

prometheus支持的exporters列表:https://prometheus.io/docs/instrumenting/exporters/

在这里插入图片描述

2.部署node_exporter

环境准备,在所有机器上都部署node_exporter,步骤都一样

IP角色
192.168.81.210prometheus、node_exporter、docker
192.168.81.220node_exporter、docker
192.168.81.230node_exporter、docker
2.1.安装node_exporter

node_exporter下载地址: https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz

tar xf node_exporter-1.0.1.linux-amd64.tar.gz mv node_exporter-1.0.1.linux-amd64 /data/node_exporter/cp /data/node_exporter/node_exporter /usr/bin/
2.2.编写system启动脚本
1.编写文件vim /usr/lib/systemd/system/node_exporter.service[Unit]Description=https://prometheus.io[Service]    Restart=on-failureExecStart=/data/node_exporter/node_exporter[Install]WantedBy=multi-user.target2.启动systemctl daemon-reloadsystemctl start node_exporter.service systemctl enable node_exporter.service

在这里插入图片描述

3.prometheus监控Linux主机

3.1.修改配置文件增加主机节点

我们使用自动发现来实现,修改完配置加载一下

1.修改配置文件[root@prometheus-server ~]# vim /data/prometheus/prometheus.yml   - job_name: 'centos7-node'    file_sd_configs:      - files: ['/data/prometheus/targets/node/*.yml']        refresh_interval: 5s2.加载配置[root@prometheus-server ~]# curl -XPOST 192.168.81.210:9090/-/reload   3.编写自动发现文件[root@prometheus-server ~]# mkdir /data/prometheus/targets/node[root@prometheus-server ~]# vim /data/prometheus/targets/node/node.yml - targets:   - '192.168.81.210:9100'  - '192.168.81.220:9100'  - '192.168.81.230:9100'  labels:    idc: "bj"

3.2.主机添加成功

在这里插入图片描述

4.监控Linux主机CPU、内存、磁盘使用率

4.1.监控CPU使用率

CPU的监控项名称是:node_cpu_seconds_total,使用总量

直接执行node_cpu_seconds_total查询后会出现很多监控指标,显然不是想要的

node_cpu_seconds_total执行后会出现很多监控指标,其中各种类型的比如系统态、用户态都会由mode标签来区分

我们想要查询CPU的使用率的思路是:

​ 查出当前空闲的CPU百分比,最后用100减去,mode标签值idle就表示当前空闲的CPU值

在这里插入图片描述

4.1.1.获取空闲CPU监控数据

mode标签值为idle的为空闲

node_cpu_seconds_total{mode='idle'}

在这里插入图片描述

4.1.2.获取5分钟内的监控数据

上一步虽然可以查出来结果,但是不太理想,因为CPU是不断波动的,我们可以在增加一个条件,查询5分钟内的一个CPU使用情况

在这里插入图片描述

4.1.3.获取5分钟内的CPU平均空闲情况

我们可以使用irate和avg函数结合刚才查询出5分钟内数据做一个平均情况展示

函数的使用方法:函数(指标获取方式)

avg(irate(node_cpu_seconds_total{mode=‘idle’}[5m])) by (instance)

by(instance)表示以instance标签进行分组

在这里插入图片描述

4.1.4.获取CPU5分钟内使用率

最后我们可以*100得出一个百分比的空闲率,再由100-即可得到CPU的使用率

100 - (avg(irate(node_cpu_seconds_total{mode='idle'}[5m])) by (instance) *100)

在这里插入图片描述

4.2.监控内存使用率

由于内存的监控项没有像CPU一样区分了很多标签,因此内存监控相较于CPU则需要结合很多个监控项

node_memory_MemFree_bytes //空闲内存

node_memory_MemTotal_bytes //总内存

node_memory_Cached_bytes //缓存

node_memory_Buffers_bytes //缓冲区内存

监控内存使用的思路:

​ 1.空闲内存+缓存+缓冲区内存得出空闲总内存

​ 2.得出的空闲总内存再除总内存大小再乘100,得出空闲率

​ 3.再用100-空闲率就得出使用率

4.2.1.获取空闲内存
(node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes)

在这里插入图片描述

4.2.2.获取空闲内存率
(node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100

在这里插入图片描述

4.2.3.获取内存使用率
100 - ((node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100)

在这里插入图片描述

4.3.监控磁盘使用率

关于磁盘使用率,这里我们用到的主要有:

​ node_filesystem_free_bytes //剩余磁盘空间

​ node_filesystem_size_bytes //磁盘空间总大小

这两个监控项中都有相同的标签可以关联,我们这里用到的标签有fstype,fstype标签值是关于磁盘的文件系统类型,对于磁盘监控,我们主要对xfs、ext4等文件系统的磁盘进行监控,像tmpfs这种的不必要监控,另一个主要的标签是mountpoint,这个标签值主要用来储存磁盘的挂载点,我们可以通过标签来选择要对那个挂载点的磁盘进行监控

磁盘使用率实现思路:

​ 1.由磁盘空闲容量除磁盘总容量乘100即可得到磁盘空闲率

​ 2.用100减磁盘空闲率即可得到磁盘使用率

在使用逻辑运算时最好习惯性加一个()防止错误

我们监控/目录的磁盘使用情况

4.3.1.获取磁盘空闲率
node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint="/"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint="/"} *100

可以看到得出的结果和系统df命令查到的是一致的,空闲84,代表已经使用16

在这里插入图片描述

4.3.2.获取磁盘使用率
100 - (node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint="/"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint="/"} *100)

所差不多

在这里插入图片描述

5.监控系统服务状态

监控服务的状态,例如nginx、docker这种服务器的启动状态

node_exporter是根据systemd去监控的,因此只有能用systemctl启动的服务器才能被监控到

配置非常简单,只需要在启动时开启system监控,并指定监控什么服务即可

配置system监控的参数:

–collector.systemd //开启system监控

–collector.systemd.unit-whitelist=".+" //对那些服务启动system监控,可以使用正则匹配

5.1.配置node_exporter启动参数

三台监控主机都要操作

vim /usr/lib/systemd/system/node_exporter.service ExecStart=/data/node_exporter/node_exporter --collector.systemd --collector.systemd.unit-whitelist=(docker|sshd|node_exporter).service

在这里插入图片描述

重启服务

systemctl daemon-reload systemctl restart node_exporter.service 
5.2.查看服务的监控状态

以docker为例,我们查询docker存活状态

node_systemd_unit_state使用这个监控项查看,里面也有很多标签,name=“docker.service”,标签name表示服务的名称, state=“active”,state表示服务的状态,active表示活动的,对应的监控值也是1,如果为1则表示正常,不为1表示异常

node_systemd_unit_state{name="docker.service", state="active"}

在这里插入图片描述

存活状态

node_systemd_unit_state使用这个监控项查看,里面也有很多标签,name=“docker.service”,标签name表示服务的名称, state=“active”,state表示服务的状态,active表示活动的,对应的监控值也是1,如果为1则表示正常,不为1表示异常

node_systemd_unit_state{name="docker.service", state="active"}

点击全文阅读


本文链接:http://m.zhangshiyu.com/post/96370.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 孟卿卿谢昭远结局+番外(孟卿卿谢昭远)_(孟卿卿谢昭远结局+番外)孟卿卿谢昭远结局+番外列表_笔趣阁(孟卿卿谢昭远)
  • 被谎言掩埋的真情结局+番外免费(韩庭屿郑念佳)_(被谎言掩埋的真情结局+番外)在线
  • 季婉灵陆庭尧(八零任爱如江水流远结局+番外)全书在线季婉灵陆庭尧读_(八零任爱如江水流远结局+番外季婉灵陆庭尧)八零任爱如江水流远结局+番外列表_笔趣阁(季婉灵陆庭尧)
  • 「明日共朝暮,天长亦久别」精彩章节免费试读_「裴天泽宁安安安」小说精彩节选免费试读
  • (番外)+(全书)孟卿卿谢昭远(九幽不渡卿全章+后续+结局)全书在线_孟卿卿谢昭远免费列表_笔趣阁(九幽不渡卿全章+后续+结局)
  • 许我三千繁星愿全书+后续+结局(慕星眠楚砚风)列表_许我三千繁星愿全书+后续+结局(慕星眠楚砚风)许我三千繁星愿全书+后续+结局在线
  • [心欲动而风不止]小说免费试读_何锋冷笑明白精彩章节试读
  • 沈星眠傅景淮(高冷男友化身舔狗,我不要了全书+结局+番外)_沈星眠傅景淮列表_笔趣阁(高冷男友化身舔狗,我不要了全书+结局+番外)
  • 也曾偷藏欢喜全书+后续(乔喜商凛)_(乔喜商凛)也曾偷藏欢喜全书+后续列表_笔趣阁(乔喜商凛)
  • 「从此萧郎是路人」小说节选推荐_宁钰阿昭乞丐番外合集提前订‌
  • 重回八零,我拒绝肩挑两房完结_[公公顾启铭顾老]限时免费***章节速览
  • 桑年裴谨言孟微晴(你是我未拆的遗书桑年结局+番外)_(桑年裴谨言孟微晴)列表_笔趣阁(你是我未拆的遗书桑年结局+番外)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1