硬盘空间告急?监控服务器容量,钉钉及时提醒!

在日常的服务器维护中,硬盘容量的监控是非常重要的。如果硬盘容量超过某个阈值,可能会导致服务器无法正常运行,影响业务的正常运作。为了避免这种情况,我们可以编写一个Shell脚本,定期检查硬盘容量,当超过设定的阈值时,通过钉钉推送告警消息给管理员,以便及时处理。

本文将介绍如何实现这个功能,并提供详细的步骤和代码示例。

实现思路

  1. 定义监控阈值和目标目录

    • 确定要监控的硬盘分区或目录,并设定一个合理的使用率阈值(如80%)。
  2. 编写Shell脚本

    • 编写脚本检查目标目录的硬盘使用情况。

    • 当使用率超过设定的阈值时,构建告警消息。

    • 使用curl命令将告警消息发送到钉钉。

钉钉机器设置

钉钉机器人配置请参考这篇文章

编写Shell脚本

以下是监控硬盘容量并通过钉钉发送告警的Shell脚本:

bash 复制代码
#!/bin/bash

# 设置警告阈值
THRESHOLD=20

#钉钉WEBHOOK_URL
WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=$DingDingToken"


# 筛选需要检查的磁盘并进行检查
df -lPh | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
  used=$(echo $output | awk '{print $1}' | cut -d'%' -f1)
  partition=$(echo $output | awk '{print $2}'| head -n 1)

  if (( used >= THRESHOLD )); then
    # 构建payload
    PAYLOAD=$(cat <<-EOF
{
"msgtype": "markdown",
"markdown": {
"title":"Linux服务器磁盘空间告警",
"text":"
##### Linux服务器磁盘空间告警 \n
>  ##### <font color=#67C23A> 【服务器: </font> <font color=#FF0000> $HOSTNAME</font>】 的磁盘空间超过阀值</font> :<font color=#FF0000> $THRESHOLD%  </font> \n
>  ##### <font color=#67C23A> 【服务器IP】</font> :<font color=#FF0000> $( hostname -I | awk '{print $1}') </font> \n
>  ##### <font color=#67C23A> 【告警时间】</font> :<font color=#FF0000> $(date +"%Y-%m-%d %H:%M:%S") </font> \n
>  ##### <font color=#67C23A> 【磁盘空间占用高的分区】:<font color=#FF0000> $partition </font> 已使用 <font color=#FF0000>$used%</font> \n
>  ##### <font color=#67C23A>  该分区具体df -PTh信息如下: </font> \n
>  ##### <font color=#FF0000>  $(df -lPTh | head -n 1) </font> \n
>  ##### <font color=#FF0000>  $(df -lPTh| grep $partition) </font> \n
"
}
}
EOF
    )

    # 发送告警 (自行替换钉钉Webhook机器人的URL)
    curl -H "Content-Type: application/json" -X POST -d "$PAYLOAD"  $WEBHOOK_URL
    echo $PAYLOAD
  fi
done

脚本使用

把上述的代码,拷贝到服务器上,新建一个名为disk_usage_check.sh,并赋予执行的权限,本案为了测试,把硬盘的阈值设置了20%。当我们执行脚本后,钉钉就会收到如下图的一条告警。

shell 复制代码
root@racknerd-a7aa50:~/script# ./disk_usage_check.sh

设置定时任务

为了定期执行这个脚本,可以将其添加到crontab中。使用以下命令编辑crontab

bash 复制代码
crontab -e

在打开的编辑器中添加以下内容,每小时检查一次硬盘容量:

bash 复制代码
0 * * * * /root/script/disk_usage_check.sh

/root/script/cript.sh替换为实际脚本的路径。

总结

通过上述思路,我们实现了一个简单的硬盘容量监控脚本,能够在硬盘使用率超过设定的阈值时,通过钉钉发送告警消息。这种方式能够帮助管理员及时发现和处理服务器硬盘空间不足的问题,保障服务器的稳定运行。您可以根据实际需求调整阈值和检测频率,并结合其他监控手段,构建更加完善的服务器监控体系。

相关推荐
tg_xianheyun6 小时前
CDN节点分布如何影响网页加载速度和用户体验
服务器·cdn加速·全球访问优化
lsh曙光7 小时前
延时at指令和定时cron指令
linux·服务器·网络
夏殇之殁9 小时前
包中创建自定义列表项。 . 使用自定义列表项进行数据绑定 . 将天气预报数据保存到本地内存表,通过LiveBindings进行显示。 ...
服务器·前端·javascript
我不管我就要叫小猪9 小时前
嵌入式Linux----网络通信
linux·运维·服务器
泡沫冰@9 小时前
ECS 的介绍和使用
linux·服务器·网络
土星云SaturnCloud10 小时前
抽水蓄能设备智慧运营:基于土星云边缘计算实现机组全生命周期预测性维护
服务器·人工智能·ai·边缘计算
hyf32663311 小时前
泛程序:从零开始搭建稳定程序项目框架
运维·服务器·爬虫·百度·seo
NiceCloud喜云12 小时前
海外云服务器怎么选?适用场景、价格和避坑经验总结
运维·服务器
kaoa00014 小时前
Linux入门攻坚——84、网络虚拟化技术-1
linux·运维·服务器
RisunJan14 小时前
Linux命令-shutdown(安全关闭或重启系统)
linux·服务器·安全