0

0

Linux 系统异常的长期监控思路

舞夢輝影

舞夢輝影

发布时间:2026-02-05 14:44:02

|

556人浏览过

|

来源于php中文网

原创

不能只靠 top 或 df 临时查问题,因异常有滞后性,单次命令抓不到趋势;长期监控需 sar 持续采集、基线对比与上下文分析,并确保告警链路可靠。

linux 系统异常的长期监控思路

为什么不能只靠 topdf 临时查问题

因为异常往往有滞后性:磁盘缓慢填满、内存泄漏累积、I/O 队列悄悄变长,单次命令抓不到趋势。等 df -h 报出 95% 时,可能日志已轮转丢失、服务早开始超时。长期监控的核心不是“看到”,而是“比对”和“预警”——需要带时间维度的数据沉淀与基线对比。

sar 是最稳的长期数据采集底座

sar(来自 sysstat)默认每10分钟采一次系统快照,数据写入二进制文件(如 /var/log/sysstat/sa05),轻量、可靠、不依赖网络或外部服务。它不像 Prometheus 需要部署全套,也不像自写脚本容易因权限/路径/crontab 错误而静默失效。

  • 启用前必须运行:sudo systemctl enable sysstat && sudo systemctl start sysstat
  • 关键采集项建议:sar -u 1 3(CPU)、sar -r 1 3(内存)、sar -d 1 3(磁盘 I/O)、sar -n DEV 1 3(网卡流量)
  • 查历史数据别用错日期:日志文件名是 saXX,XX 是当月日数(如 2 月 5 日对应 sa05),不是星期几
  • 注意:默认配置可能不采集磁盘详细指标(-x 扩展参数),需编辑 /etc/sysconfig/sysstat(RHEL)或 /etc/default/sysstat(Debian)开启 DISKSTATS=true

异常判定不能只看阈值,得结合上下文

比如 /home 分区标称告警阈值为 50MB,但实际只有 4MB 可用空间——这说明配置错误本身已是异常源头,而非磁盘真满了。类似地,%util 持续 90% 不一定代表磁盘瓶颈,要看 await(平均等待毫秒)是否同步飙升;load average 高,得配合 ps aux --sort -pcpu 确认是否单个进程拖垮,还是多核并行负载正常。

塔猫ChatPPT
塔猫ChatPPT

塔猫官网提供AI一键生成 PPT的智能工具,帮助您快速制作出专业的PPT。塔猫ChatPPT让您的PPT制作更加简单高效。

下载
  • 文件系统监控脚本里,务必先校验 $EXCEPTIONS 中的阈值是否合理(如用 df -B1 /home | awk 'NR==2 {print $4}' 获取真实可用字节数)
  • 远程批量监控时,避免所有机器共用同一份阈值:数据库服务器和日志归档机的磁盘健康标准应不同
  • 健康状态标记(如 “ALERT”/“SAFE”)必须基于计算结果,而非硬编码字符串;否则修改逻辑时极易漏改输出分支

通知链路最容易断在“最后一百米”

脚本跑通、数据存下、阈值触发——但没人收到告警,等于没监控。常见断点:邮件被当垃圾、sendmail 未安装、SSH 自动登录密钥过期导致远程采集失败、display_output 函数里调用 mail 命令时未加 -s 主题参数导致发送静默失败。

  • 测试通知必须走完整路径:从触发条件 → 生成告警文本 → 调用 mailcurl 推送 → 确认手机/邮箱收到
  • 避免单点依赖:邮件发不出时,至少保留本地告警日志(echo "$(date): ALERT on /dev/sda1" >> /var/log/diskalert.log
  • 对关键路径(如 SSH 登录远程主机),在脚本开头加 ssh -o ConnectTimeout=5 -o BatchMode=yes user@host exit &>/dev/null || { echo "SSH fail"; exit 1; } 主动探活
长期监控真正的复杂点不在采集,而在让数据持续可信:配置漂移、权限变更、存储空间耗尽、日志轮转策略冲突……这些都不会报错,只会让监控变成“看起来在运行”的幻觉。定期用 ls -lt /var/log/sysstat/grep -r "ALERT" /var/log/ 反向验证,比写新功能更重要。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

187

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

4

2026.02.03

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

238

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

560

2024.03.01

sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

396

2023.09.04

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

445

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

178

2023.10.30

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

381

2023.08.03

java中fail含义
java中fail含义

本专题整合了java中fail的含义、作用相关内容,阅读专题下面的文章了解更多详细内容。

0

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.5万人学习

Git 教程
Git 教程

共21课时 | 3.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号