第七章实验案例

发布时间:2023年12月20日

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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。