場景:python
須要對redis keys值進行監控,利用crond週期執行監控腳本。若有異常,經過郵件告知。redis
1、安裝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
cd msmtp-1.4.32
make && make install
修改配置
cd /usr/local/msmtp/
mkdir etc #配置文件目錄和配置文件都要本身建
cd etc
vim msmtprc #手動建立配置文件
account default
host smtp.163.com #你的發送郵件服務器
port 25
from hotdogs112@163.com #要從哪一個郵箱發出
auth login
tls off
user hotdogs112@163.com #郵箱用戶名
password 123456 #郵箱密碼,這裏但是明文的,若是你以爲不安全能夠把文件改成600屬性
(chmod 600 /etc/msmtprc)
account default : admin
logfile /data/log/msmtp.log
2、安裝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"
set from=hotdogs112@163.com
測試:
echo "test" |mutt -s "my_first_mail" test@163.com
附加附件發送郵件
echo "test" |mutt -s "my_first_mail" test@163.com < /tmp/redis.txt
###############
sql
腳本解釋vim
經過crond週期查詢redis keys值,當redis的keys不被消費時就會發出告警郵件。安全
*/5 * * * * /bin/sh /tmp/redismonitor.sh
bash
腳本實例:服務器
#!/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="test@163.com"
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:一、郵件告警在生產環境中仍是比較經常使用的,可利用sql進行表格拆分發送郵件。
二、利用python xlwt模塊生成excel,及python腳本發送郵件告警
ide