Prometheus 企业级实际使用
- 一、企业CPU监控真实案例
- 1.节点CPU每分钟使用率监控
- 2.节点CPU每分钟iowait%使用率监控
- 3.节点CPU每分钟user%使用率监控
- 二、企业内存监控真实案例
- centos 6算法:
- centos 7算法:
- 1、节点内存使用率
- 三、企业硬盘监控
- 1、统计磁盘 根分区利用率
- 2、统计磁盘 1分钟每秒 读写 I/O ,Mb/S
- 3、判断硬盘剩余空间百分比
- predict_linear() 函数
- 四、网络传输
- 1、网络传输每秒钟速率
- 2、网络接收总字节数
- 五、文件描述符
- 文件描述符使用率监控
一、企业CPU监控真实案例
用户态的CPU 使用率,是跟应用程序(或者说软件) 的运行密切相关
当软件启动大量进程并行处理任务时,当进程之间频繁上下业务切换时,对用户态的CPU 消耗最大。
IOWAIT CPU等待时间,当服务器硬盘 IO占用过大时,CPU会等待IO的返回,进入 interuptable 类型的CPU等待时间,所以对于 IOWAT CPU的监控是很有必要的。
报警阈值设置:设置成80.90不符合实际生产环境
最好CPU综合利用率在 95左右,最为合适。
1.节点CPU每分钟使用率监控
采集方式:Node_exporter
公式:(1- ((sum(increase(node_cpu_seconds_total{mode=“idle”}[1m]))by(instance)) / (sum(increase(node_cpu_seconds_total[1m]))by(instance)))) * 100
2.节点CPU每分钟iowait%使用率监控
采集方式:Node_exporter
公式:(sum(increase(node_cpu_seconds_total{mode=“iowait”}[1m])) by (instance)) / (sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100
3.节点CPU每分钟user%使用率监控
采集方式:Node_exporter
公式:(sum(increase(node_cpu_seconds_total{mode=“user”}[1m])) by (instance)) / (sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100
二、企业内存监控真实案例
free -m 6 / 7 版本的内存计算方式
centos 6算法:
可用内存 = free+buffers+cached
使用率 = 实际可用内存 / 总内存(total)
centos 7算法:
可用内存 = available
使用率 = 实际可用内存 / 总内存
1、节点内存使用率
采集方式:Node_exporter
公式centos7:(1- node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100
公式2centos6:(1- ((node_memory_Buffers_bytes + node_memory_Cached_bytes + node_memory_MemFree_bytes) / node_memory_MemTotal_bytes)) * 100
三、企业硬盘监控
文件系统空闲空间(以字节为单位):node_filesystem_free_bytes{fstype=“xfs”}
文件系统大小(单位为字节)。:node_filesystem_size_bytes{fstype=“xfs”}
空闲利用率:空闲空间 / 总空间
非空闲利用率:(1- (空闲利用率 / 总空间) * 100
成功读取的字节数。:node_disk_read_bytes_total{device=“sda”}
成功写入的总字节数。:node_disk_written_bytes_total{device=“sda”}
1、统计磁盘 根分区利用率
采集方式:Node_exporter
公式:(1- (sum(node_filesystem_free_bytes{fstype=“xfs”})by(instance) / sum(node_filesystem_size_bytes{fstype=“xfs”})by(instance))) * 100
2、统计磁盘 1分钟每秒 读写 I/O ,Mb/S
采集方式:Node_exporter
公式:( rate(node_disk_read_bytes_total{device=“sda”}[1m]) + rate(node_disk_written_bytes_total{device=“sda”}[1m])) /1024 /1024
3、判断硬盘剩余空间百分比
采集方式:Node_exporter
公式:( (sum(node_filesystem_free_bytes{fstype=“xfs”})by(instance)) / (sum(node_filesystem_size_bytes{fstype=“xfs”}) by(instance)) ) * 100
predict_linear() 函数
预测硬盘百分比报警使用 predict_linear() 函数。
predict_linear() 可以起到对曲线变化速率的计算,以及在一段时间内 加速度的预测。
它可以实时监测 硬盘使用率曲线的 变化情况,假如在一个很小的时间段中,发现硬盘使用率急速下降(跟之前平缓期相比较)。
会对这种下降的速度 进行一个未来一段时间的预测。比如发现 未来5分钟内,按照这个下降速度,硬盘利用率会到达100%。
那么在当前硬盘还剩余 20% 的时候就会报警。
四、网络传输
node_network_transmit_bytes_total{device=“ens33”} 网络设备传输总字节数
node_network_receive_bytes_total{device=“ens33”} 网络设备接收总字节
1、网络传输每秒钟速率
公式:rate(node_network_transmit_bytes_total{device=“ens33”}[1m])
2、网络接收总字节数
公式:node_network_receive_bytes_total{device=“ens33”}
五、文件描述符
文件描述符 是 linux/unix 操作系统中特有的概念。相当于 windows系统中的句柄。
linux 系统中,每当进程打开一个文件时,其系统就会为其分配一个唯一的文件描述符,用来标识这个文件。
标准C中每个进程默认打开的有三个文件,标准输入,标准输出,标准错误,分别用一个FILE结构的指针来表示,即 stdin,stout,sterr,这三个结构分别对应着三个文件描述符 0,1,2
文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和 socket。第一个打开的文件是 0,第二个是 1。依次类推,linux操作系统通常对每个进程能打开的文件数都一个限制,默认最大打开的文件描述符是 1024。
修改文件描述符:
软限制文件数:soft nofile 655360 >> /etc/security/limits.conf
硬限制文件数:hard nofile 655360 >> /etc/security/limits.conf
软限制用户可用进程:soft nproc 2048 >> /etc/security/limits.conf
硬限制用户可用进程:hard nproc 4096 >> /etc/security/limits.conf
文件描述符使用率监控
采集方式:Node_exporter
公式:(node_filefd_allocated / node_filefd_maximum ) * 100