第七章实验案例
2023-12-20 18:40:28
1、实验环境。
????????某公司随着业务的不断发展,所使用的Linux服务器也越来越多。管理员希望编写一个简单的性能监控脚本,放到各服务器中,当监控指标出现异常时发生告警邮件。
2、需求描述
1、编写名为sysmon.sh的Shell监控脚本。
2、监控内容包括CPU使用率,内存使用率、根分区的磁盘占用率。
3、百分比只需精确到个位,如7%、12%、23%等。
4、出现以下任一情况时告警:磁盘占用率超过90%,CPU使用率超过80%,内存使用率超过90%.
5、告警邮件通过mail命令发送到monitor@bdqn.com。
6、结合crond服务,每半小时执行一次监控脚本。
3、实验步骤
3.1、创建一个名为"sysmon.sh"脚本文件,并写入如下代码
[root@yang ~]# vim sysmon.sh
#!/bin/bash
# 监控CPU使用率
cpu=`expr 100 - $(mpstat | tail -1 | awk '{print $12}' | awk -F. '{print $1}')`
echo "CPU使用率为:$cpu%"
# 监控内存使用率
mug=$(expr $(free | grep "Mem:" | awk '{print $3}') \* 100 / $(free | grep "Mem:" | awk '{print $2}'))
echo "内存的使用率为:$mug%"
# 监控硬盘
dug=$(df -h | grep "/$" | awk '{print $5}' | awk -F% '{print $1}')
echo "磁盘占用率为:$dug%"
# 设置警告日志文件,告警邮箱
# 日志文件的变量
ALOG="/opt/alert.txt"
# 发送到邮箱的变量
AMAIL="root"
# 判断是否记录告警
if [ $cpu -gt 20 ]
then
echo "CPU占用率:$cpu%" >> $ALOG
fi
if [ $mug -gt -6 ]
then
echo "内存使用率为:$mug%" >> $ALOG
fi
if [ $dug -gt 20 ]
then
echo "磁盘占用率为:$dug" >> $ALOG
fi
if [ -f $ALOG ]
then
cat $ALOG | mail -s "Host Alert" $AMAIL
rm -rf $ALOG
fi
3.2、保存退出后,为其赋予执行权限,然后执行脚本,例如下面的内存已经超过了脚本文件中的条件6。所以在邮箱中会收到一个告警的邮件
[root@yang ~]# chmod +x sysmon.sh
[root@yang ~]# ./sysmon.sh
CPU使用率为:1%
内存的使用率为:13%
磁盘占用率为:18%
您在 /var/spool/mail/root 中有新邮件
?
?3.3、执行计划任务,每半个小时执行一次
[root@yang ~]# crontab -e
30 * * * * /root/sysmon.sh
文章来源:https://blog.csdn.net/hey1616/article/details/135112886
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!