利用 msmtp+mutt+shell来实现邮件告警

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

场景:

需要对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脚本发送邮件告警






      本文转自卫庄的痛 51CTO博客,原文链接:http://blog.51cto.com/crfsz/1892394,如需转载请自行联系原作者


相关文章
|
机器人 关系型数据库 MySQL
shell脚本实现文件自动清理并推送钉钉机器人告警
shell脚本实现文件自动清理并推送钉钉机器人告警
292 1
|
Shell 开发工具
【优化篇】telegraf+shell脚本实现秒级的服务状态异常监测与告警
【优化篇】telegraf+shell脚本实现秒级的服务状态异常监测与告警
383 0
|
Shell 开发工具
【shell脚本】Graylog服务状态异常监测与告警
【shell脚本】Graylog服务状态异常监测与告警
188 0
|
8月前
|
Prometheus Kubernetes 监控
Kubernetes监控:Prometheus与AlertManager结合,配置邮件告警。
完成这些步骤之后,您就拥有了一个可以用邮件通知你的Kubernetes监控解决方案了。当然,所有的这些配置都需要相互照应,还要对你的Kubernetes集群状况有深入的了解。希望这份指南能帮助你创建出适合自己场景的监控系统,让你在首次发现问题时就能做出响应。
473 22
|
存储 监控 安全
邮件告警通知
【10月更文挑战第20天】
|
监控 Unix Shell
Nightingale——夜莺监控系统部署邮件告警系统【三】
Nightingale——夜莺监控系统部署邮件告警系统【三】
238 1
Nightingale——夜莺监控系统部署邮件告警系统【三】
|
Shell Linux 数据库
【Shell 命令集合 网络通讯 】Linux 更新邮件别名数据库 newaliases命令 使用指南
【Shell 命令集合 网络通讯 】Linux 更新邮件别名数据库 newaliases命令 使用指南
177 1
|
监控 Shell API
shell监控脚本告警通过微信外发
shell监控脚本告警通过微信外发
354 1
|
安全 机器人 Shell
shell脚本实现Linux磁盘空间超过阈值自动钉钉机器人告警
shell脚本实现Linux磁盘空间超过阈值自动钉钉机器人告警
261 0
|
Prometheus 运维 Cloud Native
【2023】Prometheus-接入Alertmanager并实现邮件告警通知
【2023】Prometheus-接入Alertmanager并实现邮件告警通知
1037 0