場景:
需要對redis keys值進行監控,利用crond周期執行監控腳本。如有異常,通過郵件告知。
一、安裝msmtp
下載下傳軟體
wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2
tar -jxvf msmtp-1.4.32.tar.bz2
cd msmtp-1.4.32
./configure --prefix=/usr/local/msmtp
make && make install
修改配置
cd /usr/local/msmtp/
mkdir etc #配置檔案目錄和配置檔案都要自己建
cd etc
vim msmtprc #手動建立配置檔案
account default
host smtp.163.com #你的發送郵件伺服器
port 25
from [email protected] #要從哪個郵箱發出
auth login
tls off
user [email protected] #郵箱使用者名
password 123456 #郵箱密碼,這裡可是明文的,如果你覺得不安全可以把檔案改為600屬性
(chmod 600 /etc/msmtprc)
account default : admin
logfile /data/log/msmtp.log
二、安裝mutt
直接yum install mutt
vim /etc/Muttrc
source /etc/Muttrc.local
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set envelope_from=yes
set realname="redis keys monitor"
測試:
echo "test" |mutt -s "my_first_mail" [email protected]
附加附件發送郵件
echo "test" |mutt -s "my_first_mail" [email protected] < /tmp/redis.txt
###############
腳本解釋
通過crond周期查詢redis keys值,當redis的keys不被消費時就會發出告警郵件。
*/5 * * * * /bin/sh /tmp/redismonitor.sh
腳本執行個體:
#!/bin/bash
suffix=$(date +%Y-%m-%d -d "today")
redis-cli -h 192.168.36.1 -p 6379 llen bgm_info > /data/tmp/keys_$suffix.txt
result= cat /data/tmp/keys_$suffix.txt
if [[ 0 -eq $result ]] #當keys值等于0的時候不做任何操作,不等于零則發送告警郵件。
then
echo "nothing to do" >/dev/null 2>&1
else
subject='redis監控預警!'
to="[email protected]"
echo "redis keys monitor" | mutt $to -s $subject -e 'set content_type="text/txt"' < /tmp/keys_$suffix.txt
fi
exit 0
IF判斷語句小記:
-eq:等于
-ne:不等于
-le:小于等于
-ge:大于等于
-lt:小于
-gt:大于
note:1、郵件告警在生産環境中還是比較常用的,可利用sql進行表格拆分發送郵件。
2、利用python xlwt子產品生成excel,及python腳本發送郵件告警
本文轉自衛莊的痛 51CTO部落格,原文連結:http://blog.51cto.com/crfsz/1892394,如需轉載請自行聯系原作者