#!/bin/bash
#系统时间
dateTime=$(date "+%Y-%m-%d %H:%M:%S")
#ip地址
ipAddr=$(/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1 | grep -v 192.17.0.1 |grep -v inet6|awk '{print $2}'|tr -d "addr:")
# 告警内容
# 在当前目录下创建文本文件temp,如果文件存在则清空文件
$(> temp)
#端口号
monitoredPortNumbers=(3306 80 443 6379)
#监控端口
for ((i=0;i<${#monitoredPortNumbers[*]};i++))
do
portExist=$(netstat -lntup |grep -w ${monitoredPortNumbers[$i]} |wc -l)
if [ $portExist -eq 0 ]
then echo "系统时间: $dateTimenIP地址: $ipAddrn告警内容: ${monitoredPortNumbers[$i]}端口下线" >> temp
fi
done
#磁盘占用率
diskOccupancy=$(df -Th | grep "/$" | awk '{print $6}' | awk -F% '{print $1}')
if [ $diskOccupancy -ge 60 ]
then echo "系统时间: $dateTimenIP地址: $ipAddrn告警内容: 硬盘占用率超过60% 当前值为$diskOccupancy%" >> temp
fi
#内存占用率
memoryOccupancy=$(expr $(free | grep "Mem:" | awk '{print $3}') * 100 / $(free | grep "Mem:" | awk '{print $2}'))
if [ $memoryOccupancy -ge 60 ]
then echo "系统时间: $dateTimenIP地址: $ipAddrn告警内容: 内存占用率超过60% 当前值为$memoryOccupancy%" >> temp
fi
#CPU使用率
cpuOccupancy=$(top -n1 | awk '/Cpu/{print $2}'|awk '{print int($0)}')
if [ $cpuOccupancy -ge 60 ]
then echo "系统时间: $dateTimenIP地址: $ipAddrn告警内容: CPU占用率超过60% 当前值为$cpuOccupancy%" >> temp
fi
sendDingDingMessage(){
# 告警内容
message=$(cat temp)
#钉钉webhook地址
url="https://oapi.dingtalk.com/robot/send?access_token=74f09455a52a8b8a80430731b7ee24d366d262ca9a68d6bdde8a7c45a2333f13"
#发送钉钉消息
curl ''"${url}"''
-H 'Content-Type: application/json'
-d '{"msgtype": "text","text": {"content":"'"${message}"'"}}'
}
# 发送钉钉告警
if [ -s temp ]
then
sendDingDingMessage
fi 钉钉机器人监控脚本
发布于 2022-11-01 274 次阅读

Comments NOTHING