豆子最近用CentOS7配置了个Nagios服务器,监控服务器,交换机,打印机,Netapp等设备。Nagios的邮件我是通过sendmail转发到本地的一个Exchange服务器上的。

最近需求变化,SMTP的转发需要转到Office365上面,因为对Office365不太熟悉,我花了2个小时的时间来学习怎么处理这个问题。

Office365支持3种SMTP的转发场景。

https://technet.microsoft.com/en-us/library/dn554323%28v=exchg.150%29.aspx

对于我来说,我的Nagios服务器不需要作为其他服务器的邮件转发,因此使用第二种方式 Client Submission SMTP 就可以了。简单的说就是,只要Office365上有的邮件账号,我让Nagios直接用这个账号发邮件就行了。

我公司的AD和邮件已经和Office365同步了,因此直接使用现有的邮件就可以了

在配置客户端之前,先来试试看是否能够进行SMTP的Relay转发。传统的测试方式是Telnet连接,然后测试,Powershell4自带了Send-MailMessage的命令,因此可以直接运行测试。

如果没有问题,那应该很快就能收到,请注意发信人和验证用户,密码必须一致。不能说我用李四的邮箱账号验证,但是去拿张三的邮箱发信,除非设置了SendAs的权限。

测试命令截图

现在看看客户端(Nagios)如何配置。

我之前使用的是Sendmail,但是在新版本里面,他会强制进行证书验证,不然直接报错。刚好最近考RHCE,豆子这次打算用Postfix试试看。

Postfix的空客户端转发我已经很熟悉了,参见

http://beanxyz.blog.51cto.com/5570417/1609531

这个转发给Office365的区别其实就是多配置一个用户名密码的验证文件,然后强制他从某个邮箱发送,而不是默认的user@myorigin 的格式。

首先创建一个用户名,密码的文件

vim /etc/postfix/sasl_passwd

然后添加以下信息

[smtp.office365.com]:587 nagios@xxx.com:password

方括号里面是office365的smtp地址,587是端口号, 后面是用来验证的邮箱用户名和密码

然后我们需要转化成postfix可以识别的格式

postmap hash:/etc/postfix/sasl_passwd

最后在主配置文件里面添加以下信息

relayhost = [smtp.office365.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_security_level = may
smtp_sasl_security_options = noanonymous

IP协议记得改成ipv4,不然office365服务器默认是ipv6的地址,会报错

inet_protocols=ipv4

mydestination设为空

mydestination=

重启postfix,这样基本上就可以工作了。

可以测试下,比如指定从 nagios@xxx.com发个邮件给abc@test.com

echo 'test smtp' | mail -r nagios@xxx.com -s 'test email' abc@test.com

不出意外的话,应该可以收到了。 如果等了半天没反应,可以查看日志判断报错

比如

[root@sydnagios postfix]# tail /var/log/maillog
Apr  9 09:22:53 sydnagios postfix/pickup[20595]: 8215039D9A9: uid=1001 from=<nagios@aus.ddb.com>
Apr  9 09:22:53 sydnagios postfix/cleanup[44919]: 8215039D9A9: message-id=<5525b84d.6PVA0r3rChf2lRe/%nagios@aus.ddb.com>
Apr  9 09:22:53 sydnagios postfix/qmgr[63629]: 8215039D9A9: from=<nagios@aus.ddb.com>, size=748, nrcpt=1 (queue active)
Apr  9 09:23:03 sydnagios postfix/smtp[44921]: 8215039D9A9: to=<italerts@aus.ddb.com>, relay=smtp.office365.com[132.245.164.34]:587, delay=9.6, delays=0.01/0/9/0.59, dsn=2.6.0, status=sent (250 2.6.0 <5525b84d.6PVA0r3rChf2lRe/%nagios@aus.ddb.com> [InternalId=20280835574078, Hostname=SIXPR04MB0462.apcprd04.prod.outlook.com] Queued mail for delivery)
Apr  9 09:23:03 sydnagios postfix/qmgr[63629]: 8215039D9A9: removed
Apr  9 09:24:42 sydnagios postfix/pickup[20595]: B3F7539D9A9: uid=1001 from=<nagios@aus.ddb.com>
Apr  9 09:24:42 sydnagios postfix/cleanup[45911]: B3F7539D9A9: message-id=<5525b

Postfix没问题的话,最后修改以下Nagios的配置文件就行了。

打开 command.cfg

# 'notify-host-by-email' command definition
define command{command_name    notify-host-by-emailcommand_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -r nagios@XXX.com -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$}
# 'notify-service-by-email' command definition
define command{command_name    notify-service-by-emailcommand_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -r nagios@XXX.com -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$}

重启Nagios

systemctl restart Nagios

大功告成!

转载于:https://blog.51cto.com/beanxyz/1630221

Nagios/Postfix 转发警报邮件到Office365相关推荐

  1. 如何在Postfix中设置邮件转发

    如何在Postfix中设置邮件转发 2016年1月5日 Mail服务 Postfix 是广泛使用的邮件传输代理(MTA)服务器,可用于发送,接收和通过网络发送的电子邮件转发.本教程将帮助您配置Post ...

  2. Postfix的bcc邮件备份

    发送附件所受的限制有: 用户邮箱的总容量.例如:用户邮箱为 10M,你不可能给他发一个 11M 大的附件. PHP 里设置的可上传文件的大小.例如:PHP 里设置最大可上传文件为 10M,你不可能通过 ...

  3. nagios 整合 ganglia 设置邮件、短信报警

    要学的东西还有很多呢,慢慢来~! 环境: 操作系统:ubuntu 10.10 软件:ganglia-monitor 3.1.7-1,gmetad 3.7.1-1,nagios 3.2.1-2 步骤: ...

  4. [RHEL] RHEL7.0 下 Postfix + Dovecot 实现邮件发送

    RHEL7.0 下 Postfix + Dovecot 实现邮件发送 一.前言 大家都对邮件服务(mail service)很感兴趣嘛.我在自己 博客站 预言了自己会实战一次,访问量一天到十几(毕竟平 ...

  5. Postfix + Extmail 企业邮件服务器搭建

    ExtMail套件用于提供从浏览器中登录.使用邮件系统的Web操作界面,而Extman套件用于提供从浏览器中管理邮件系统的Web操作界面.它以GPL版权释出,设计初衷是希望设计一个适应当前高速发展的I ...

  6. pop3 postfix 命令_postfix 邮件服务的安装及详解

    该实验系统:cetnos 6.5 sendmail:性能好,设置复杂,适合老手 qmail:体积小260+k,模块化.需要做二次开发,适合对邮件性能有要求的 postfix:前身是sendmail,p ...

  7. 恐怖袭击警报邮件暗藏木马

    网络犯罪者假借迪拜.巴林岛.土耳其.加拿大执法机构官员的名义发送恐怖袭击警报邮件,实质上这些邮件是暗藏Sockrat后门的钓鱼邮件. 本月早些时候,赛门铁克发现恶意邮件冒用阿拉伯联合酋长国执法部门(尤 ...

  8. LAMP+Postfix+Dovecot+SquirrelMail邮件服务器搭建

    LAMP+Postfix+Dovecot+SquirrelMail邮件服务器搭建 前段时间介绍过了在RHEL5下如何搭建LAMP环境,今天来介绍如何在LAMP下搭建邮件服务器,这一篇是构建基于post ...

  9. postfix+squirrelmail实现邮件服务器

    postfix+squirrelmail实现邮件服务器 [root@localhost ~]# vim /etc/sysconfig/network [root@localhost ~]# hostn ...

最新文章

  1. multipart/form-data ajax 提交问题(未解决)
  2. golang goroutine实现_golang技术随笔(二)理解goroutine
  3. 2022,普平数据中心招聘来啦!
  4. canvas并查集画随机迷宫
  5. gridreport如何设置打印3次_如何设置光固化3D打印机切片参数
  6. catia怎么进入装配_CATIA教程之常见去参方法
  7. CentOS 7 安装 Python 3.6
  8. 如果你想提高创新,那么本书就是答案
  9. [OrCad电路板设计系统].Orcad.Pspice.9.2下载安装
  10. Tiny4412 小试牛刀
  11. bat脚本变量赋值输出时提示”ECHO 处于关闭状态“
  12. 手把手教会使用YOLOv5训练VOC2007数据集
  13. 金盾2016视频加密器修改播放器多机播放遇到的问题
  14. 微信小程序设置单个页面自定义头部加背景图
  15. 【电力电子】【2012.07】基于功率因数校正的三相整流器设计与仿真
  16. spark-streaming 编程(三)连接kafka消费数据
  17. 阿里云数据及api服务
  18. 女生应该怎样心疼自己的男朋友?
  19. 题目:输入一个8bit数,输出其中1的个数,只能使用1bit全加器
  20. Fastboot使用详解

热门文章

  1. fir.im 全名 Fly It Remotely ,是一个为移动开发者服务,FIR一个免费的App托管平台
  2. fastdfs 测试客户端_Nginx+FastDFS+MacOS图片服务器的搭建
  3. 输入一个数寻找丑数C语言,数据结构与算法试题80道.doc
  4. java复制两个对象报异常_Java中复制两个不同类的对象的属性
  5. RDMA技术详解(三):理解RDMA Scatter Gather List
  6. 计算机二级7月考试,2020年计算机二级MS Office考试每日一练(7月27日)
  7. opencv颜色识别java,Opencv颜色识别与追踪
  8. Redis复制的高可用详解
  9. Sql Server XML
  10. [Swift]LeetCode206. 反转链表 | Reverse Linked List