在上一篇文章中我们学习了如何通过node-exporter获取主机监控信息。但安装好监控只是第一步,我们还需要知道哪些监控指标是我们需要关注的。

本文将对Prometheus相关的主机监控指标进行介绍。

一. CPU监控

CPU负载

node_load1
node_load5
node_load15

以上三个指标为主机的CPU平均负载,分别对应一分钟、五分钟和十五分钟的时间间隔。CPU负载是指某段时间内占用CPU时间的进程和等待CPU时间的进程数之和。一般来说,cpu负载数/cpu核数如果超过0.7,应该开始关注机器性能情况 ,如果超过1的话,运维人员应该介入处理。

CPU使用率

node_cpu_seconds_total

该指标包括了多个标签,分别标记每种处理模式使用的CPU时间,该指标为counter类型。这个指标不适合直接拿来使用,可通过前面学习的PromQL,将其转化成CPU使用率的指标 。

mode="idle"代表CPU 的空闲时间,所以我们只需要算出空闲的时间占比,再以总数减去该值 ,便可知道CPU的使用率,此处使用irate方法。由于现有的服务器一般为多核,所以加上avg求出所有cpu的平均值,便是CPU的使用率情况 ,如下 :

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

二. 内存监控

物理内存使用率

对于内存,我们一般会关注内存的使用率,但node-exporter并不直接进行计算,我们需要根据node-exporet返回的内存指标自己写计算公式 。

需要用到的内存指标有下列几个:

node_memory_MemTotal_bytes    #总内存大小
node_memory_MemFree_bytes     #空闲内存大小
node_memory_Buffers_bytes     #缓冲缓存大小
node_memory_Cached_bytes      #页面缓存大小

计算的公式为:(总内存  -(空闲内存 + 缓冲缓存 + 页面缓存))/ 总内存 * 100

(node_memory_MemTotal_bytes - (node_memory_MemFree_bytes + node_memory_Buffers_bytes+node_memory_Cached_bytes ))/node_memory_MemTotal_bytes * 100

swap内存使用率

Swap为交换内存分区,它使用磁盘上的部分空间来充当服务器内存,当系统物理内存吃紧时,Linux 会将内存中不常访问的数据保存到 swap 上,这样系统就有更多的物理内存为各个进程服务。而当系统需要访问 swap 上存储的内容时,再将 swap 上的数据加载到内存中,这就是常说的换出和换入。交换空间可以在一定程度上缓解内存不足的情况,但是它需要读写磁盘数据,所以性能不是很高。

swap内存用到的指标如下:

node_memory_SwapTotal_bytes  #swap内存总大小
node_memory_SwapFree_bytes   #swap空闲内存大小

计算的公式如下:

(node_memory_SwapTotal_bytes - node_memory_SwapFree_bytes)/node_memory_SwapTotal_bytes * 100

三. 磁盘监控

分区使用率

分区使用率的指标可以通过分区空间总容器和分区空闲容量计算出来

node_filesystem_size_bytes  #分区空间总容量
node_filesystem_free_bytes  # 分区空闲容量

由于主机一般会有多个分区 ,需要通过指标的标签mountpoint 进行区分 ,如 获取 / 分区磁盘使用率可使用下列公式

(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"})/node_filesystem_size_bytes{mountpoint="/"} * 100

磁盘吞吐量

node_disk_read_bytes_total  #分区读总字节数
node_disk_written_bytes_total #分区写总字节数

上面两个指标分别对应了分区读写的总字节数,指标为counter类型。前面文章讲过,counter类型会不断的累加,该指标直接使用对于监控没有意义,但可通过下面公式转化为磁盘的每秒读写速率。device代表对应的磁盘分区。

irate(node_disk_read_bytes_total{device="vda"}[5m])
irate(node_disk_written_bytes_total{device="vda"}[5m])

磁盘IOPS

IOPS表示每秒对磁盘的读写次数,它与吞吐量都是衡量磁盘的重要指标。对于IOPS的监控,可通过下面两个指标算得出

node_disk_reads_completed_total  #分区读总次数
node_disk_writes_completed_total  #分区写总次数

计算公式与上面相似,使用我们熟悉的irate或rate函数来处理

irate(node_disk_reads_completed_total{device="vda"}[5m])
irate(node_disk_writes_completed_total{device="vda"}[5m])

四. 网络监控

网卡流量

网卡流量一般分为上传和下载流量,下面两个指标分别为总的字节数,可通过这两个指标计算出来网卡每秒流量

node_network_receive_bytes_total  #下载流量总字节数
node_network_transmit_bytes_total  #上传流量总字节数

计算公式如下,此处排除Loopback 网卡

irate(node_network_receive_bytes_total{device != "lo"}[1m]

五. 可用性监控

除了监控主机的性能参数外,我们还需要关注实例的可用性情况,比如是否关机、exporter是否正常运行等。在exporter返回的指标,有一个up指标,可用来实现这类监控需求。

up{job="node-exporter"}

结语:

主机监控是监控平面中最底层的一类,虽然基础但是非常重要,只有在主机层面稳定了,上层应用才能更好的运行。本文讲解的内容只是主机监控中的基本指标,node-exporter自身还提供不少有用的指标,包括支持textfile的自定义指标。在生产环境中,需要根据实际情况进行调试。

专注于Devops运维相关的技术分享,欢迎关注个人公众号“运维老兵”。

Prometheus监控运维实战十: 主机监控指标相关推荐

  1. 乔安监控云存储_智能运维丨全栈监控,护航云上业务

    自2006年至今,云计算商用领域已经历了十余载的发展.云也从概念普及进入到广泛应用阶段,云服务变成了像水电一样的基础服务,已经是行业共识. 云发展速度快.成长空间大,监控场景复杂 最新Gartner的 ...

  2. 深入探讨运维驱动的可监控性设计

    "外部质量验收驱动技术债务消除"的理念: 技术债务的形成往往是由于赶进度忽略了非功能质量特性而导致的,由于内部质量的不佳(设计或代码质量不高)导致外部质量的低下. 传统IT领域通常 ...

  3. 2021安防视频监控运维市场回顾和展望

    2021安防视频监控运维市场回顾和展望 --专访弘度科技产品总监李焕佳 摘自<中国安防>2021.12期 随着国家"十四五"规划指出要加快数字化发展.建设数字中国等众多 ...

  4. 大数据运维 | 集群_监控_CDH_Docker_K8S_两项目_云服务器

    说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课程,主要是实战强.含金量高.专注度高,有6个专题+2个大型项目+腾 ...

  5. 运维服务器手段(监控宝,Nagios,百度通告平台)

    站在"巨人"的肩膀上运维 现实问题 之前在论坛看到一个运维工程师的帖子,内容如下: "现在的一个IT工作者最头疼的就是加班,秃顶的是IT工作者最多.单身的是IT工作者最多 ...

  6. 中国安防服务运营探讨:视频监控运维服务发展趋势

    - 本文转载自<中国安防>2022.3期 - 一.近几年视频监控运维服务由上而下受重视 视频监控系统作为一种防范能力较强的综合系统,以其直观.准确.及时呈现设防区域现场情况.信息设备状态, ...

  7. 电厂运维的cis数据_基于IEC标准的变电站监控运维数据建模的研究

    基于 IEC 标准的变电站监控运维数据建模的研究 李响 1 ,陈浩敏 2 ,陈波 2 ,习伟 2 ,郑小华 3 [摘 要] 摘要:提出了一种基于 IEC 61970 标准的变电站监控运维数据的建模 方 ...

  8. 《监控运维实践:原则与策略》读书笔记

    原文地址:https://www.lujun9972.win/blog/2022/03/17/<监控运维实践:原则与策略>读书笔记/index.html 目录 书本信息 监控实施的原则 反 ...

  9. 《Splunk智能运维实战》——3.6 制作每一主机不同请求方法数量的图表

    本节书摘来自华章计算机<Splunk智能运维实战>一书中的第3章,第3.6节,作者 [美]乔史·戴昆(Josh Diakun),保罗R.约翰逊(Paul R. Johnson),德莱克·默 ...

最新文章

  1. pytorch 同步gpu
  2. linux 天堂测试软件,[Ubuntu] HTTP Live Streaming 安装测试
  3. pycharm和python区别-python与pycharm有何区别
  4. 查找有权限使用某个T-Code的所有用户列表
  5. ssh 与 telnet 有何不同?_Secure Shell(SSH)介绍
  6. 如何处理错误消息Please install the Linux kernel header files
  7. python将小时数换成分钟_如何在Python中将datetime.timedelta转换为分钟、小时?
  8. 全志A33-USB虚拟网卡的配置与使用
  9. Mac中Python版本随意切换终极指南,简单到爆,什么都不用设置
  10. 8999元起!vivo X Fold折叠屏旗舰今日首销:采用航天级浮翼式铰链
  11. 好家伙!京东数科申请“测谎器”专利
  12. JdbcTemplate简单介绍
  13. Android运行时修改Manifest,Android如何动态修改Manifest文件
  14. MySQL 5.7 自带的四个数据库 介绍
  15. jwt和传统session的区别?
  16. 简单的@Async使用 自定义连接池
  17. MT7621路由器芯片/处理器参数介绍
  18. PHP发币,处理货币价值的PHP库
  19. 什么是数据源?如何配置数据源?
  20. 用Kivy写一个安卓app

热门文章

  1. Bitpay宣布支持BCH付款,助推BCH支付布局
  2. Android渲染--重温硬件加速上
  3. 33 个 2017 年必须了解的 iOS 开源库
  4. 接口自动化测试实践指导(中):接口测试场景有哪些
  5. java ffmpeg添加视频水印
  6. 安卓OneNote登陆和同步问题
  7. 小米电视刷android系统升级,小米盒子跳升安卓8.0系统:针对电视等大屏产品进一步优化...
  8. 开放式多媒体应用平台OMAP5910双核通讯技术
  9. 金融业“营改增”政策解读
  10. uniapp+Echarts微信小程序实现中国地图