这篇文章上次修改于 456 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

需要监控的服务器资源

  • 1、监控cpu使用率
  • 2、监控内存使用情况
  • 3、监控磁盘情况
  • 4、监控网络情况

cpu监控

  • psql如下
(1 - sum(rate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) / sum(rate(node_cpu_seconds_total[1m])) by (instance) ) * 100

说明:

  • 公式: cpu的使用率 = (1 - 空闲时间/总时间) * 100
  • node_cpu_seconds_total{mode="idle"}[1m] 获取1分钟内,cpu的空闲时长
  • sum(rate(node_cpu_seconds_total{mode="idle"}[1m])) 聚合cpu各核的数据
  • by (instance) 按照instance标签做分组
  • sum(rate(node_cpu_seconds_total[1m])) by (instance) 聚合所有状态CPU时间总和,按照instance标签做分组

内存使用率

  • psql如下
(1- (node_memory_Buffers_bytes + node_memory_Cached_bytes + node_memory_MemFree_bytes) / node_memory_MemTotal_bytes) * 100

说明:

  • 公式: 内存使用率 = (1 - 空闲内存总和/总内存)* 100
  • node_memory_Buffers_bytes : 被buffer使用的内存大小
  • node_memory_Cached_bytes : 被cache使用的内存大小
  • node_memory_MemFree_bytes: 剩余内存大小
  • node_memory_MemTotal_bytes: 总内存大小

磁盘监控

磁盘使用率监控

  • psql
(1- node_filesystem_avail_bytes{fstype="ext4"}/node_filesystem_size_bytes{fstype="ext4"}) * 100

说明

  • 公式: 磁盘使用率 = (1 - 可用磁盘大小/总磁盘大小 )* 100
  • node_filesystem_avail_bytes: 可用磁盘空间大小
  • node_filesystem_size_bytes : 总磁盘空间大小

磁盘读写io监控

  • 磁盘每秒读取量: sum by (instance) (irate(node_disk_reads_completed_total[5m]))
  • 磁盘每秒写入量: sum by (instance) (irate(node_disk_writes_completed_total[5m]))
  • 磁盘读写量:sum( (irate(node_disk_reads_completed_total[5m])) + (irate(node_disk_writes_completed_total[5m])) ) by (instance)

网络监控

  • 上传速率: irate(node_network_transmit_bytes_total[1m])
  • 下载速率: irate(node_network_receive_bytes_total[1m])