钉钉自动巡检告警--磁盘空间
钉钉自动巡检告警--磁盘空间
March 31, 2026
钉钉自动巡检告警–Disk:
注意:在虚拟环境中要提前 pip 安装相应的库
注意:钉钉机器人有使用频率限制:每个机器人最多20条/min
建议采用Python虚拟环境避免冲突
#新建文件夹:
mkdir /to/your/myPython
touch /to/your/myPython/DingDing.py
#激活venv环境,使命令行前出现venv标志
python3 -m venv venv
#在所在文件目录执行
source venv/bin/activate
#执行脚本
python3 /to/your/myPython/DingDing.py
#取消venv
deactivate脚本代码及解释:
import requests
import json
import psutil
import socket
#自己的token,在 钉钉自建群 ==》机器人 ==》 自定义机器人 ==》查看token ==》 安全策略带关键词,如"告警"
WEBHOOK_URL = "你的token"
def send_dingtalk_msg(content):
"""发送钉钉告警的核心函数"""
headers = {"Content-Type": "application/json"}
#构建消息体(必须包含关键词"告警")
data = {
"msgtype": "text",
"text": {
"content": f"【服务器自动巡检告警】\n{content}"
}
}
try:
response = requests.post(WEBHOOK_URL, data=json.dumps(data), headers=headers)
result =response.json()
if response.status_code == 200:
print("钉钉消息发送成功!!!")
else:
print(f"发送失败,错误码:{response.status_code}")
except Exception as e:
print(f"网络请求出错:{e}")
def check_disk_usage():
"""检查磁盘使用率"""
hostname = socket.gethostname()
disk_info = psutil.disk_usage('/')
percent = disk_info.percent
print(f"当前磁盘使用率:{percent}")
#设置一个合理的磁盘空间"报警值"
if percent > 80:
msg = f"主机名:{hostname}\n状态:磁盘空间不足\n当前使用率:{percent}%\n请及时清理日志或扩容!!!"
send_dingtalk_msg(msg)
else:
print("磁盘状态正常")
if __name__ == "__main__":
check_disk_usage()
设置crontab定时脚本:
#编辑脚本
crontab -e
#添加:
0 * * * * /to/your/venv/bin/python /to/your/DingDing.py
#完成后会出现新安装的提示
#如果想要测试的话还是直接用:
python3 /to/your/DingDing.py