最近linux實訓做了Web服務器的監控這個課題,網上查找了教程后,綜合了一些牛人的帖子和自己的心得給大家發一篇比較完整的教程。
一:安裝mailx,配置sendmailx。
yum install –y mailx
修改/etc/mail.rc添加以下配置,輸入vim /etc/mail.rc
set [email protected]
set smtp=smtp.163.com
set smtp-auth-user=xxx #網易郵箱名
set smtp-auth-password=xxx #這里要寫SMTP授權碼,需要到郵箱設定
set smtp-auth=login
當然這里也可以用其他郵箱,比如qq郵箱,只需改一下上面的代碼就可以了
使用mail命令發送郵件:
echo "郵件內容"|mail -s 標題 [email protected] -s 標題 [email protected] < file
163開通SMTP授權碼:
1、進入郵箱首頁后,點擊設定
2、選擇POP3/SMTP/IMAP
3、在彈出的頁面中勾選POP3/SMTP服務
4、彈出設定授權碼提醒,點擊確定
5、勾選設定授權碼位置后面的開始
6、彈出驗證資訊,通過手機號驗證碼。如果沒有系結手機號需系結后再操作。
7、輸入獲取的驗證碼,每天只有三次機會,最好別浪費。
8、設定授權碼,需要輸入兩遍,一定要記住。
9、彈出一個小視窗,點擊確定即可。
10、可以看到設定授權碼已開啟,開啟成功。開啟成功后,手機會收到一條短信,其中就有授權碼資訊。
11、同時SMTP/POP3服務開啟成功。
二:撰寫要進行監控的檔案url。
在root檔案目錄下:
vim url
輸入要進行監控的網址,例如我要監控的是一個域名,所以檔案中的內容是:
www.xxx.com
三:撰寫監控腳本monitor.sh。
在root檔案目錄下:
Vim monitor.sh
撰寫腳本:
#!/bin/bash
#監控web服務并郵件提醒
while true
do
Mail="[email protected]" #記得把這個郵箱修改成你的
FailCount=0
Retval=0
GetUrlStatus() {
for ((i=1;i<=3;i++)) #使用i++判斷訪問次數,如果wget兩次超時則判斷網站例外
do
wget -T 3 --tries=1 --spider ${1} >/dev/null 2>&1 #-T超時時間,--tries嘗試1次,--spider蜘蛛
[ $? -ne 0 ] && let FailCount+=1; #訪問超時時,$?不等于0,則FailCount加1
done
Date=`date +%F" "%H:%M`
if [ $FailCount -gt 1 ];then
Retval=1
echo "check fail!!!,sendmail....."
## 使用mutt
#echo -e "Date : $Date\nProblem : $url is not running." | mutt -s "web server Monitor" $Mail
echo "Date : $Date \n Problem :$url服務掛了" | mailx -v -s "服務監控提醒" $Mail
else
Retval=0
echo "Date : $Date $url is running."
fi
return $Retval
#如果回傳值為0,就正常退出回圈,不為0則繼續回圈
}
for url in `cat url | sed '/^#/d'`
do
#GetUrlStatus $url && echo yes || echo no GetUrlStatus $url
done
sleep 600 #死回圈,設定每600s運行一次
done
上面這個代碼是網上搬來的,實測能用。
四:啟動腳本,將echo輸出至指定檔案monitor.log。
bash monitor.sh
nohup sh monitor.sh >> monitor.log &
五:退出系統之后重新登錄查看腳本運行狀態。
ps -ef|grep monitor
六:查看monitor.log及郵箱驗證。
到了這一步,我們先把我們的網站給關閉先這里我使用比較直接的方法,直接關閉httpd行程。
systemctl stop httpd
關閉網站之后就可以查看monitor腳本并觀察是否有郵箱報錯郵件發過來。
cat monitor.log
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/118933.html
標籤:系統維護與使用區
