系统监控异常告警

背景:

多个系统部署在多个ECS(Linux)服务器上,每次巡检或者日常管理都是大问题。而且还比较滞后,都是问题出现了,才去排查。所以,高级的管理应主动发现异常,提早介入,将风险扼杀在摇篮中。

思路:

1、制定系统经常监控的指标信息(CPU、内存、磁盘、登录失败等)。

2、设置告警阈值,当高于设置的阈值,既触发。

3、触发机制,定时执行触发。

4、执行结果保存在日志文件。

5、邮件通知异常信息。

6、根据异常告警邮件,及时上去干预处理(可分析4,看出问题发生的时间点或时间段)。

开干:

创建可执行文件 system_monitor.sh

#!/bin/bash # 系统监控告警脚本 # 检测CPU、内存、磁盘使用率,以及*分钟内登录失败次数,超过阈值时发送邮件告警 # 配置参数 CPU_THRESHOLD=85 # CPU使用率阈值(%) MEM_THRESHOLD=80 # 内存使用率阈值(%) DISK_THRESHOLD=80 # 磁盘使用率阈值(%) LOGIN_FAIL_THRESHOLD=5 # 登录失败次数阈值 #TIME_WINDOW=5 # 时间窗口(分钟) EMAIL="*****@qq.com" # 告警接收邮箱 SUBJECT="系统资源告警 - $(hostname)" LOG_FILE="/data/script/monitor/logs/$(hostname)_$(date +%Y%m%d)_sys.out" # 同时输出到屏幕和日志 log() { local msg="[$(date '+%Y-%m-%d %H:%M:%S')]$1" echo "$msg" | tee -a "$LOG_FILE" } send_email() { printf "%s\n" "$2" | /usr/bin/mail -s "$1" "$EMAIL" log "[邮件发送] $1" } check_cpu() { echo "--- CPU 检查 ---" | tee -a "$LOG_FILE" local cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print 100 -$8}' | cut -d'.' -f1) log "当前 CPU 使用率: ${cpu_usage}% (阈值:${CPU_THRESHOLD}%)" if [[ "$cpu_usage" =~ ^[0-9]+$ ]] && [ "$cpu_usage" -gt "$CPU_THRESHOLD" ]; then local msg="警告: CPU使用率为 ${cpu_usage}%,超过阈值${CPU_THRESHOLD}%,请及时关注并处理!" send_email "$SUBJECT" "$msg" else log "状态: 正常" fi } check_memory() { echo "--- 内存 检查 ---" | tee -a "$LOG_FILE" # 计算内存使用率 local mem_usage=$(free | awk '/Mem:/ {printf "%d", ($3/$2)*100}') log "当前 内存 使用率: ${mem_usage}% (阈值:${MEM_THRESHOLD}%)" if [ "$mem_usage" -gt "$MEM_THRESHOLD" ]; then local msg="警告: 内存使用率为 ${mem_usage}%,超过阈值${MEM_THRESHOLD}%,请及时关注并处理!" send_email "$SUBJECT" "$msg" else log "状态: 正常" fi } check_disk() { echo "--- 磁盘 检查 ---" | tee -a "$LOG_FILE" local alert_triggered=0 # 使用进程替换 while read output; do local usep=$(echo "$output" | awk '{print $1}' | cut -d'%' -f1) local partition=$(echo "$output" | awk '{print $2}') if [[ "$usep" =~ ^[0-9]+$ ]]; then log "分区 $partition 使用率:${usep}%" if [ "$usep" -ge "$DISK_THRESHOLD" ]; then local msg="警告: 磁盘分区 $partition 使用率为${usep}%,超过阈值 ${DISK_THRESHOLD}%,请及时关注并处理!" send_email "$SUBJECT" "$msg" alert_triggered=1 fi fi done < <(df -h | grep -vE '^Filesystem|tmpfs|cdrom|overlay' | awk '{ print $5 " "$1 }') if [ "$alert_triggered" -eq 0 ]; then log "状态: 所有分区正常" fi } check_login_failures() { echo "--- 安全 检查 (登录失败) ---" | tee -a "$LOG_FILE" local fail_count=0 if [ -f /var/log/auth.log ]; then fail_count=$(grep "Failed password" /var/log/auth.log 2>/dev/null | tail -n 100 | wc -l) elif [ -f /var/log/secure ]; then fail_count=$(grep "Failed password" /var/log/secure 2>/dev/null | tail -n 100 | wc -l) fi log "最近100条日志中检测到登录失败次数: ${fail_count} (阈值:${LOGIN_FAIL_THRESHOLD})" if [ "$fail_count" -ge "$LOGIN_FAIL_THRESHOLD" ]; then local msg="安全警告: 检测到登录失败 ${fail_count} 次,超过阈值${LOGIN_FAIL_THRESHOLD} 次" send_email "$SUBJECT" "$msg" else log "状态: 安全" fi } # ---------------- 主程序 ---------------- main() { echo " " | tee -a "$LOG_FILE" echo "========================================" | tee -a "$LOG_FILE" log "MDM2.0 $(hostname) 操作系统健康巡检报告" log "检查时间:$(date '+%Y-%m-%d %H:%M:%S')" log "当前IP: $(hostname -I | awk '{print $1}')" echo "========================================" | tee -a "$LOG_FILE" check_cpu echo " " | tee -a "$LOG_FILE" check_memory echo " " | tee -a "$LOG_FILE" check_disk echo " " | tee -a "$LOG_FILE" check_login_failures echo " " | tee -a "$LOG_FILE" echo "========================================" | tee -a "$LOG_FILE" log "检查结束" echo "========================================" | tee -a "$LOG_FILE" } main

设置定时任务,我这里是每5分钟

*/5 * * * * /data/script/monitor/system_monitor.sh

查看执行结果

异常告警通知

其他:

该脚本的可塑性较高,灵活配置,根据实际需要进行改造即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1120051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Rokid AR录屏功能逆向分析:通过蓝牙HCI抓包实现CXR SDK未提供的AR录屏功能】

背景介绍 作为一名Rokid Glasses开发者&#xff0c;我最近在开发一个需要AR录屏功能的应用。然而&#xff0c;Rokid官方提供的CXR SDK中并没有直接封装AR录屏的功能。在查阅官方文档和API后&#xff0c;我意识到需要自己探索实现方案。 经过深入研究&#xff0c;我发现了通过蓝…

A2UI:让AI从“对话框“走向“动态界面“

A2UI解决的核心问题是&#xff1a;如何让AI代理安全地跨信任边界渲染UI。 这话听着有点绕&#xff0c;举项目中的一个示例就清楚了。你问AI助手“帮我订个餐厅”&#xff0c;传统的方式是一轮轮文字对话&#xff1a; 用户: "订个两人桌"AI: "什么时间&#xff1…

【路径规划】基于matlab模糊神经网络机器人路径规划【含Matlab源码 14859期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到海神之光博客之家&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49…

基于SpringBoot的爱心捐助平台系统源码设计与文档

前言基于 SpringBoot 的爱心捐助平台系统&#xff0c;聚焦公益捐助 “流程透明化、捐赠可追溯、需求精准匹配” 的核心需求&#xff0c;针对传统爱心捐助 “信息不对称、资金去向不明、捐助效果难量化” 的痛点&#xff0c;构建覆盖捐赠人、受助方&#xff08;个人 / 公益组织&…

【Python pip换源教程:国内镜像源配置方法(清华/阿里云/中科大源)】

作为一名Python开发者&#xff0c;你一定遇到过这样的场景&#xff1a;深夜加班时&#xff0c;一个简单的pip install命令却卡在"Downloading…"界面&#xff0c;进度条慢如蜗牛。这不是你的网络问题&#xff0c;而是默认的PyPI服务器位于海外&#xff0c;网络延迟导…

基于SpringBoot的安心动物领养系统源码设计与文档

前言基于 SpringBoot 的安心动物领养系统&#xff0c;聚焦流浪动物领养 “流程规范化、信息透明化、匹配精准化” 的核心需求&#xff0c;针对传统动物领养 “信息零散、审核不严谨、领养后追踪缺失” 的痛点&#xff0c;构建覆盖领养人、救助机构 / 志愿者、平台管理员的全流程…

基于 ANFIS 的非线性回归附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

基于SpringBoot的毕业生离校管理系统源码设计与文档

前言 基于 SpringBoot 的毕业生离校管理系统&#xff0c;聚焦高校毕业生离校 “流程线上化、审批高效化、数据一体化” 的核心需求&#xff0c;针对传统离校办理 “线下跑腿多、审批进度不透明、数据统计繁琐” 的痛点&#xff0c;构建覆盖毕业生、辅导员、各职能部门&#xff…

【三维路径规划】基于matlab多种算法多无人机三维路径规划【含Matlab源码 14863期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到海神之光博客之家&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49…

【动态路径规划】基于粒子群算法与动态窗口混合的无人机三维动态避障路径规划研究,MATLAB代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1…

航天原子钟的电源管理与控制单元抗辐照可靠性评估

摘要航天原子钟作为导航、通信与科学探测任务的核心时频基准&#xff0c;其电源管理与控制单元的抗辐照可靠性直接决定了全系统在空间辐射环境下的长期稳定运行能力。本文系统综述了面向宇航应用的电源管理集成电路抗辐照设计技术、评估方法及在轨验证现状&#xff0c;重点分析…

计算机深度学习毕设实战-深度学习基于pytorch训练蔬菜识别基于机器学习训练蔬菜识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

脑机接口时代,提示工程架构师的技术咨询服务

脑机接口时代&#xff0c;提示工程架构师的技术咨询服务&#xff1a;开启人机交互新维度 摘要/引言 开门见山 在科技飞速发展的当下&#xff0c;脑机接口&#xff08;BCI&#xff09;技术正逐渐从科幻走向现实&#xff0c;它被视为改变人类生活和工作方式的下一个重大突破。想象…

考虑储能电池参与一次调频技术经济模型的容量配置方法Matlab实现

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1…

Vibe Kanban:Rust构建的AI编程代理编排平台

在AI编程助手日益普及的今天&#xff0c;开发者正面临着一个前所未有的挑战&#xff1a;如何高效地管理多个AI编码代理&#xff0c;实现它们的协同工作。当Claude Code、Gemini CLI、Codex等AI工具开始承担大量代码产出时&#xff0c;人类工程师的核心工作正逐步转向规划、协调…

环境振动估算阻尼比 (SDOF)研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

【路径规划】遗传算法港口集装箱卡车调度【含Matlab源码 14860期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;Matlab领域博客之家&#x1f49e;&…

【栅格地图路径规划】蚁群算法结合遗传算法栅格地图路径规划【含Matlab源码 14865期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;Matlab武动乾坤博客之家&#x1f49e;…

Flask基于人脸识别的智慧医疗预约挂号平台-计算机毕业设计源码+LW文档

摘要 如今&#xff0c;在科学技术飞速发展的情况下&#xff0c;信息化的时代也已因为计算机的出现而来临&#xff0c;信息化也已经影响到了社会上的各个方面。它可以为人们提供许多便利之处&#xff0c;可以大大提高人们的工作效率。随着计算机技术的发展的普及&#xff0c;各个…

【路径规划】模糊神经网络机器人路径规划【含Matlab源码 14859期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;Matlab武动乾坤博客之家&#x1f49e;…