• 简易磁盘自动监控服务


    本文旨在利用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
  • 相关阅读:
    Windows下SpringBoot连接Redis的正确使用姿势
    基于MRF和CNN的图像生成
    PyQt5快速开发与实战 9.5 PyQtGraph在PyQt中的应用 && 9.6 Plotly在PyQt中的应用
    pytorch打印模型信息——torchinfo
    2020中青杯A题集成电路通道布线数学建模全过程论文及程序
    纸巾餐盒经营配送小程序商城的作用是什么
    使用Idea连接Mysql以及基本的连接Mysql方式
    NC23054 华华开始学信息学
    easypoi自定义模板导出
    HTTP流量神器Goreplay核心源码详解
  • 原文地址:https://blog.csdn.net/weixin_43258870/article/details/133312234