shell脚本实现Linux磁盘空间超过阈值自动钉钉机器人告警

简介: shell脚本实现Linux磁盘空间超过阈值自动钉钉机器人告警

shell脚本实现Linux磁盘空间超过阈值自动钉钉机器人告警

具体步骤如下

1、创建钉钉Webhook机器人

安全设置这里我选用服务器出口IP

设定后,只有来自IP地址范围内的请求才会被正常处理

(图片点击放大查看)

(图片点击放大查看)

(图片点击放大查看)

2、编写磁盘巡检脚本

vim /opt/disk_usage_check.sh 
#!/bin/bash
# 设置警告阈值
THRESHOLD=80
#
CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S")
# 获取主机名和IP
HOSTNAME=$(hostname)
IP=$(hostname -I)
# 筛选需要检查的磁盘并进行检查
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}')
  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> $IP </font> \n
>  ##### <font color=#67C23A> 【告警时间】</font> :<font color=#FF0000> $CURRENT_TIME </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"  https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXX
    echo $PAYLOAD
  fi
done

3、脚本权限设置及定时任务设置

chmod 777 /opt/disk_usage_check.sh
crontab -e 
0 */4 * * * /opt/disk_usage_check.sh

(图片点击放大查看)

(图片点击放大查看)

每4个小时巡检一次 可以自行调整频率

4、测试

df -PTh

找一个分区,以/boot分区为例

dd if=/dev/zero of=/boot/test.iso count=1 bs=300M

让/boot分区超过阀值进行测试 然后手动执行

sh /opt/disk_usage_check.sh

测试是否会触发告警

(图片点击放大查看)

5、告警效果如下

(图片点击放大查看)

相关文章
|
4月前
|
存储 监控 安全
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
|
7月前
|
Ubuntu Linux 数据库
【Linux】深入了解Linux磁盘配额:限制用户磁盘空间的利器
【Linux】深入了解Linux磁盘配额:限制用户磁盘空间的利器
|
4月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
4月前
|
Linux API
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
|
4月前
|
监控 Linux
在Linux中,使用哪⼀个命令可以查看自己文件系统的磁盘空间配额呢?
在Linux中,使用哪⼀个命令可以查看自己文件系统的磁盘空间配额呢?
|
4月前
|
Linux
在Linux中,如何检查磁盘空间使用情况?
在Linux中,如何检查磁盘空间使用情况?
|
6月前
|
数据管理 机器人 BI
数据管理DMS产品使用合集之如何让报表自动更新推送到钉钉机器人
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
87 3
|
6月前
|
运维 机器人 开发者
使用阿里云百炼通过appflow模板,组合钉钉机器人搭建个人知识库评测与感想
尝试构建个人助手机制,用阿里云百炼+AppFlow+钉钉机器人,花费两午休时间解决配置问题。百炼appid复制时多出空格致错,文档未提及,耗时排查。应用创建时模型选项限于max, plus, turbo,性价比高的qwen-long未上线。期望尽快修复bug和上线新模型以降低成本。附故障排查截图。
207 1
|
6月前
|
机器人 Linux 数据安全/隐私保护
一键部署 botpress windows和linux 傻瓜式安装智能对话机器人 chatbot
一键部署 botpress windows和linux 傻瓜式安装智能对话机器人 chatbot
144 0
一键部署 botpress windows和linux 傻瓜式安装智能对话机器人 chatbot
|
6月前
|
Linux Shell
解决:linux系统磁盘空间被占满,但是找不到大文件
解决:linux系统磁盘空间被占满,但是找不到大文件
689 0