运维工程师监控工作之服务器监控指标

429 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

服务器监控即物理机或者虚拟机监控,一般分为带内监控和带外监控,带内监控指的是通过带内网络,在物理机或者虚拟机OS里面安装Agent的方式,获取OS的CPU、内存、磁盘、IO、网络、进程等监控指标。

带外监控指的是通过带外网络,IDC监控,通常通过IPMI、SNMP等协议获取硬件健康状态。IPMI可监控硬件的物理参数,比如系统温度、风扇速度、电源电压等。IPMI 的一个主要特点是,它的功能独立于服务器的CPU和操作系统。BMC可以开启针对硬件设备的SNMP的支持,通过SNMP Trap但是目前大部门公司应用都有上公有云的需求,因此SNMP Trap已经是存量需求了。

带内监控目前流行的Agent有Grafana-agent、Node-exporter等。

操作系统的各类指标采集,基本都在Linux系统的/proc目录,CPU相关的指标最重要的是会用率,大型互联网公司为了应对突发流量,CPU平均使用率一般在30%左右,如果CPU超过60%,就较为危险了。

内存相关的指标,Linux、Windows等都是不一样的,内存总量、使用量这类指标所有平台都有,其他有些指标比如swap、huge_page相关指标,其他平台是没有的。内存最重要指标是可用率,这个值如果小于30%可以发低级别告警了,需要联系基础资源部门进行扩容。

硬盘相关的指标,主要关注空间使用率和inode使用率,不建议对所有硬盘采取一刀切的策略,可以考虑大空间盘和小空间盘分别对应不同告警规则,比如设置磁盘空间大于85%且总量小于200G作为一个有效监控指标。

硬盘IO相关的指标,主要关注读写延迟。

网络相关的指标,一般关注网卡流量、丢包率等,如果长期每秒丢失十几个包,就要排查硬件问题了。 进程相关的指标,一般是进程是否存活,进程占用的CPU、内存资源情况,还有进程总量;对于Linux系统来说,如果某个批处理脚本或者Crontab任务写的有问题,比如每分钟fork一个子进程,但是任务执行完不退出,时间长了随着进程堆积就会压垮机器。还有个比较坑的情况,Linux默认给进程分配的fd(文件描述符)是1024,很多人通过ulimit调整以后发现无效,主要原因是进程在ulimit调整之前就启动了。

其他还有oom_kill情况,NTP偏移量,通常不能大于1秒;自定义的监控脚本是否成功执行,执行时间长短等。 关于服务器性能监控,通常我们在生产环境关注上述指标基本够用了,欢迎同学们批评指正!