简易磁盘自动监控服务

本文旨在利用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

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

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

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

(2) 配置crontab任务

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

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值