SHELL訓練營--day9__告警指令碼練習
阿新 • • 發佈:2018-12-28
專案文件
-
需求分析文件
使用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