服务器磁盘快满了,监控为什么没提前报警?
很多企业不是没有监控。服务器上装了监控软件,磁盘使用率、CPU、内存都有数据,告警规则也配了。但真到硬盘写满、数据库写不进、业务停摆的时候,往往不是“监控坏了”,而是告警从头到尾就没真正起作用:阈值设得太晚、监控对象不对、通知没人看。最容易误解的地方,是把“监控在运行”当成“告警一定有效”。企业真正要确认的,是磁盘写满之前,监控能不能及时、准确地找到责任人,并留出足够的处理时间。
告警设得太满,报警本身就来不及
常见的误区是把磁盘告警阈值设在 95% 甚至 98%。配置上没有问题,但等使用率涨到这一步,往往只剩几个小时,甚至更短。日志一涨、备份任务一跑,磁盘可能在一夜间被写满,第二天早上业务已经异常,告警反而成了“事后通知”。
磁盘告警的意义不是告诉你“已经满了”,而是留出处理时间。合理的做法是按数据增长速度定提前量:比如业务盘每周增长 2%,那就不能到 95% 才提醒,而要在剩余空间还能撑一两周、扩容或清理来得及的时候告警。微软的文档在介绍 Windows 服务器磁盘空间不足警报时,就是用性能计数器监控剩余空间低于某个值来触发警报——关键在于这个“值”要按你的业务留出余地,而不是所有机器统一一个数。
更稳的做法是分两级告警:第一级是“预警”,剩余空间还能支撑几天到两周,通知管理员安排扩容或清理;第二级是“紧急”,剩余空间只剩几小时,需要立即处理。两级之间留出时间差,告警才真正有用。
只盯根分区,业务数据盘反而没人看
很多服务器默认只监控系统盘,也就是 C 盘或根分区。可企业业务数据往往不在系统盘:数据库放在单独的数据盘,应用日志在另一个目录,备份文件又占了独立存储。根分区还有 40% 剩余,业务数据盘却已经写满,监控照样不响。
这种情况在虚拟化环境里更常见。一台物理服务器上跑着多台虚拟机,每台虚拟机的系统盘和数据盘各有各的使用率,只看宿主机或只看默认分区,很容易漏掉真正紧张的磁盘。云服务器也一样,系统盘和数据盘是分开的,只盯系统盘等于漏掉了最可能出问题的部分。
Zabbix 这类监控系统支持低级别发现,会自动扫描服务器上的所有文件系统,并为每个文件系统分别创建监控项和告警规则;某个文件系统消失时,对应的监控项也会自动清理。这意味着“按目录和磁盘分别监控”不是做不到,而是很多企业一开始就没启用,或者只保留默认的根分区规则。检查时应当把数据库目录、日志目录、备份目录和临时目录都纳入独立监控。
日志和临时文件,最容易悄悄把磁盘填满
磁盘不是一次被写满的,更多时候是被“不知不觉”填满的。程序日志不断追加、数据库事务日志不清理、上传的临时文件残留、备份文件越积越多,每一项单看都不大,合起来却能吞掉整块磁盘。
这类问题靠“看使用率”能发现,但更稳妥的是给日志和临时目录单独设监控和清理策略:日志按大小或天数轮转,超过保留期自动归档删除;备份目录按版本和份数控制,而不是无限累积;临时目录定期检查残留文件。单独监控这些目录还有一个好处:告警时能直接定位是哪个目录在涨,不用再去翻服务器排查。
告警发出去没人看,等于没有告警
还有一种更常见的情况:告警其实触发了,但只发到一个长期没人看的邮箱,或者被当成“常规噪音”静默处理。值班人员不知道、负责人没收到、半夜的告警没有交接,第二天照样是业务停了才发现。
告警要真正有效,至少要有三件事:一是通知到具体责任人,而不是一个公共邮箱;二是告警分级,磁盘从“预警”到“紧急”有不同处理时限;三是确认闭环,谁收到、谁处理、处理结果如何,都要有记录。只把告警发出去,不确认有没有人响应,就不能算完成配置。
建议企业先完成 4 项检查
- 按业务目录拆监控对象。把系统盘、数据库盘、日志目录、备份目录分别纳入监控,不只盯根分区。
- 按增长速度定阈值。根据每周用量增长和扩容周期留提前量,区分“预警”和“紧急”两级告警。
- 给日志和备份定清理策略。日志轮转、备份按份数保留、临时目录定期清理,从源头减少磁盘被填满的可能。
- 把告警通知到人并留闭环。确认责任人能收到、告警有分级、处理有记录,不把“发了邮件”当成“完成了告警”。
我的看法是,磁盘监控的价值不在于“多一条规则”,而在于硬盘写满之前,企业能提前知道、提前处理。先把监控对象、阈值和通知闭环补齐,比追求更多更复杂的监控指标更实用。磁盘告警不是给 IT 部门看的摆设,而是给企业留出反应时间的一道保险。
如需梳理企业服务器、存储、监控与备份现状,可以联系煜企智能,从磁盘容量、告警阈值和备份有效性开始确定检查优先级。
资料来源
- Zabbix,Low-level discovery(低级别发现)官方文档:<https://www.zabbix.com/documentation/current/en/manual/discovery/low_level_discovery>
- Microsoft Learn,Configure a Low Disk Space Alert(配置磁盘空间不足警报):<https://learn.microsoft.com/zh-cn/troubleshoot/windows-server/backup-and-storage/configure-low-disk-space-alert-performance-logs>


