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

场景:

需要对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 [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"
set [email protected]

测试:
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脚本发送邮件告警

时间: 2024-11-14 03:09:14

利用 msmtp+mutt+shell来实现邮件告警的相关文章

Zabbix利用msmtp+mutt发送邮件报警

Zabbix利用msmtp+mutt发送邮件报警Zabbix支持多种报警的方式,其中成本最低.最方便的就是邮件报警的方式了.但是因为它不支持邮件的用户认证,这种方式现在也非常少见,同时安全性也差,如果在本机建邮件服务器的话也容易被误入垃圾邮件. 现在我们使用163的邮箱或者自己公司内部的邮箱,利用msmtp+mutt完成邮件的报警.(当然也可以利用移动139的邮箱或者联通沃邮箱,可以达到短信通知) 1.msmtp的安装 wget http://jaist.dl.sourceforge.net/p

linux下msmtp+mutt+shell发送邮件

Linux下安装配置msmtp和mutt发送邮件 作者: 纵横域内 日期: 2014 年 12 月 11 日发表评论 (0)查看评论 Linux下安装配置msmtp和mutt Linux下有发送邮件的需求,mail搞不定,因为很多邮件服务器屏蔽了mail发送的请求(明显嘛,都木有发送源-_-).在网上搜了一把,使用msmtp+mutt可以搞定,记录如下. 一.安装配置msmtp1.下载.解压 msmtpwget http://downloads.sourceforge.net/msmtp/msm

zabbix使用msmtp&&mutt搭建邮件告警服务

zabbix使用msmtp&&mutt搭建邮件告警服务 zabbix可以通过脚本和邮件服务器搭建邮件告警服务,以下就是告警服务实现的流程图 关注点一: 脚本需要放在zabbix安装目录下../share/zabbix/alertscripts/目录 脚本内容 关注点二: msmtp是一个SMTP客户端. 在默认模式下,它将邮件发送到SMTP服务器(例如,163.com邮箱服务器),该服务器负责进一步的传送.要将此程序与您的邮件用户代理(MUA)一起使用,请使用邮件帐户创建一个配置文件,并告

使用mutt+msmtp在Linux命令行界面下发邮件(续)

换了新工作,好久没有更新博客了,今天继续.一年前写过一篇<使用mutt+msmtp在Linux命令行界面下发邮件>,但是最近想照着文中的办法解决新的问题时发现又有新的疑惑了,所以就有了今天这篇“续集”. 首先说说msmtp.如果你仅仅想在Linux下发送邮件,那么只靠它就能实现了,只需要配置好如何连接到相应的SMTP服务器即可,以下我就以腾讯企业邮为例,说一下具体的步骤(以下皆为root用户): 1. apt-get install msmtp 2. vi ~/.msmtprc &&a

利用linux mutt 发送邮件(在Shell脚本中使用比较方便)

>        我只讲它很小的一部分功能,因为我也是刚刚开始摸索这个软件.更多的用法请查阅官网:http://www.mutt.org 一.mutt的安装 1 yum -y install sendmail 2 #需要安装sendmail并开启防火墙的25端口,如果你需要收邮件110端口也要开 3 yum -y install mutt 二.配置信息 关于配置信息,有一点需要说明的,网上很多教程都说,编辑/root/.muttrc以修改配置文件,我想说的是,我在安装完成之后, /root目录下

zabbix系统邮件告警Python脚本

zabbix系统邮件告警配置有很多方式,如系统自带的mail,还有zabbix+msmtp+mutt,但是使用Python脚本应该来说还是一个非常简捷有效的方式.主要有如下步骤: 1.设置zabbix_server.conf文件 AlterScript = /usr/local/zabbix/share/zabbix/alterscript 2.建立告警脚本 cd /usr/local/zabbix/share/zabbix/alterscript/ sudo vim sendEmail.sh

linux服务器登录邮件告警python程序

linux服务器用户登录邮件告警python小程序,一旦有人登录服务器就发邮件通知系统管理员.作为SA有些服务器只有自己可以登录的,你懂的!可有时候会被研发坑,被运维坑.为了全面掌控服务器,配置一个用户登录系统邮件通知,是很必要滴! 比较渣渣的一个脚本,不过在次基础上可以很容易的扩展滴.直接上代码了. #!/usr/bin/python#coding:utf8import smtplibimport stringimport psutilimport datetime HOST = "smtp.

zabbix详解:(三)添加邮件告警配置

大家应该心理有底,做监控不是只为了看服务器状态,虽然那也是监控的目的之一,但绝对不是全部,大家做监控的目的肯定是想预警,甚至是出问题就告警,毫无疑问zabbix也是支持告警规则的,现在来介绍传统的添加邮件告警,后面还会介绍微信告警. 添加邮件告警配置: 关于zabbix邮件告警的原理,其实是调用脚本,然后脚本通过邮件功能来向外发邮件,后面介绍的微信告警也是通过脚本调用微信接口来做的. 所以,告警的关键,就是脚本了,其实zabbix邮件告警这个功能很多文章有写,也有很多脚本可以参考,只是大部分版本

centos6.3配置gitlab-7.10.0-omnibus && msmtp+mutt发送邮件

centos6.3配置gitlab-7.10.0-omnibus(使用smtp服务进行邮件发出) 1.依赖包安装 yum install openssh-server cronie -y #yum install postfix  //使用sendmail进行发送邮件需要安装,但是没有配置成功,这里采取smtp服务器进行邮件发出,故不再安装postfix. #service postfix start #chkconfig postfix on lokkit -s http -s ssh 2.下