shell告警系统

前期准备
创建项目主目录mkdir /usr/local/sbin/mon
创建项目各个子目录
cd /usr/local/sbin/mon
mkdir bin conf shares mail log
centos7操作系统、可以联网、安装python3环境(直接yum install -y python3即可)net-tools

1.配置main.sh

进入bin目录下
①cd /usr/local/sbin/mon/bin/
②vim main.sh
在这里插入图片描述

2、配置mon.conf

①cd /usr/local/sbin/mon/conf
②vim mon.conf
在这里插入图片描述

3、配置监控子程序

这些子程序才是我们真正的监控程序,这些程序我们都放在shares目录下,这里主要有三个程序,分别是load.sh、502.sh、disk.sh。
①cd /usr/local/sbin/mon/shares
②vim load.sh(下面的邮箱地址为收件箱)
load.sh程序的核心就是利用uptime命令取程序最近一分钟的负载值做判断,如果值大于我们设定的阈值就发送邮件告警。mail.sh后面跟三个参数 分别是邮件接收人、邮件主题、邮件内容,可以根据需要自定义参数。
在这里插入图片描述
③vim 502.sh
502.sh 核心就是监控nginx运行日志一分钟502出现的次数,如果大于我们设定的阈值就发送邮件告警。这个脚本需要在conf目录下mon.conf设置502运行日志的目录位置。
在这里插入图片描述
④vim disk.sh
disk.sh 核心思想就是利用for循环遍历每个分区的磁盘利用率,如果有分区磁盘利用率超过设定的阈值就发送告警邮件
在这里插入图片描述

4.配置告警系统邮件引擎

告警系统邮件引擎由两个文件组成,都在mail目录下,mail.py负责发送邮件,mail.sh负责告警收敛。
mail.py是由python3编写的脚本,如果没有学过python 内容不需要关心,只需要注意最下面一行,填写你的网易163账号、授权码和发送人邮箱。
①cd /usr/local/sbin/mon/mail
②vim mail.py
在这里插入图片描述
③vim mail.sh
mail.sh是负责告警收敛的,如果每次运行脚本出现问题都发送邮件就太烦人了,所以就有了这个告警收敛脚本。这个脚本设置了三种场景,分别是第一次执行脚本如果有警告就发送邮件、业务连续报警十分钟再发送一封邮件和业务间断的报警一小时内满十分钟就报警一次。
在这里插入图片描述

测试

因为是测试我们先把日志关掉,注释掉main.sh脚本exec那一行。
我们要把load.sh脚本改成满足我们设定的阈值,所以改一下判断条件当系统负载等于($load -gt 0)0时我们就告警。(前面的命令已经修改过)
执行主程序
1.cd /usr/local/sbin/mon/bin
2.sh -x main.sh
结果下面显示:
++ date ‘+%F %T’

  • echo ‘2021-02-26 22:39:34 load average’
    2021-02-26 22:39:34 load average
  • /bin/bash …/shares/load.sh
    7200
    success
    22:39:35 load is 0
  • grep -q to_mon_502=1 …/conf/mon.conf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值