关键在于打通“采集→判断→响应”闭环:Windows用性能计数器+任务计划+脚本实现分钟级告警;Linux用Shell+cron+rsyslog/auditd实现轻量监控;需统一时间同步、日志轮转与权限隔离。
要让系统能实时跟踪CPU、内存、磁盘、网络等资源的异常波动,并自动告警,关键不是堆工具,而是打通“采集→判断→响应”闭环。Windows 和 Linux 路径不同,但逻辑一致:用原生能力做轻量、稳定、可落地的监控。
Windows 系统资源告警靠性能计数器 + 任务计划 + 脚本
不用装额外软件,就能实现分钟级响应:
LogicalDisk% Free Space(C:盘),阈值设为 <10%,触发后执行发邮件脚本 Processor% Processor Time(_Total),持续 3 分钟 >85%,触发 tasklist /svc > C:logscpu_high.csv 并发告警 MemoryAvailable MBytes,低于 600 MB 时运行清理命令(如 echo 3 > /proc/sys/vm/drop_caches 类似逻辑需 PowerShell 封装) .cmd 调用 SmtpMailSender.exe:配置好邮箱应用密码后,一行命令即可发中文邮件,注意保存为 ANSI 编码,且任务计划中「起始于」必须填脚本所在完整路径 Linux 系统资源告警靠脚本 + cron + rsyslog 或 auditd 补位
不依赖 Prometheus 也能跑起来:
df -h | awk '$5 > 90 {print $1, $5}' 抓超限磁盘 free -m | awk 'NR==2{if($7/($2+0) < 0.15) print "low memory"}' 判断可用内存低于15% top -bn1 | grep '%Cpu' | awk '{print $2}' | cut -d'%' -f1 获取瞬时 CPU 使用率 logger -t resource_alert "disk full on /dev/sda1" 写入系统日志 rsyslog 规则(如 /etc/rsyslog.d/99-alert.conf)匹配 resource_alert 关键词,转发到指定邮箱或写入告警文件 auditd 监控 execve 系统调用,配合 -F auid!=4294967295 过滤非登录用户行为 统一提醒:别漏掉三个隐性瓶颈
chrony 对齐时间,否则告警延迟或日志错乱 /etc/audit/auditd.conf 中设 max_log_file = 100 和 num_logs = 10,防审计日志撑爆根分区 /proc 和执行 df/free,禁止赋予 root 全权限 告警不是越多越好,而是让真正需要人工介入的信号浮出来。一次磁盘满、连续5次CPU过载、root用户在凌晨2点执行chmod 777——这些才该推到手机上。