Mutt+Msmtp如何实现邮箱报警(阿里云)

一、监控与报警

1.先来谈谈跟本文不是直接相关的问题
1)运维监控的重要性:
运维工作中比较重要的一个部分,可以说,一切线上系统都需要监控。如果没有了监控,你的服务器死机了,又或者你的Nginx服务没了,你还在一边玩耍,而老板那一端已经是火冒三丈了!

2)运维报警的重要性:
有了监控,系统能够发现问题,但是对于你还是不知道发生了什么问题。白天,你可能在公司了,你可以通过远程连接偶尔查看,但是在凌晨三点钟呢?想必如果有人能够及时给你发条短信,发个邮件(注意不要关机,静音哦),一听到这个消息声音,你就会知道今晚也许会是个不眠夜。绝对是服务器出现故障了,女朋友半夜找我有事,这辈子都是是不可能的了,单身狗不需要考虑其他信息。打开电脑开始干活就对了。

3)那么,究竟什么是监控?
一种实时获取某种对象的 状态、信息 的手段。 人类社会中,监控无处不在,现在的摄像头,真的装到了厕所门口了; 手段各式各样,各种xx事件,针孔摄像头,没有什么是人类做不到的。在我们的运维工作中,监控的主要对象是和企业业务相关的各种服务器硬件状态,服务运行状态,员工操作记录等。

4)为什么要监控?
没有绝对稳定的系统,我们假定问题一定会出现, 监控是 为了能够及时的发现,并及时的处理问题。

5)现在的监控系统比较多,众多开源小工具(只针对某种对象),
一些相对综合的项目(同时集成各个对象的监控),某些开源组件自带的 状态显示功能(例如 Nginx 的 status 模块)成熟,产品化的开源组件 (nagios、cacti、zabbix )商业软件 (博睿/听云, 监控宝等 )

这一篇就暂时不谈这些开源监控的组件,后面我应该会详细讲解
回归正题,当我们写了一个小监控脚本,想要通过邮箱报警时,也许你会遇到跟我一样的问题,不知道怎么去配置,我也是参考别人的,然后再变成自己的。下面我就来讲讲我是怎么操作的:

二、邮件发送的流程以及网易邮箱的设置

1.监控发送邮件流程
Mutt+Msmtp如何实现邮箱报警(阿里云)_第1张图片
2.网易邮箱的设置
没有网易邮箱可以去注册一个。登录邮箱,看到如下界面,然后点击:
设置→POP3/SMTP/IMAP
Mutt+Msmtp如何实现邮箱报警(阿里云)_第2张图片
勾选图中表示的两个,以及记下SMTP服务的地址。
Mutt+Msmtp如何实现邮箱报警(阿里云)_第3张图片
点击:客户端授权密码→开启→手机验证→设置自己的密码→弹出授权码
这个密码最好是 : 数字+小写字母 8位以上
把授权码记下来,如果忘记了就点击 重置授权码。
Mutt+Msmtp如何实现邮箱报警(阿里云)_第4张图片

三、编译软件包的过程 :

1.从网上下载msmtp的包:(该链接不一定长期有效)

wget http://marlam.de/msmtp/releases/msmtp-1.6.5.tar.xz

2.解压压缩包msmtp-1.6.5.tar.xz

tar xvf msmtp-1.6.5.tar.xz

3. 进入到该目录下:cd msmtp-1.6.5
在编译安装前,先把需要的环境装了,比如gcc等

yum install gcc openssl openssl-devel
#安装 GCC 编译软件。

[root@mutt-88 ~]# ./configure --prefix=/usr/local/msmtp --with-ssl=openssl && make && make install
#--prefix配置安装的路径
#跟阿里云客服确认对smtp服务的加密端口465是没有封闭的,于是我们就可以利用加密端口进行,在编译的安装时候记得一定要加上--with-ssl=openssl,否则msmtp不支持ssl
#make && make install  是执行make如果没有发生错误就执行make install,&& 表示的是与的意思

安装完毕!如果安装过程报错了,可以根据错误提示来排查,具体就不贴出来了。

四、配置相关文件

1.建立 msmtp 的 配置文件。
手动编辑 配置文件

[root@mutt-88 ~]# vim /root/.msmtprc
[root@mutt-88 ~]# cat /root/.msmtprc 
defaults
logfile /var/log/msmtp/msmtp.log

# The SMTP server of the provider.
account 163
 
# SMTP邮件服务器地址
host smtp.163.com

#SMTP邮件服务器加密端口
port 465

# 发送的邮件Email
from s_1xxxxx7@163.com

auth login
# 邮件服务器登录账号,自己的邮箱账号
user s_1xx2xxx7@163.com

#开启tls认证,加密传输
tls on
 
tls_starttls off
tls_certcheck on
#证书的路径,我的是不用改的刚好有,如果不同,根据实际改
tls_trust_file /etc/ssl/certs/ca-bundle.crt
 
# 163邮箱的授权码
password xxxx7

# Set a default account
account default : 163

2.配置 Linux 主机能联网,能 ping 通 smtp.163.com
具体配置就不贴了,总之能联网能ping得通就可以了。

[root@mutt-88 ~]# ping smtp.163.com
PING smtp.163.com (220.181.12.18) 56(84) bytes of data.
64 bytes from m12-18.163.com (220.181.12.18): icmp_seq=1 ttl=52 time=27.4 ms
64 bytes from m12-18.163.com (220.181.12.18): icmp_seq=2 ttl=52 time=27.4 ms
64 bytes from m12-18.163.com (220.181.12.18): icmp_seq=3 ttl=52 time=27.4 ms
64 bytes from m12-18.163.com (220.181.12.18): icmp_seq=4 ttl=52 time=27.4 ms
^C
--- smtp.163.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 27.433/27.460/27.489/0.022 ms

3.安装 Mutt 写作软件:

yum install mutt

安装完成后,打开配置文件 vim /etc/Muttrc , 该文件共有4800 多行在set 段的位置,添加如下设置。

set sendmail="/usr/local/msmtp/bin/msmtp"  #msmtp主程序所在位置。
set use_from=yes
set realname="Shaun"     ## 发件人的真实 姓名
set from= 你的邮箱地址     ## 发件人的 邮件地址 
set envelope_from=yes
set editor="vim"

Mutt+Msmtp如何实现邮箱报警(阿里云)_第5张图片

五、进行发邮件测试

[root@mutt-88 ~]# echo  "Test"|mutt -s "test"  s_134xxxxx7@163.com
[root@mutt-88 ~]# cat /var/log/msmtp/msmtp.log 
Jul 28 18:24:53 host=smtp.163.com tls=on auth=on user=s_1xxxxxxxx7@163.com from=s_1xxxxxxxx7@163.com recipients=s_1xxxxxx7@163.com mailsize=309 smtpstatus=250 smtpmsg='250 Mail OK queued as smtp10,DsCoxxBxxxdfxxcHA--.35876S2 15643088793' exitcode=EX_OK

从日志中可以看出,邮件发送成功的信息。
我们还可以从自己的邮箱查看信息看有没有邮件:
Mutt+Msmtp如何实现邮箱报警(阿里云)_第6张图片

你可能感兴趣的:(监控与报警,阿里云,Mutt,邮件报警,Msmtp)