容量规划自动化脚本核心是“采集—分析—判断—通知”闭环,关键在指标精准、阈值合理、告警无误漏、动作可追溯;需监控CPU(5分钟均值+1小时峰值)、内存(已用/总内存)、磁盘(分分区+inodes)、网络连接数、关键进程;推荐shell+cron轻量实现,分层阈值(黄/橙/红)对应邮件、清理、自动处置,告警必含时间、主机、指标对比、趋势、操作建议,并强化脚本健壮性与自监控。

容量规划中编写系统资源监控与容量预警的自动化脚本,核心是“采集—分析—判断—通知”闭环。重点不在写多复杂的代码,而在于指标选得准、阈值设得合理、告警不误不漏、动作可追溯。
明确要监控的关键资源指标
不同系统侧重点不同,但通用基础项包括:
- CPU 使用率(需区分平均值与峰值,建议用 5 分钟均值 + 近 1 小时最大值)
- 内存使用量(重点关注已用内存 / 总内存,避免只看 free 内存)
- 磁盘使用率(根分区、日志分区、数据目录单独监控,注意 inodes 是否耗尽)
- 网络连接数(如 ESTABLISHED 状态数,防连接泄漏)
- 关键进程存活状态(如 nginx、mysql、java 应用进程是否存在)
用轻量工具实现稳定采集与本地判断
推荐用 shell + cron 组合,避免过度依赖外部服务。例如:
- 用 df -h 提取磁盘使用率,配合 awk 解析指定挂载点
- 用 free -m 计算内存使用百分比(注意:可用内存 = total - (used - buffers - cached))
- 用 ps aux --sort=-%cpu | head -n 2 快速定位 CPU 占用异常进程
- 所有采集结果统一写入带时间戳的本地日志(如 /var/log/capacity/monitor_$(date +%Y%m%d).log),便于回溯
设置分层阈值与差异化响应逻辑
单一阈值容易误报,建议按风险等级设计:
- 预警级(黄色):磁盘 >80%、内存 >85%、CPU 持续 >75% 超过 10 分钟 → 发邮件给值班人,不触发自动操作
- 干预级(橙色):磁盘 >90%、内存 >92%、连接数 > 本机 limit -100 → 清理临时文件、重启日志服务、发送企业微信+短信双通道告警
- 熔断级(红色):磁盘 >95% 或关键进程消失 → 自动执行预设应急脚本(如归档旧日志、扩容临时卷),同时调用运维平台 API 创建工单
告警必须带上下文,拒绝“裸告警”
每次通知至少包含 5 个要素:
- 发生时间(精确到秒)
- 主机名 + IP(区分虚拟机/容器/物理机)
- 具体指标值与阈值对比(如 “/data 使用率 93.2%(阈值 90%)”)
- 最近 3 次该指标趋势(用 tail -3 读取历史记录)
- 建议操作(如 “请检查 /data/app/logs 下 7 天前的 .gz 日志”)
不复杂但容易忽略:脚本开头加 set -e 和 umask 022;所有路径用绝对路径;每季度用真实负载压测一次阈值合理性;把脚本本身也纳入监控(比如检查其最近一次成功运行时间是否超 6 分钟)。










