第七章实验案例

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

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值