20.22 告警系統監控項目

告警系統監控項目

  • 定義子腳本,就是監控項目

第一個load.sh是必需要有的,由於在主腳本中已經定義了任何一臺機器都要監控系統負載

[root@hf-01 mon]# cd shares/
[root@hf-01 shares]# pwd
/usr/local/sbin/mon/shares
[root@hf-01 shares]# vim load.sh

#! /bin/bash
##Writen by aming##
load=`uptime |awk -F 'average:' '{print $2}'|cut -d',' -f1|sed 's/ //g' |cut -d. -f1`
#計算系統負載
if [ $load -gt 10 ] && [ $send -eq "1" ]
then
    echo "$addr `date +%T` load is $load" >../log/load.tmp  
#這條命令的目的是爲了發送日誌
    /bin/bash ../mail/mail.sh aming_test@163.com "$addr\_load:$load" `cat ../log/load.tmp`
fi
echo "`date +%T` load is $load"

502.sh內容(502確定須要一個日誌),502涉及到一個訪問日誌,訪問日誌又設計到一個時間

  • 由於腳本監控主腳本是的是1分鐘執行一次,因此502監控,看的確定1分鐘之前訪問日誌的時間,信息
[root@hf-01 shares]# vim 502.sh

#! /bin/bash
d=`date -d "-1 min" +%H:%M`
c_502=`grep :$d:  $log  |grep ' 502 '|wc -l`
#截取一分鐘之前的時間
if [ $c_502 -gt 10 ] && [ $send == 1 ]; then
     echo "$addr $d 502 count is $c_502">../log/502.tmp
     /bin/bash ../mail/mail.sh $addr\_502 $c_502  ../log/502.tmp
#mail就是定義發送給誰,發送的主題,發送的內容
fi
echo "`date +%T` 502 $c_502"

disk.sh內容(磁盤使用率)

  • disk,思路就是挨個把分區看下
[root@hf-01 shares]# vim disk.sh

#! /bin/bash
##Writen by aming##
rm -f ../log/disk.tmp
for r in `df -h |awk -F '[ %]+' '{print $5}'|grep -v Use`  
#[ %]+  以 多個,空格 或者 %   做爲分隔符,+號表示一個或多個;由於系統默認是英文,因此grep -v Use 過濾掉的就是 已用
do
    if [ $r -gt 90 ] && [ $send -eq "1" ]
then
    echo "$addr `date +%T` disk useage is $r" >>../log/disk.tmp
fi
done

if [ -f ../log/disk.tmp ]
then
    df -h >> ../log/disk.tmp
    /bin/bash ../mail/mail.sh $addr\_disk $r ../log/disk.tmp
    echo "`date +%T` disk useage is nook"
else
    echo "`date +%T` disk useage is ok"
fi
  • awk指定多個分隔符
[root@hf-01 shares]# echo "12:aa#123bb:22#ww" |awk -F '[:#]' '{print $3}'
123bb

[root@hf-01 shares]# echo "12:aa#123bb:22#ww" |awk -F '[:#]' '{print NF}'
5
[root@hf-01 shares]# echo "12:aa#123bb:22##ww" |awk -F '[:#]' '{print NF}'
6
[root@hf-01 shares]# echo "12:aa#123bb:22##ww" |awk -F '[:#]+' '{print NF}'
5
[root@hf-01 shares]#
相關文章
相關標籤/搜索