利用 msmtp+mutt+shell来实现邮件告警
2017-01-16 20:17
381 查看
场景:
需要对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
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
二、安装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
###############
脚本解释
通过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="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:1、邮件告警在生产环境中还是比较常用的,可利用sql进行表格拆分发送邮件。
2、利用python xlwt模块生成excel,及python脚本发送邮件告警
需要对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
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
二、安装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
###############
脚本解释
通过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="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:1、邮件告警在生产环境中还是比较常用的,可利用sql进行表格拆分发送邮件。
2、利用python xlwt模块生成excel,及python脚本发送邮件告警
相关文章推荐
- 利用mutt和msmtp实现邮件自动发送功能
- 利用mutt和msmtp实现邮件自动发送功能
- 利用mutt和msmtp实现邮件自动发送功能
- linux脚本发送邮件 shell发送邮件(使用 msmtp+mutt+shell来实现)
- Linux下利用msmtp+mail+shell来发送邮件。
- linux下msmtp+mutt+shell发送邮件
- centos配置mutt和msmtp实现邮件发送
- 利用linux mutt 发送邮件(在Shell脚本中使用比较方便)
- Zabbix利用msmtp+mutt发送邮件报警
- Ubuntu14.04下配置mutt和msmtp来实现邮件发送
- Zabbix利用msmtp+mutt发送邮件报警
- zabbix利用mutt和msmtp配置邮件报警
- SHELL要发送HTML这类邮件的话,还得靠msmtp 和 mutt
- mutt+msmtp实现在shell环境中发送电子邮件
- zabbix使用脚本发送外网邮件告警(msmtp + mutt)
- CentOS搭建msmtp+mutt实现邮件发送
- shell脚本远程监控服务器,并用mutt+msmtp发送报警邮件
- MUTT+MSMTP利用163服务器发送邮件
- 利用python,shell,crontab实现成绩自动查询和更新邮件提醒
- 利用linux mutt 发送邮件(在Shell脚本中使用比较方便)