首页 游戏 软件 资讯 排行榜 专题
首页
系统平台
Linux如何编写Shell监控告警脚本_Linux Shell监控告警脚本编写实践

Linux如何编写Shell监控告警脚本_Linux Shell监控告警脚本编写实践

热心网友
12
转载
2026-04-21

Linux Shell监控告警脚本编写实践

linux如何编写shell监控告警脚本_linux shell监控告警脚本编写实践

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

在Linux环境下,一个真正能投入生产使用的监控告警脚本,其价值往往不在于语法多么精巧,而在于能否稳定地扛住四类现实干扰:日志轮转、进程重启、网络抖动以及权限变化。这才是脚本能否长期服役的关键。

怎么判断服务是否真的挂了,而不是暂时没响应

单纯依赖ps aux | grep nginx或者curl -I https://localhost:80这类简单检查,很容易掉进误报的陷阱。比如,主进程还在但工作进程已经崩溃,或者HTTP接口返回了502错误码却被脚本判定为“连通”。要避免这种情况,必须采用组合检查策略。

首先,检查进程是否真实存活:使用pgrep -f “nginx: master process”。这比通用的grep命令更精准,能有效避免匹配到日志文件或命令行参数中的相似字符串。

接着,确认服务端口是否在监听:执行ss -tln | grep “:80\b”。注意这里的\b单词边界符,它能防止误匹配到8080这类端口。

最后,进行轻量级的业务层探测:curl -s --connect-timeout 3 -m 5 https://127.0.0.1/health | grep “ok”。这里设置了连接和传输超时,并且验证了响应体内容,确保服务是真正“健康”的。

只有当进程、端口、业务响应这三者全部通过检查时,才能判定服务健康。其中任何一环失败,都应当触发后续的告警逻辑。

告警发出去就完事?得防重复轰炸和静默失效

监控脚本通常由crontab每分钟调度一次,但服务故障的恢复往往需要几十分钟。如果脚本每次检测到故障都发送告警,运维人员的收件箱很快就会被“轰炸”,最终可能导致重要告警被直接屏蔽。因此,实现状态记忆和冷却控制机制必不可少。

一个常见的做法是,利用临时文件记录上次告警的发送时间,例如/tmp/nginx_alert_last_sent。每次准备发送告警前,先读取这个文件中的时间戳,如果距离现在不足15分钟,就跳过本次发送,进入冷却期。

同样重要的还有恢复通知。当服务从故障状态恢复正常时,也应该及时告知:if [ “$last_state” = “down” ] && [ “$current_state” = “up” ]; then echo “Nginx recovered at $(date)” | mail -s “✅ Recovered” admin@example.com; fi。这能形成一个完整的“故障-恢复”闭环。

另外,不要想当然地依赖mail命令。许多最小化安装的Linux系统并没有安装mailx套件。更稳妥的做法是使用echo … | sendmail -t,或者直接通过curl -X POST调用企业微信、钉钉等平台的Webhook接口来发送告警。

脚本放哪儿、谁来跑、权限够不够

脚本编写完成,只是万&里长征第一步。部署时的路径、执行权限和环境配置,才是决定它能否长期稳定运行的幕后细节。其中,crontab的权限、PATH环境变量以及输出重定向,是最容易导致脚本静默失败的三个地方。

脚本的存放路径应该固定,例如/opt/monitor/check_nginx.sh。避免使用~/(家目录)或相对路径,防止因用户切换或当前目录变化导致脚本找不到。

在crontab中,务必显式声明PATH环境变量:PATH=/usr/local/bin:/usr/bin:/bin。否则,在cron的特殊环境下,很可能找不到pgrepss这些命令。

所有输出,包括标准输出和错误输出,都应该被重定向到日志文件:/opt/monitor/check_nginx.sh >> /var/log/monitor/nginx_check.log 2>&1。如果没有这行配置,脚本运行中的任何错误都将石沉大海,无从排查。

运行用户方面,建议使用root或专为监控创建的monitor系统用户。避免使用个人账号,一旦账号密码变更或家目录被清理,依赖它的定时任务就会随之停摆。

最后,还有一个极易被忽略的环节:信号处理和锁机制。如果脚本的两个实例同时运行,可能导致并发发送重复告警;如果脚本被强制终止时没有清理临时状态文件,下次启动就可能基于错误的历史状态做出误判。解决之道并不复杂,哪怕只是在脚本关键逻辑外包裹一层flock -n /tmp/check_nginx.lock -c “…”,也能有效防止并发问题,让脚本的可靠性提升一个档次。

来源:https://www.php.cn/faq/2303333.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

中秋月圆夜
职业与学业
中秋月圆夜

中秋佳节:不止是月饼与月亮 说到中秋,这个节日的名头可真不少。月夕、秋节、仲秋节、八月节……细细数来,怕有十来个别称。这背后,其实是绵延千年的文化积淀。每逢此时,漂泊在外的游子心头总会泛起那么几句诗:“举头望明月,低头思故乡”,或是“海上生明月,天涯共此时”。那份对团圆的期盼,对故土的思念,早已刻进

热心网友
04.25
我的麻雀妈妈
职业与学业
我的麻雀妈妈

我的麻雀妈妈 她有一双水灵灵的眼睛,一头乌黑的卷发,再配上一张樱桃小嘴。可千万别小瞧这张嘴,一旦让她抓住了什么小把柄,那滔滔不绝的“攻势”可就来了。论嘴上功夫,她绝对是顶尖高手,那场景,活脱脱就是现实版的“唐僧”在念紧箍咒,而我嘛,自然就是那个无处可逃的“孙悟空”了。不信?你往下瞧瞧就知道了。 记得

热心网友
04.25
真诚的“我”
职业与学业
真诚的“我”

今天,第一节作文课,老师让我们以为“我”为话题介绍自己。我前思后想,决定给大家展示一个最真诚地“我”。 我的真诚体现在我的言谈举止上 对待同学,热情大方是准则;面对老师,尊敬有礼是常态。在长辈面前,孝顺听话是本能;投入生活,积极乐观是底色。至于学习,孜孜不倦是态度;审视自我,严谨自律是要求。或许这几

热心网友
04.25
固执的我
职业与学业
固执的我

虽然我的外表老,但是,一在家里,我是非常的固执,有一次,让我知道什么是“不听好人言,吃亏在眼前。”这句话。 话说回来,这种“固执”的性子,有时候真会让人栽跟头。就拿那次英语作业来说吧。下午老师布置了背单词的任务,一看到这项作业,心里就咯噔一下:完了,又是背单词!这事儿多枯燥啊,实在提不起劲儿。回到家

热心网友
04.25
我最喜欢的“号”
职业与学业
我最喜欢的“号”

我们班有38名同学,每位同学都有自己的学号,而我们最喜欢的却是“39号” 她中等身材,白皙的脸上架着一副眼镜。眼睛不算大,但格外有神,甚至可以说,那双眼睛是会“说话”的。不信?你瞧——上课时,要是有哪位同学走了神,或者在底下悄悄讲小话,她的目光立刻会变得锐利起来,仿佛在无声地提醒:“课堂时间多宝贵,

热心网友
04.25

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

Llama中文社区
AI
Llama中文社区

Llama中文社区是什么 提起近年来火热的大语言模型,Meta的Llama系列无疑是开源领域的明星。但一个绕不开的问题是:如何让这些“国际范儿”的模型,更好地理解和使用中文?这恰恰是Llama中文社区诞生的初衷。简单来说,它是由LlamaFamily打造的一个高级技术社区,核心目标非常聚焦:致力于对

热心网友
04.25
Tech Talent AI
AI
Tech Talent AI

Tech Talent AI Sourcing是什么 简单来说,Tech Talent AI Sourcing 是摆在技术招聘领域的一个“效率翻跟斗”。由TalentSight开发的这款AI招聘工具,核心目标很明确:帮助招聘团队,尤其是那些在IT人才红海里“淘金”的团队,更快、更准地锁定对的人。它的

热心网友
04.25
CentOS系统如何防止SFTP被攻击
网络安全
CentOS系统如何防止SFTP被攻击

在CentOS系统上防止SFTP被攻击的配置与加固指南 对于依赖SFTP进行文件传输的CentOS服务器而言,安全配置绝非小事。攻击者一旦找到入口,数据泄露和系统失陷的风险便会急剧上升。别担心,通过一系列系统性的配置和加固措施,我们可以为SFTP服务构筑起坚实的防线。下面这份实操指南,将带你一步步完

热心网友
04.25
Linux里记事本软件如何进行文件加密
网络安全
Linux里记事本软件如何进行文件加密

在Linux里记事本软件如何进行文件加密 很多刚接触Linux的朋友可能会发现,系统自带的记事本类软件(比如gedit)并没有一个直接的“加密”按钮。这其实很正常,因为Linux的设计哲学更倾向于“一个工具做好一件事”。不过别担心,虽然记事本本身不内置加密,但我们可以借助几个强大且成熟的外部工具,轻

热心网友
04.25
debian分区如何加密
网络安全
debian分区如何加密

Debian分区加密全攻略:LUKS与LVM两种方案深度解析 在数据安全日益重要的今天,为Debian系统分区实施加密已成为系统管理员和资深用户的必备技能。本文将详细对比两种主流的Debian分区加密方法,帮助您根据实际需求选择最佳方案。下图直观展示了两种方案的核心流程与关系: 接下来,我们将深入剖

热心网友
04.25