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

这篇具有很好参考价值的文章主要介绍了prometheus使用node_exporter监控Linux主机CPU、内存、磁盘、服务运行状况。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

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/

linux系统监控node,promethus从入门到精通,prometheus,运维

2.部署node_exporter

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

IP 角色
192.168.81.210 prometheus、node_exporter、docker
192.168.81.220 node_exporter、docker
192.168.81.230 node_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-failure
ExecStart=/data/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target

2.启动
systemctl daemon-reload
systemctl start node_exporter.service 
systemctl enable node_exporter.service

linux系统监控node,promethus从入门到精通,prometheus,运维

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: 5s

2.加载配置
[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.主机添加成功

linux系统监控node,promethus从入门到精通,prometheus,运维

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值

linux系统监控node,promethus从入门到精通,prometheus,运维

4.1.1.获取空闲CPU监控数据

mode标签值为idle的为空闲

node_cpu_seconds_total{mode='idle'}

linux系统监控node,promethus从入门到精通,prometheus,运维

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

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

linux系统监控node,promethus从入门到精通,prometheus,运维

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

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

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

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

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

linux系统监控node,promethus从入门到精通,prometheus,运维

4.1.4.获取CPU5分钟内使用率

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

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

linux系统监控node,promethus从入门到精通,prometheus,运维

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)

linux系统监控node,promethus从入门到精通,prometheus,运维

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

linux系统监控node,promethus从入门到精通,prometheus,运维

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

linux系统监控node,promethus从入门到精通,prometheus,运维

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

linux系统监控node,promethus从入门到精通,prometheus,运维

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

所差不多

linux系统监控node,promethus从入门到精通,prometheus,运维

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

linux系统监控node,promethus从入门到精通,prometheus,运维

重启服务

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表示异常文章来源地址https://www.toymoban.com/news/detail-853588.html

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

linux系统监控node,promethus从入门到精通,prometheus,运维

存活状态

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

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

到了这里,关于prometheus使用node_exporter监控Linux主机CPU、内存、磁盘、服务运行状况的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 免费开源服务器资源监控系统grafana+prometheus+node_exporter

    有项目做测试的时候需要查询服务器资源利用情况,自己又没写相应的模块,此时就需要一套好用的资源监控系统,,咨询了运维人员给推荐了一套,装完后真的很好用。 就是grafana+prometheus+ node_exporter(linux)或者windows_exporter(wins) 具体介绍不多说: 1、grafana是对数据做展

    2024年02月12日
    浏览(40)
  • Linux部署docker以及prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警)

    Linux安裝docker以及部署prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警) 1、官方安裝脚本自动安装docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2、启动docker systemctl start docker 3、搜索镜像-例如搜索prometheus docker search prom/prometheus 4、拉取镜像--这里仅列出我

    2024年03月15日
    浏览(55)
  • Linux 集群监控部署:prometheus + node-exporter + Grafana

    之前我们有用到top、free、iostat等等命令,去监控服务器的性能,但是这些命令,我们只针对单台服务器进行监控,通常我们线上都是一个集群的项目,难道我们需要每一台服务器都去敲命令监控吗?这样显然不是符合逻辑的,Linux中就提供了一个集群监控工具 – prometheus。

    2024年02月04日
    浏览(32)
  • Windows:prometheus + grafana + wmi_exporter+ 主机信息监控页面 + 支持主机信息告警

    下载地址:Download | Prometheus 选择对应的系统的版本下载并解压压缩包,运行程序 本人在window系统上操作 双击 验证 浏览器输入http://localhost:9090/ 点击Staatus=Targets 出现以下即成功   下载地址:Download Grafana | Grafana Labs 同理选择对应的系统下载(本人通篇均使用window系统 下载并

    2024年02月12日
    浏览(35)
  • 【监控系统】Prometheus监控组件Node-Exporter配置实战

    这一节,我们来配置一下Node-Exporter,那么我们先来了解一下什么是Prometheus的Exporter? 任何向Prometheus提供监控样本数据的程序都可以被称为一个Exporter,它是一种用于将不同数据源的指标提供给Prometheus进行收集和监控的工具。运行在应用程序、计算机、网络设备或者其他系统

    2024年02月15日
    浏览(34)
  • 运维学习之采集器 node_exporter 1.3.1安装并使用

    参考《监控系统部署prometheus基本功能》先完成prometheus部署。 wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz 下载压缩包。 tar -zxf node_exporter-1.3.1.linux-amd64.tar.gz 进行解压。 cp node_exporter-1.3.1.linux-amd64/* /opt/prometheus/ 进行复制。 nohup /opt/pr

    2024年02月09日
    浏览(32)
  • k8s集群监控方案--node-exporter+prometheus+grafana

    目录 前置条件 一、下载yaml文件 二、部署yaml各个组件 2.1 node-exporter.yaml 2.2 Prometheus 2.3 grafana 2.4访问测试 三、grafana初始化 3.1加载数据源 3.2导入模板 四、helm方式部署 安装好k8s集群(几个节点都可以,本人为了方便实验k8s集群只有一个master节点),注意prometheus是部署在k8s集群

    2024年02月12日
    浏览(33)
  • 配置node_exporter

    在Prometheus的架构设计中,PrometheusServer并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metric

    2024年02月10日
    浏览(31)
  • 基于Prometheus+Grafana搭建监控平台(Windows/Linux环境exporter部署)

    1.1 Prometheus是什么?Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区。为强调开源及独立维护,Prometheus于2016年加入云原生云计算基金会(CNCF),成为继Kubernetes之后的第二个托管项目。 Prometheus

    2024年01月19日
    浏览(70)
  • Prometheus+Grafana+AlertManager监控Linux主机状态

    Docker搭建并配置Prometheus Docker拉取并配置Grafana Docker安装并配置Node-Exporter Docker安装并配置cAdvisor Docker安装并运行Alertmanager 点击Add your first data source 选择Prometheus Prometheus server URL中输入IP地址及端口号 注意:此处IP地址为Prometheus在Docker容器内部的IP地址 查看容器内ID方法: 退出

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包