服務器磁盤快滿了,監控為什么沒提前報警?
很多企業不是沒有監控。服務器上裝了監控軟件,磁盤使用率、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>


