您的位置:首页 > 运维架构 > Shell

SHELL训练营--day9__告警脚本练习

2018-12-28 00:57 1211 查看

项目文档

  • 需求分析文档

    使用shell定制各种告警工具,另需要统一管理,并规范脚本。

  • 实施分解

    实施分层:
    配置文件,设定各项监控数值或指标。
    主程序,根据配置文件调用 子程序 实现监控。
    告警系统:调用告警系统,通过邮件通知管理员,在配置文件中设定告警信息,在子程序中调用。
    日志信息:在配置文件中设定日志等级和存放信息。并在子程序中调用存放日志。
    子程序:存放各类监控 脚本。

主程序示例

#!/bin/bash

#获取ip地址,并通过全局声明,在子程序中调用。
export addr=`/sbin/ifconfig |grep -A1 "ens33: "|awk '/inet/ {print $2}'`

#判断当前脚本位置是否正确。
dir=`pwd`
last_dir=`echo $dir|awk -F'/' '{print $NF}'`

if [ $last_dir ==“bin” ] || [ $last_dir == "bin/" ] && [ -f "../conf/mon.conf" ];
then
conf_file="../conf/mon.conf"
else
echo "you shoud cd bin/dir"
exit
fi

#指定 正确和错误日志默认存放位置
exec 1>>../log/mon.log 2>>../log/error.log

#指定邮件开关
export send=1

#监控load负载
echo "`date +"%F %t" ` load average"
/bin/bash ../shares/load.sh

#检查配置文件,监控502
if grep -q 'to_mon_502=1' $conf_file;
then
export log_502=`grep 'logfile=' $conf_file| awk -F '=' '{printf $2}' |sed 's/ //g' `
/bin/bash ../shares/502.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell