首页 > 其他分享 >Prometheus监控运维实战十: 主机监控指标

Prometheus监控运维实战十: 主机监控指标

时间:2023-08-29 15:46:13浏览次数:39  
标签:node 运维 bytes 指标 Prometheus 内存 监控 memory total

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

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

一. CPU监控

CPU负载

node_load1node_load5node_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的自定义指标。在生产环境中,需要根据实际情况进行调试。

标签:node,运维,bytes,指标,Prometheus,内存,监控,memory,total
From: https://www.cnblogs.com/quqibinggan/p/17664966.html

相关文章

  • Prometheus监控实战系列七:任务与实例
    一. 功能概述 任务与实例,是Prometheus监控中经常会提到的词汇。在其术语中,每一个提供样本数据的端点称为一个实例(instance),它可以是各种exporter,如node-exporter、mysql-exporter,也可以是你自己开发的一个服务。只要提供符合prometheus要求的数据格式,并允许通过HTTP请求获取......
  • 安防监控/磁盘阵列存储/视频汇聚平台EasyCVR调用rtsp地址返回的IP不正确是什么原因?
    安防监控/云存储/磁盘阵列存储/视频汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。有用户反馈,通......
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?
    开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监控汇聚平台EasyCVR支持多种播放......
  • Prometheus监控实战系列五:PromQL语法(上篇)
    PromQL是Prometheus内置的数据查询DSL(DomainSpecificLanguage)语言,其提供对时间序列丰富的查询功能,聚合以及逻辑运算能力的支持。当前,PromQL被广泛应用在Prometheus的日常使用中,包括数据查询、可视化、告警处理等,可以说,掌握PromQL是熟练使用prometheus的必备条件。 本文将通......
  • Prometheus监控实战系列六:PromQL语法(下篇)
    一.操作符在PromQL的查询中,还可以通过表达式操作符,进行更加复杂的结果查询,常见的操作有下列几种。数学运算符数据运算符使用的加、减、乘、除等方式,对样本值进行计算,并返回计算后的结果。例如,通过process_virtual_memory_bytes获取到的内存值单位为byte,我们希望转换为GB为单......
  • Prometheus监控实战系列一: 产品介绍
    一.概述 Promehteus是一款近年来非常火热的容器监控系统,它使用go语言开发,设计思路来源于Google的Borgmom(一个监控容器平台的系统)。 产品由前谷歌SRE MattT.Proudd发起开发,并在其加入SoundCloud公司后,与另一位工程师JuliusVolz合伙推出,将其开源发布。 2016年,由Googl......
  • Prometheus监控实战系列二: 安装部署
    Prometheus支持多种操作系统,例如Linux、Windows和MaxOSX等。在产品官网上提供了独立的二进制文件进行下载,可下载对应的tar包并在相应系统的服务器上进行安装部署。 当然,做为与容器有着紧密联系的监控系统,Promethesu也可以很方便的通过docker、kubernetes等容器平台进行部署。......
  • Prometheus监控实战系列三:配置介绍
    Prometheus使用名为prometheus.yml的配置文件进行设置,通过在启动时指定相关的文件,对配置内容进行加载。该配置文件分为四个模块:global(全局配置)、alerting(告警配置)、rule_files(规则配置)、scrape_configs(目标拉取配置),本文将分别对其进行讲解介绍。一.global 用于定义promethe......
  • Prometheus监控实战系列四:数据格式
    在Prometheus监控中,对于采集到服务端的指标,称为metrics数据。metrics指标为时间序列数据,它们按相同的时序,以时间维度来存储连续数据的集合。metrics有自定义的一套数据格式,不管对于日常运维管理或者监控开发来说,了解并对其熟练掌握都是非常必要的,本文将对此进行详细介绍。 一.......
  • 视频汇聚云平台EasyCVR视频监控管理平台进行SDN转推的操作步骤
    视频汇聚/视频云存储/集中存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、云存储、智能分析等,视频智能分析平台EasyCVR融合性强、开放度高、部署轻快,在智慧工地、智慧园区、智慧......