如何编写Linux服务器硬件监控脚本?,实时告警怎么做?

写一个Linux服务器硬件监控脚本,核心就是三件事:采集硬件状态、对比阈值、触发告警,这个闭环想通了,剩下全是在填坑误报怎么防、通知怎么发、脚本自己别挂掉。

Linux服务器硬件监控脚本怎么写才能避免假死和误报?

很多新手写完监控脚本,跑了两天就开始怀疑人生:凌晨三点CPU飙到90%疯狂告警,结果一看是跑批任务;硬盘温度偶尔跳一下,邮件轰炸了整个运维群,说白了,脚本的骨架是采集和告警,灵魂是防误报机制。

自己实现服务器监控
加载中
自己实现服务器监控

先搭好最常用的硬件指标采集框架

一个生产级的监控脚本,至少要覆盖这几类硬件状态:

  • CPU负载和核心温度:用mpstat看用户态和系统态占用率,用sensors读取CPU核心温度
  • 内存使用情况:free -m拿到总内存、已用、可用和缓存数据,重点关注可用内存比例
  • 磁盘空间和IO负载:df -h看分区使用率,iostat看读写延迟和队列长度
  • 硬盘健康状态(SMART信息):smartctl -a /dev/sda查硬盘已用寿命、重映射扇区数、通电时长
  • 风扇转速和主板温度:通过IPMI/ipmitool获取,或者依赖lm-sensors直接读

举个例子,我这边的脚本在采集磁盘SMART信息时,用smartctl -H先看整体健康状态,如果返回”PASSED”就不管,一旦出现”FAILED”立刻触发严重告警,比单纯盯着磁盘空间要提前预警很多天。

采集频率设置在什么范围才合理?

设置采集间隔时,先想清楚一个场景:你的业务夜里会有批量任务吗?会有瞬间的编译高峰吗?

  • 常规情况60秒一轮就够了,CPU、内存、磁盘这些指标变化没那么快
  • 核心数据库或交易系统,可以缩短到10到15秒一轮,代价是脚本进程占用的CPU会稍微高一点
  • 硬盘SMART检测不要每轮都跑,smartctl读取底层数据有一定开销,建议每10分钟或1小时跑一次

比较推荐的做法是把采集逻辑拆成两个循环:一个高频循环跑CPU/内存/磁盘空间,一个低频循环跑SMART和温度,这样脚本自己不会成为新的性能负担。

硬件监控脚本如何实现实时告警?三种通知渠道实测体验

如何编写Linux服务器硬件监控脚本?,实时告警怎么做?

脚本采集到的数据,得用一种能真正吵醒人的方式送出去,经历了大半夜被误报吵醒,又经历了硬盘快挂了邮件没人看之后,我把告警渠道分成了三个梯队,各有用武之地。

邮件通知:传统但适合固定工位场景

邮件适合内网环境,适合有IT值班人员的公司,你可以用系统自带的mail命令,或者sendmail、msmtp发给运维邮箱,优点是没有额外成本,缺点是邮件太容易被淹没,紧急程度不够醒目。

钉钉/企业微信机器人:中小团队的主流方案

现在不少中小团队都在用钉钉或企业微信的群机器人Webhook,脚本里用curl向Webhook地址推送JSON消息,十几行就能搞定,正文里带上主机名、IP、告警指标、当前数值和阈值,群里的值班同事一眼就能看到。

这类机器人还支持@指定成员,可以把告警直接推给对应负责人,相比邮件,实时性强了不止一点,而且免费。

短信网关:机房无外网环境的兜底方案

如果你管理的服务器在隔离机房,没有外网出口,短信是最稳妥的告警渠道,通常是脚本通过串口或者4G模组调用服务商的短信API,一条短信几分钱到一毛多,硬件监控一年短信费用也就几十块,换来的是哪怕机房网络断了也能收到告警。

为了直观对比,我整理了一张表:

告警渠道 实时性 部署成本 适合场景
邮件 低,容易延迟 几乎为零 有固定IT工位、内网环境
钉钉/企业微信机器人 高,秒级到达 零成本 中小团队日常运维值班
短信网关 最高,不依赖网络 按条计费,每年几十元 隔离机房、无人值守IDC

服务器硬件告警阈值设置多少合适?按场景调参才靠谱

关于服务器硬件告警阈值设置多少合适这个问题,行业里没有一套放之四海皆准的数字,因为

如何编写Linux服务器硬件监控脚本?,实时告警怎么做?

做数据库的机器和做Web静态资源的机器,压力模型完全不一样,抄别人的配置往往容易翻车,我自己调参时,是按照这个思路来的:

CPU和内存的阈值,先看业务角色

  • 数据库服务器:CPU持续超过70%,持续5分钟以上就发警告,数据库的查询高峰有周期性,短时冲高可以不用管,但长时间下不来就得查慢查询或锁等待了
  • Web应用服务器:多数情况下CPU在50%以下算健康,超过80%就该告警,注意区分用户态占用和系统态占用,如果是sy占比太高,可能是频繁切换进程或内核异常
  • 内存方面,生产环境建议可用内存低于20%时警告,需要留意的是,Linux的buff/cache不能简单算作不可用,建议用available字段判断

磁盘和温度阈值,宁可保守不要激进

磁盘的使用率比较对称。根分区或数据盘超过85%告警,超过90%升级为严重告警,这个数字在运维圈算是共识,因为一旦写满,不光业务挂掉,连syslog和监控脚本本身都可能跑不起来。

温度方面,大多数x86服务器的安全上限是75°C左右,建议CPU核心温度超过65°C就触发警告,超过72°C触发严重告警,但同时要看风扇转速,如果温度高而风扇转速没跟着上来,那多半是风扇故障或散热风道堵了。

防误报的核心技巧:连续N次采样确认

这也是我踩过最大的坑,解决方案很简单:连续采集3次,每次都超过阈值才触发告警,比如60秒一个周期,连续3次CPU超过80%才发通知,中间任何一次回落到阈值以下,计数器清零,所以监控脚本不能写得太简单,状态机逻辑是必不可少的。

硬件监控脚本的性能开销与生产环境避坑指南

监控脚本本身是个常驻进程,它的性能开销直接关系到业务稳定性,在云服务器上,这个问题更明显买的是2核4G的小机器,再跑个Python写的监控脚本,动不动吃5%的CPU,业务方大概要来找你聊天了。

Bash和Python怎么选?

  • 纯Bash脚本用/proc/stat、/proc/meminfo直接读内核数据,开销极小,适合只做简单阈值判断
  • Python脚本处理复杂逻辑更顺手,比如把数据写入SQLite、计算趋势、对接多个Webhook,但启动Python解释器本身就占一点内存
  • 如何编写Linux服务器硬件监控脚本?,实时告警怎么做?

  • 折中方案是:主循环用Bash,采集和告警逻辑用Python子进程,日常开销非常低

脚本本身的自我守护

写监控脚本,别忘了监控它自己,启动脚本时把PID写入文件,配合crontab每分钟检查一下进程是否存活,我自己的习惯是,要么用systemd管理监控服务,配置Restart=always,要么在crontab里加一条任务判断进程存在,不存在就拉起。

出门在外怎么快速定位硬件问题

有一次我在高铁上收到告警,说机房一台机器的磁盘SMART状态异常,手机上没有笔记本,只能借助脚本里提前集成的故障信息收集功能。把dmidecode、dmesg、smartctl -a和ipmitool sel list的输出统一打包到一个日志目录,这样收到告警短信或机器人推送时,直接登上去抓日志,远程排查效率高很多。

其实这个思路算是一条不成文的行业经验:监控脚本做的不是告警这一个动作,而是把故障的上下文也一并打包,方便后续定位。

关于Linux服务器硬件监控脚本的常见疑问解答

监控脚本每30秒跑一次会影响线上业务性能吗?

影响很小,但看写法,用Bash直接读/proc接口,每轮执行时间在毫秒级,几乎可以忽略不计,真正要留意的是smartctl这类底层工具扫描硬盘时的IO开销,有概率影响到正在做大量磁盘读写的业务,建议把它放到单独的低频周期里执行,比如每10分钟跑一次。

服务器硬件监控脚本怎么防误报?

核心思路是加状态判断,连续多次采样超过阈值再告警,同时对单次瞬时抖动设置容忍窗口,配套手段包括:区分告警级别、过滤已知的维护时间段、定期更新基线数据,能把误报率压下来,监控系统才算真正可用。

云服务器和物理机的硬件监控脚本有什么不一样?

云服务器拿不到温度、风扇、SMART这类底层硬件数据,因为虚拟化层屏蔽了这些接口,通常只能监控CPU使用率、内存、磁盘IO等资源指标,物理机则可以靠IPMI读取完整的硬件健康状态,如果买的是云服务器,建议把重点放在云平台自带的监控告警上,这类监控脚本更侧重于云主机的资源使用率与进程层面的异常检测。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/618587.html

赞 (0)
pkg文件用虚拟机怎么运行?安装方法是什么?
上一篇 2026年9月3日 03:34
虚拟机重启后无法开机如何修复,vmware虚拟机启动失败原因?
下一篇 2026年9月3日 03:35

相关推荐

  • 阿里云服务器带宽价格是多少?阿里云带宽计费方式详解

    阿里云服务器带宽费用主要取决于计费模式,按固定带宽计费适合流量稳定的业务,按使用流量计费则更灵活,具体价格需根据地域、带宽峰值及购买时长实时计算,通常起步价在每月几十元至数百元不等,在云计算时代,服务器带宽就像高速公路的车道数,直接决定了你的网站或应用能承载多少并发访问,很多初次接触阿里云的用户,面对复杂的计费……

    2026年6月21日
    2400
  • VPS带宽和服务器带宽区别?VPS带宽和服务器带宽有什么不同

    VPS带宽与服务器带宽的本质差异在于资源归属与性能保障机制,前者是共享逻辑,后者是独占逻辑, 对于企业级应用或高并发业务,选择不当将直接导致用户体验下降甚至业务中断,简米科技在多年的IDC服务实践中发现,超过60%的网站访问卡顿问题,根源并非服务器配置不足,而是带宽选型错误,核心结论先行:共享与独享的根本对立理……

    2026年3月5日
    12400
  • https网站放视频会降权吗?https网站怎么添加视频

    在HTTPS网站上部署视频不仅符合现代浏览器安全规范,更是提升用户信任度与搜索引擎排名的关键动作,核心在于通过CDN加速、HTTPS证书配置及视频格式优化来实现流畅播放,随着互联网安全标准的全面升级,HTTP协议已逐渐退出历史舞台,对于网站管理者而言,将视频内容迁移至HTTPS环境不再是可选项,而是必选项,这不……

    服务器宽带 2026年6月1日
    5.1K00
  • 直播平台高防服务器如何防CC攻击?防DDoS攻击方案

    直播平台高防服务器防CC攻击的核心在于构建“流量清洗+智能调度+资源隔离”的立体防御体系,通过前置CDN节点过滤恶意请求,后端服务器仅处理正常业务流量,从而保障直播间的流畅性与稳定性,直播行业是网络攻击的重灾区,尤其是CC(Challenge Collapsar)攻击,它利用大量虚假请求耗尽服务器资源,导致画面……

    2026年6月17日
    2310
  • Java虚拟机4.0核心优化有哪些?,新增特性是什么

    Java虚拟机4.0的核心优化集中在低延迟垃圾回收、即时编译重构、虚拟线程深度整合以及云原生启动加速四大方向,同时新增了值类型、结构化并发和可观测性接口,让JVM在云环境下的表现接近原生编译程序,Java虚拟机4.0相比旧版本最直观的启动提速是怎么做到的老Java开发者都有过这种体验:一个Spring Boot……

    2026年9月8日
    100
  • 租用服务器带宽有哪些价格套路?服务器带宽租用费用多少钱

    租用服务器带宽的核心价格逻辑在于“透过标价看本质”,企业必须警惕“共享带宽充独享”、“流量计费陷阱”以及“线路质量虚标”三大核心套路,选择具备透明计费模型与优质B线路的服务商,才是降低成本、保障业务稳定的唯一路径, 带宽计费模式的底层差异:独享与共享的博弈在服务器租用市场,价格差异往往源于带宽计费模式的不同,这……

    2026年3月6日
    11700
  • hp服务器hba卡是什么?hp服务器hba卡驱动怎么下载

    HP服务器HBA卡是连接主机与存储阵列的关键硬件,选择时需根据RAID需求区分HBA与RAID卡,并优先确认兼容性列表以避免驱动冲突,在数据中心或企业级私有云环境中,存储IO性能往往成为瓶颈,HBA(Host Bus Adapter,主机总线适配器)作为服务器与后端存储设备之间的桥梁,其稳定性直接决定了业务连续……

    2026年6月10日
    4000
  • html导航图片滚动怎么实现?html导航图片滚动代码

    HTML导航图片滚动通过结合CSS动画与JavaScript事件监听,实现平滑的横向或纵向视觉引导,是当前提升网页交互体验与SEO权重的有效手段,在2026年的网页设计语境中,静态的导航栏已难以满足用户对沉浸式浏览的需求,导航图片滚动不仅仅是一个视觉装饰,它更是引导用户注意力、展示核心业务场景的关键交互组件,许……

    2026年6月11日
    3500
  • html5建站为什么要用AMH?,有什么优势?

    使用AMH面板搭建HTML5网站,核心在于利用其LNMP环境快速部署静态资源,并借助内置防火墙和SSL管理提升站点安全与性能,整个过程无需复杂命令行操作,适合个人站长和小型企业,为什么AMH面板成为HTML5建站的热门选择在选择建站环境时,面板的易用性和资源占用往往是决定因素,AMH面板以轻量著称,在低配服务器……

    2026年7月30日
    600
  • 没宽带的无线路由器怎么用,无线路由器不装宽带能上网吗

    没宽带的无线路由器在2024年的最新应用形态,已不再局限于单一的信号中继功能,而是演变为局域网数据中心、离线下载站与智能家居控制中枢,核心结论在于:即便在没有公网宽带接入的环境下,现代无线路由器依然具备极高的实用价值,通过内置存储、局域网服务部署及桥接功能,能够解决家庭网络覆盖死角、数据私密共享及特定场景下的离……

    2026年3月7日
    13600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注