用shell+sendmail實(shí)現(xiàn)服務(wù)器監(jiān)控報(bào)警小腳本
這種email報(bào)警腳本遍地都是,很多用的sendmail、postfix,感覺(jué)有些大材小用了;也有些用perl的NET::SMTP和Authen::SASL模塊發(fā)信的,不過(guò)我perl用的不好,老發(fā)出些莫名其妙的郵件來(lái)(比如if(a>1){print(a);},最后郵件里的顯示的是0.99……);最后采用sendEmail這個(gè)成型的perl程序發(fā)信報(bào)警,而實(shí)時(shí)監(jiān)控部分回歸shell,終于完成。
wget <a >http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz</a>
tar zxvf sendEmail-v1.56.tar.gz
cp sendEmail-v1.56/sendEmail /shell/check/
cat >> check.sh <<EOF
文件--check.sh:
#!/bin/bash
checkmail() {
/usr/bin/perl ./sendEmail -f userid@mail.com -t oneuserid@mail.com –cc twouserid@mail.com threeuserid@mail.com
-u "$subject" -m "$data" -s smtp.mail.com -xu userid -xp password
sleep 300
}
while true;do
loadavg=`awk '{print $2}' /proc/loadavg`
diskuse=`df |awk '/cache/{print $5}'`
servrun=`netstat -pln|awk -F/ '/:80/{print $NF}'`
ip=`ifconfig|awk '/cast/{print $2}'|awk -F: '{if(NR==1){a=$2}else if(NR==2){b=$2}}END{print b"-"a}'`
data=`echo -e "ip:$ip\nloadavg/5min:$loadavg\tcacheuse%:$diskuse\tservice:$servrun"`
diskper=`echo $diskuse|sed 's/%//'`
num=`ps aux|grep check.sh|grep -v grep|wc -l`
if [[ $num > 2 ]];then
break 2
fi
if [[ $loadavg > 1.00 ]] && [[ $diskper > 90 ]];then
subject="warning-$ip-loadavg-disk"
checkmail
else if [[ $loadavg > 1.00 ]];then
subject="warning-$ip-loadavg"
checkmail
else if [[ $diskper > 90 ]];then
subject="warning-$ip-disk"
checkmail
fi
sleep 60
done
EOF
完成,執(zhí)行sh check.sh &> /dev/null即可。
報(bào)警郵件:
標(biāo)題:warning-192.168.0.100-10.10.10.10-disk ip:192.168.0.100-10.10.10.10 loadavg/5min:0.38 cacheuse%:94% service:nginx
- 利用Prometheus與Grafana對(duì)Mysql服務(wù)器的性能監(jiān)控詳解
- Shell腳本監(jiān)控服務(wù)器在線狀態(tài)和郵件報(bào)警的方法
- 用服務(wù)器日志監(jiān)控軟件、服務(wù)器日志分析工具軟件教你如何查看服務(wù)器日志?
- 使用apachetop實(shí)時(shí)監(jiān)控日志、動(dòng)態(tài)分析服務(wù)器運(yùn)行狀態(tài)
- CentOS服務(wù)器+監(jiān)控寶SNMP監(jiān)控全攻略分享
- Windows Server2008 監(jiān)控服務(wù)器性能的教程圖解
- ubuntu系統(tǒng)下部署zabbix服務(wù)器監(jiān)控的方法教程
- 使用KWDB3.1.0搭建一個(gè)輕量級(jí)但高性能的服務(wù)器監(jiān)控系統(tǒng)
相關(guān)文章
linux bash shell中case語(yǔ)句的實(shí)例
本文介紹下,在bash shell編程中,有關(guān)case語(yǔ)句的一個(gè)例子,學(xué)習(xí)下case語(yǔ)句的用法,有需要的朋友參考下2013-11-11
linux下自動(dòng)備份MySQL數(shù)據(jù)并上傳到FTP上的shell腳本
linux下自動(dòng)備份MySQL數(shù)據(jù)并上傳到FTP上的shell腳本,需要的朋友可以參考下2013-01-01
linux shell awk獲得外部變量(變量傳值)簡(jiǎn)介
這里提到awk,相信寫shell的朋友都會(huì)接觸到。AWK 是一種用于處理文本的編程語(yǔ)言工具2013-11-11
shell腳本打印日期時(shí)間的實(shí)現(xiàn)示例
在shell 中,可以使用 `date` 命令打印系統(tǒng)時(shí)間,本文主要介紹了shell腳本打印日期時(shí)間的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
Shell腳本實(shí)現(xiàn)memcache緩存命中率監(jiān)控
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)memcache緩存命中率監(jiān)控,這個(gè)腳本比較簡(jiǎn)單,通過(guò)check_tcp腳本獲取memcached的stats信息,然后將該信息格式化成一個(gè)字符串,然后將get_hits比上cmd_gets就能得到緩存命中率,需要的朋友可以參考下2014-12-12
linux 環(huán)境 mysql寫入中文報(bào)錯(cuò)
本篇文章主要介紹了linux 環(huán)境 mysql寫入中文報(bào)錯(cuò)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04

