搜诶符合你 发表于 2019-1-19 10:33:37

Zabbix监控之邮件发送失败

  原始问题背景:
  前几天运维同事突然发现zabbix监控上面不再发送邮件了,而zabbix的监控界面状态都是能够显示出来。因为之前出现过类似的问题,估计是163邮箱的问题,于是登陆用于告警的邮箱,直接通过网页发送邮件也同样报错,估计是邮件防垃圾服务进行了限制,需要等到第二天才能恢复(第二天确实恢复正常),但是当天如果需要继续使用zabbix的邮箱监控的话,只能通过更换告警邮箱。
  于是配置了新的邮箱qixin_monitor@163.com用于告警。
  新问题如下
# tail -n 5 /etc/mail.rc //查看mail.rc的邮箱配置
#setting for zabbix
set from=qixin_monitor@163.com smtp=smtp.163.com
set smtp-auth-user=qixin_monitor smtp-auth-password=test_haha16
set smtp-auth=login
# echo “mail content”|mail -s test 17701754487@163.com
# smtp-server: 550 User has no permission //550报错
"/root/dead.letter" 11/316
. . . message not sent.  报错显示用户没有权限,而之前的邮箱clovemfeng@163.com却是OK的
  1. 查找两个邮箱的配置
  http://s3.运维网.com/wyfs02/M01/74/5E/wKiom1YbXfSjigOPAAgjbD33wMk108.jpg
  
  
  http://s3.运维网.com/wyfs02/M01/74/5B/wKioL1YbXoGhwqQgAAhU9vOpKp4771.jpg
  发现两个邮箱的POP3/SMTP/IMAP的状态不一致,于是开通qixin_monitor@163.com的客户端授权密码。
  2. 开通客户端授权密码
  
http://s3.运维网.com/wyfs02/M02/74/5B/wKioL1YbXvih01XPAAL5JMdLkh0229.jpg
http://s3.运维网.com/wyfs02/M02/74/5B/wKioL1YbXvjTQ7HcAAHnQ2bOl1Y180.jpg
  http://s3.运维网.com/wyfs02/M00/74/5E/wKiom1YbX02hNhwuAAOfj0jYdcg457.jpg
  
  该步骤是需要手机号码验证并绑定手机的
  假设其客户端授权密码为:fdfdterefcstewrere

  3. 测试邮箱发送
  # echo “mail content”|mail -s test 17701754487@163.com
  # smtp-server: 535 Error: authentication failed
  "/root/dead.letter" 11/316
  . . . message not sent.
  发现竟然报535错误,用户名与密码验证失败。
  4. 手动测试密码
  既然通过mail命令直接发送有问题,于是笔者做了如下几件事情:
  (1)通过telnet命令验证用户名跟密码
  # telnet smtp.163.com 25
  Trying 220.181.12.13...
  Connected to smtp.163.com.
  Escape character is '^]'.
  220 163.com Anti-spam GT for Coremail System (163com)
  HELO 163.COM
  250 OK
  AUTH LOGIN
  334 dXNlcm5hbWU6
  cWl4aW5fbW9uaXRvcg==
  334 UGFzc3dvcmQ6
  UWl4aW5AMTIz
  535 Error: authentication failed
  (其中用户名跟密码均做了base64编码转换,echo -n username/password |base64)
  (2)测试原来的clovemfeng@163.com
  发现竟然可以成功登陆。
  # telnet smtp.163.com 25
  Trying 220.181.12.13...
  Connected to smtp.163.com.
  Escape character is '^]'.
  220 163.com Anti-spam GT for Coremail System (163com)
  HELO 163.COM
  250 OK
  AUTH LOGIN
  334 dXNlcm5hbWU6
  Y2xvdmVtZmVuZw==
  334 UGFzc3dvcmQ6
  UXhAbW9uaXRvciMxMjM=
  235 Authentication successful
  (3)继续尝试?
  这两个账号有什么不同?初步看来,用户名跟密码不一样!! 用户名无法修改,那么我把密码改成一样的总行了吧?
  但是结果仍旧是535 Error: authentication failed,后来甚至注册了一个用户名没有特殊字符,但是还是失败。
  5. 回归邮箱设置检查
  继续比对新老账号的区别,登陆163.com网页邮箱继续查看,发现如下区别
http://s3.运维网.com/wyfs02/M02/74/5B/wKioL1YbX62iIjXgAAFynRq9O3M210.jpg
  上图是今天刚刚开通SMTP/POP3/IMAP功能的邮箱配置,生成了客户端授权密码。
http://s3.运维网.com/wyfs02/M01/74/5E/wKiom1YbYA6Chfe0AAGrj2fBpWU739.jpg
http://blog.运维网.com/e/u261/themes/default/images/spacer.gif这个是之前注册邮箱,也就是clovemfeng@163.com的配置,开通了SMTP服务,但是并没有开通客户端授权密码,因为并没有使用期IMAP服务。

  结论:
  也就是说,以前注册的邮箱是不需要什么客户端授权密码的,而新注册的却需要这个东西。
  那么,我们不管通过mail -s 也好,telnet smtp.163.com也好,角色都是客户端,那么尝试下将客户端授权密码作为配置密码试试?
  于是乎,竟然成功了!
  # telnet smtp.163.com 25
  Trying 220.181.12.13...
  Connected to smtp.163.com.
  Escape character is '^]'.
  220 163.com Anti-spam GT for Coremail System (163com)
  EHLO 163.COM
  250-mail
  250-PIPELINING
  250-AUTH LOGIN PLAIN
  250-AUTH=LOGIN PLAIN
  250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrFvEOrUCa0xDrUUUUj
  250-STARTTLS
  250 8BITMIME
  AUTH LOGIN
  334 dXNlcm5hbWU6
  cWl4aW5fbW9uaXRvcg==
  334 UGFzc3dvcmQ6
  aXB2d2RjZW1oZGp5dnV0ZQ==
  235 Authentication successful
  问题,解了~最终配置如下,其实也就是将smtp-auth-password的值从实际密码修改成了客户端授权密码。
  # tail -n 5 /etc/mail.rc

  #setting for zabbix
  set from=qixin_monitor@163.com smtp=smtp.163.com
  set smtp-auth-user=qixin_monitor smtp-auth-password=fdfdterefcstewrere
  set smtp-auth=login



页: [1]
查看完整版本: Zabbix监控之邮件发送失败