• 简易磁盘自动监控服务


    本文旨在利用crontab定时任务(脚本请参考附件)来监控单个服务节点上所有磁盘使用情况,一旦超过既定阈值则会通过邮件形式告警相关利益人及时介入处理。

    1. 开启SMTP服务

    为了能够成功接收告警信息,需要邮件接收客户都安开启SMTP服务。简要流程请参考下图:
    在这里插入图片描述
    在这里插入图片描述

    2. 配置邮件服务

    因监控脚本涉及邮件发送功能,故需要确保服务节点已经安装mail和postfix服务。下面将以麒麟OS为例:

    [root@mogdb-dev-0012 ~]# yum -y install mailx postfix
    [root@mogdb-dev-0012 ~]# systemctl enable --now postfix
    
    • 1
    • 2

    至此,邮件服务均已配置完成,需要测试邮件服务是否可用,具体指令如下(向账号为test@163.com的用户发送邮件):

    [root@localhost ~]# echo "Testing email body from server!" | mail -s "Testing from server." test@163.com
    
    • 1

    3. 监控脚本说明

    附件中监控脚本disk_monitor.sh,基于df -hP获取节点所有磁盘的使用率信息,MAIL_SENDTO标识接收告警信息的邮箱地址,DISK_USAGE_THRESHOLD标识磁盘利用率阈值,NODE_NAME标识被监控节点的主机hostname。

    4. 自动化监控配置

    (1) 增加权限

    [root@mogdb-dev-0012 ~] chmod +x disk_monitor.sh
    
    • 1

    (2) 配置crontab任务

    [root@mogdb-dev-0012 ~] crontab -e
    
    • 1

    添加如下命令到crontab(示例为每隔3分钟检测一次磁盘使用率情况):

    */3 * * * * sh <监控脚本绝对路径>
    
    • 1

    5. 告警邮件样例

    在这里插入图片描述

    6. 附件

    [wrz@mogdb-dev-0012 wrz]$ cat disk_monitor.sh
    #!/bin/bash
    MAIL_SENDTO=test@163.com // 更改为具体邮箱地址
    DISK_USAGE_THRESHOLD=85 // 更改为需要的数值
    NODE_NAME=$(hostname)
    MAIL=/bin/mail
    
    for line in $(df -hP | egrep '^/dev/' | awk '{ print $1 "_:_" $5 }')
      do
        DISK_INFO=$(echo "$line" | awk -F"_:_" '{ print $1 }')
        DISK_USAGE=$(echo "$line" | awk -F"_:_" '{ print $2 }' | cut -d'%' -f1 )
        if [ $DISK_USAGE -ge $DISK_USAGE_THRESHOLD ];
        then
          EMAIL_MES="Attention: $NODE_NAME-$(date), $DISK_INFO usage($DISK_USAGE) has exceeded the threshold($DISK_USAGE_THRESHOLD)!\n"
          echo -e "$EMAIL_MES" | $MAIL -s ""$NODE_NAME" Disk Usage Alert: Needs Attention!" "$MAIL_SENDTO"
        fi
    done
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
  • 相关阅读:
    若依(ruoyi)开源系统-多数据源问题踩坑实录
    QT运行错误设置弹窗提示
    [附源码]计算机毕业设计springboot疫情物资管理系统
    Robot Framework笔记
    基于激光雷达的深度图杆状物提取器在城市环境中长期定位方法
    Spring事务管理接口:PlatformTransactionManager、TransactionDefinition和TransactionStatus
    【随想】每日两题Day.9
    EMMC打印cqhci: timeout for tag 10提示分析与解决
    华为面试100题:java开发工程师(中)
    【跟小嘉学 Rust 编程】三十、Rust 使用 Slint UI
  • 原文地址:https://blog.csdn.net/weixin_43258870/article/details/133312234