服务器资源监控
本章针对服务器资源展开两部分的监控方向,以Kubernetes方式部署;
- 服务器基础资源(node-exporter),包含服务器的CPU、Memory、Disk、Socket、Network以及Disk IO等;
- 网络资源 (fping-exporter),包含服务器网络丢包率、平均延迟;
- 进程资源(node-process-exporter),包含进程的CPU、Memory、Open files;
监控范围
- 服务器资源使用率
100 - (avg(irate(node_cpu_seconds_total{mode="idle",}[5m])) by (instance,service_id,ecs_cname) * 100)
:计算 CPU 使用率,表示在过去 5 分钟内,CPU 非空闲时间占总时间的百分比。监控 CPU 使用情况,识别高负载情况,帮助进行容量规划和性能调优。100 - (node_memory_MemAvailable_bytes{} / node_memory_MemTotal_bytes{} * 100)
:计算内存使用率,表示可用内存占总内存的百分比。监控系统内存使用,帮助识别内存不足问题和优化内存配置。max((node_filesystem_size_bytes{fstype=~"ext.?|xfs",}-node_filesystem_free_bytes{fstype=~"ext.?|xfs",}) *100/(node_filesystem_avail_bytes {fstype=~"ext.?|xfs",}+(node_filesystem_size_bytes{fstype=~"ext.?|xfs",}-node_filesystem_free_bytes{fstype=~"ext.?|xfs",})))by(ecs_cname,instance,service_id)
:计算文件系统的使用率,支持 ext 文件系统和 xfs 文件系统,表示已用空间占总空间的百分比。监控磁盘使用情况,帮助避免磁盘满的问题,确保文件系统正常运行。sum(label_replace(max(node_sockstat_TCP_alloc{}) by (instance),"host_ip","$1","instance","(.*):.*"))by(instance)
:计算分配的 TCP 连接数。监控系统的 TCP 连接使用情况,识别是否有过多的连接导致性能问题。sum(label_replace(max(irate(node_network_receive_bytes_total{}[1m])) by (instance),"host_ip","$1","instance","(.*):.*"))by(instance)
:计算每秒接收的网络字节数。监控网络流量输入,帮助识别网络瓶颈和流量高峰。sum(label_replace(max(irate(node_network_transmit_bytes_total{}[1