news 2026/5/1 4:44:04

系统监控异常告警

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
系统监控异常告警

背景:

多个系统部署在多个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

查看执行结果

异常告警通知

其他:

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 22:07:10

python基于django的高校学生党员信息管理系统_829h59n3

目录高校学生党员信息管理系统概述系统功能模块技术实现特点应用价值关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;高校学生党员信息管理系统概述 该系统基于Django框架开发&…

作者头像 李华
网站建设 2026/4/30 4:53:42

韩国大学团队揭秘:ChatGPT等AI模型是如何“类比思考“的?

这项由韩国大学的李台雨、宋旼珠、尹赞雄、朴政宇以及姜在宇等研究者共同完成的研究发表于2025年11月的人工智能顶级会议AAAI 2026&#xff0c;研究编号为arXiv:2511.20344v1。对这一前沿研究感兴趣的读者可以通过该编号查询完整论文。在日常生活中&#xff0c;我们经常会做这样…

作者头像 李华
网站建设 2026/4/27 4:53:59

大语言模型在金融市场异常检测中的推理应用

大语言模型在金融市场异常检测中的推理应用关键词&#xff1a;大语言模型、金融市场异常检测、推理应用、数据处理、模型评估摘要&#xff1a;本文聚焦于大语言模型在金融市场异常检测中的推理应用。首先介绍了该研究的背景、目的、预期读者等信息&#xff0c;接着阐述了大语言…

作者头像 李华
网站建设 2026/4/3 22:22:51

基于储能电站服务的冷热电多微网系统双层优化配置Matlab实现

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

作者头像 李华