您好,登錄后才能下訂單哦!
shell web監控腳本,全套都在里面了 ,判定規則改了幾次,多個結合的用可以看舊版本的,后續懶得寫新的。
舊版本鏈接:
https://blog.51cto.com/junhai/2407485
此次有3個腳本組成,寫下大致實現的過程
計算故障時間效果在:?
https://blog.51cto.com/junhai/2443931
使用微信機器人:
https://blog.51cto.com/junhai/2424374
因為沒用數據庫只能這樣用3個txt了 ,其實是我不會。。。。。。- -! 多個sed可以sed -e寫成1句,懶得花時間優化了。
url.txt(存放監控鏈接)> url.del(存放不可達的網址,第二個腳本分析后在)>url.add(第三個腳本分析是否網址是否恢復)
監控效果 如下圖:
對外使用用郵件發送告警,因為政務云監控的web太多了都要發送郵件,郵箱經常被認為供給發送垃圾郵件,被封了好多次。
1次告警1次恢復,這里防止多次告警,一次故障只會發出2封郵件,恢復用第三個腳本控制,用于政務云平臺WEB監控。
3次不可達停止告警,恢復告警一次,告警@相關系統人員,使用第二個腳本控制,用于長威內部系統監控告警。郵件可選,內部用企業微信比較快。
#!/bin/bash #×××? #QQ××× .?/root/weixin.sh?#調用企業微信機器人?? #時間 cur_time(){ ????????date?"+%Y/%m/%d?%H:%M:%S" }??? systemname(){ name=`cat?url2.txt|grep?$url|wc?-l` if?[?$name?-eq?1?];then cat?url2.txt|grep?-w?$url else ????????echo?"$url" fi }?????? [?!?-f?/root/url.txt?]?&&?echo?"url.txt文件不存在"?&&?exit?1 sed?-i?'/^$/d'?url.txt??? while?read?url do [?-z?$url??]?&&?echo?"url.txt存在空格?檢查文件格式"?&&?exit?1 ????????for?((i=1;i<7;i++)) ????????do rule=`curl?-i?-s?-k?-L?-m?10?$url|grep?-w?"HTTP/1.1?200"|wc?-l`? if?[?$rule?-eq?1?];then echo?"$(cur_time)?第$i次檢查$url網頁訪問成功"?>>?check.log? break ????????????elif?[?$i?=?6?];then? echo?$url?>>?url.del? info=`echo?-e?"$(cur_time)?\n$(systemname)?網頁無法訪問,請檢查!"` wx_web? echo?-e?"$(cur_time)?\n\n$(systemname)?網頁無法訪問,請檢查!"|mail?-s?"【重要告警】網頁不可達"?×××@×××.com? echo?"$(cur_time)?$(systemname)?網頁$(expr?$i?\*?3)秒無法訪問,請檢查!"?>>?checkfail.log? sh?/root/checkdel.sh?#第二個腳本 ????????????else echo?"$(cur_time)?第$i次檢查$url網頁訪問失敗"?>>?checkfail.log? sleep?3? ?????????????fi ????????done done?<?/root/url.txt sh?/root/checkadd.sh?#第三個腳本?我喜歡把第三個腳本單獨用設置間隔1分鐘1次
#!/bin/bash .?/root/weixin.sh cur_time(){ ????????date?"+%Y/%m/%d?%H:%M:%S" }?#顯示時間 sed?-i?'/^$/d'?url.del? sed?-i?'/^$/d'?url.delout? cat?url.del|sort|uniq?-c?>>?url.delout? while?read?line do i=`echo?$line|awk?'{print$1}'` newurl=`echo?$line|awk?'{print$2}'` if?[?-z?$newurl?];then continue elif?[?$i?-eq?1?];then?? echo?$newurl?>>?url.add?? sed?-i?"s|$newurl||"?url.txt? sed?-i?"s|$newurl||"?url.del? sed?-i?'/^$/d'?url.txt sed?-i?'/^$/d'?url.del #info=`echo?-e?"$(cur_time)?\n?$i次告警網站$newurl未恢復?暫停發送告警"`? #wx_web #echo?"$(cur_time)??$i次告警網站$newurl未恢復?暫停發送告警"|mail?-s?"【暫停告警】"?×××@×××.com #echo?"$(cur_time)??網站$newurl未恢復?暫停告警"?>>?checkfail.log sed?-i?"s|$newurl||"?url.delout sed?-i?'/^$/d'?url.delout else echo?>?url.del continue fi done<?url.delout echo?>?url.delout
#!/bin/bash .?/root/weixin.sh .?/root/downtime.sh? cur_time(){ ????????date?"+%Y/%m/%d?%H:%M:%S" } systemname(){ name=`cat?url2.txt|grep?$url|wc?-l` if?[?$name?-eq?1?];then cat?url2.txt|grep?$url|awk?'{print$1,$2}' else ????????echo?"$url" fi } sed?-i?'/^$/d'?url.add? while?read?url do [?-z?$url??]?&&?echo?"url.del存在空格?檢查文件格式"?&&?exit?1 rule=`curl?-i?-s?-k?-L?-m?10?$url|grep?-w?"HTTP/1.1?200"|wc?-l`? if?[?$rule?-eq?1?];then ????????????u=$(grep?-w?"$url"?url.txt|wc?-l) if?[?$u?-eq?1?];then? echo?"$url已存在"?>>?checkfail.log else echo?"$url"?>>?url.txt fi sed?-i?"s|$url||"?url.add? sed?-i?'/^$/d'?url.add? echo?"$(cur_time)?$url?已恢復監控"?>>?checkfail.log info=`echo?-e?"$(cur_time)?\n$(systemname)?網站恢復啦?\n$(fail_time)"` wx_ah echo?-e?"$(cur_time)?$(systemname)?網站已恢復?\n$(fail_time)"|mail?-s?"【網站恢復】"?×××@×××.com ????????else echo?"$(cur_time)?檢查$url網頁訪問失敗"?>>?/dev/null?????#checkfail.log ????????fi done<?url.add
后面寫了個傻瓜式交互腳本 將就著用吧 用戶增刪改查監控網址 sh 腳本 add 就可以批量添加監控網站了。。。。。。。。。。。。。。。。
#!/bin/bash #20190831 case?$1?in ????????add?) ?????????????????[?-z?$2?]?&&?echo?"請在add后面輸入要增加監控的網站地址?用法:?add?baidu.com"?&&?exit?1 ????????????????u=$(grep?-w?"$2"?url.txt|wc?-l) ????????????????if?[?$u?-eq?1?];then ????????????????????????echo?"$2?網站已存在"? ????????????????else ????????????????????????echo?$2?>>?url.txt ????????????????????????echo?"$2?網站已加入監控列表" ????????????????fi ????????????????;; ????????del?) ????????????????[?-z?$2?]?&&?echo?"請在del后面輸入要移除監控的網站地址?用法:?del?baidu.com"?&&?exit?1 ????????????????u=$(grep?-w?"$2"?url.txt|wc?-l) ????????????????if?[?$u?-eq?1?];then ????????????????????????sed?-i?"s|$2||"?url.txt ????????????????????????sed?-i?'/^$/d'?url.txt ????????????????????????echo?"$2?網站已刪除"? ????????????????else ????????????????????????echo?"$2?網站未找到" ????????????????fi ????????????????;; ????????update?) ????????????????vi?url2.txt ????????????????;; ????????dis?????) ????????????????cat?url.txt|sort|uniq?-c ????????????????;; ????????back?) ????????????????cp?url.txt?url.bk ????????????????echo?"監控列表備份文件url.bk" ????????????????;; ????????disuniq?) ????????????????cp?url.txt?url.bk ????????????????cat?url.txt|sort|uniq?-c|awk?'{print$2}'?>?url.new ????????????????cat?url.new?>?url.txt ????????????????rm?-rf?url.new ????????????????sed?-i?'/^$/d'?url.txt ????????????????echo?"監控列表去重完成?備份文件?url.bk" ????????????????;; ????????*?) ????????????????echo?"-----------`date`-----------------" ????????????????echo?"sh?$0?add???????增加監控網站" ????????????????echo?"sh?$0?del???????刪除監控網站" ????????????????echo?"sh?$0?update????修改網站聯系人信息" ????????????????echo?"sh?$0?dis???????顯示監控列表" ????????????????echo?"sh?$0?back??????備份監控列表" ????????????????echo?"sh?$0?disuniq???監控列表去重" ????????????????echo?"----------------------------------" ????????????????;; esac
順帶常用的crontab調用頻率 使用看舊版本博客。
*/5?*?*?*?*?sh?/root/check.sh */1?*?*?*?*?sh?/root/checkadd.sh 0?0?*?*?*?echo?>?url.del
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。