shell告警系统

本文介绍了如何构建一个shell告警系统,包括配置main.sh作为入口脚本,设置mon.conf控制中心,编写监控子程序如load.sh、disk.sh,以及配置邮件引擎mail.py和mail.sh进行告警收敛。通过模拟故障测试了系统功能,确保在负载异常或磁盘利用率过高时能发送告警邮件。
摘要由CSDN通过智能技术生成

shell告警系统

在这里插入图片描述

1、配置main.sh

以后我们写的所有的脚本都放在一个目录下,方便我们以后去查找,这里我们的项目就放在/usr/local/sbin/目录下。

1.1 创建项目主目录
[root@localhost ~]# mkdir /usr/local/sbin/mon
在这里插入图片描述
1.2创建项目各个子目录(注意:在项目主目录里头创建)
[root@localhost mon]# mkdir bin conf shares mail log
在这里插入图片描述
主程序:作为整个脚本的入口,是整个系统的命脉。
先配置主程序:
在这里插入图片描述

**

主程序:
[root@localhost bin]# vi main.sh
#!/bin/bash
#是否发送邮件的开关
export send=1
#过滤ip地址
export addr=`/sbin/ifconfig |grep -A1 "eno16777736: "|awk '/inet/ {print $2}'`
dir=`pwd`
#只需要最后一级目录名
last_dir=`echo $dir|awk -F'/' '{print $NF}'`
#下面的判断目的是,保证执行脚本的时候,我们在bin目录里,不然监控脚本、邮件和日志很有可能找不到
if [ $last_dir == "bin" ] || [ $last_dir == "bin/" ]; then
    conf_file="../conf/mon.conf"
else
    echo "you shoud cd bin dir"
    exit
fi
exec 1>>../log/mon.log 2>>../log/err.log
echo "`date +"%F %T"` load average"
/bin/bash ../shares/load.sh
#先检查配置文件中是否需要监控502
if grep -q 'to_mon_502=1' $conf_file; then
    export log=`grep 'logfile=' $conf_file |awk -F '=' '{print $2}' |sed 's/ //g'`
    /bin/bash  ../shares/502.sh
fi

在这里插入图片描述

**

2、配置mon.conf

配置文件:是一个控制中心,用它来开关各个子程序,指定各个相关联的日志文件。

这个文件就是我们项目各个程序的主开关,负责各个程序是否监控,这里面我们定义了很多参数,有些是我们用不到的,文件放在conf目录下。

配置配置文件:
[root@localhost bin]# cd …/conf/
**

[root@localhost conf]# vi mon.conf
##to config the options if to monitor
##定义mysql的服务器地址、端口以及user、password
to_mon_cdb=0   ##0 or 1, default 0,0 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值