关于zabbix发送报警邮件25端口不通问题的解决方案

写这篇文章的目的不是别的,今年在阿里云的centos7上安装了zabbix3以上版本,我可以直接说明不是zabbix最新版本,安装路上根据之前总结文档一顿操作,ok,一切正常,zabbix服务器正常启动,界面也正常,直至报警调试自带mail报警,发现并没有收到邮件。

于是手动测试邮件发送,发现失败了,。。。。失败了。然后各种百度找资料,一瞬间发现很多文档,最多的就说阿里云禁用了邮件服务器的25端口,而mail默认走25。            既然发现问题,那就是解决问题,于是各种尝试改配置文件端口,生成cert证书之类,不行,不行、不行,各种问题各种不行,后来终于找到一篇正常解决问题的文章,也是生成cert文件,但是发现在root下会有zabbix用户访问不到的权限问题,于是果断更改目录。

这里需要说明下,我是申请的163邮箱(如果你是qq,证书名称什么的都会不一样,具体我没有研究),开启了POP3/SMTP服务(必须开启并且记录密码)

生成证书cd /usr/lib/zabbix/alertscripts/mkdir .certsecho -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crtcertutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crtchown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/.certs

在mail.rc结尾添加set smtp="smtps://smtp.163.com:465"set [email protected](你的邮箱用户名)set [email protected](你的邮箱用户名)set smtp-auth-password=xxxxxxxxx(为163邮箱放通的POP3/SMTP服务密码)set smtp-auth=loginset ssl-verify=ignoreset nss-config-dir=/usr/lib/zabbix/alertscripts/.certs

创建报警脚本send_mail.sh#!/bin/bashDATETIME=date +%Y%m%d%H%Mto=$1subject=echo $2|tr '\r\n' '\n' (此处如果脚本不进行这么设置,那么邮件是可以发送,但是报警详情发送回有问题,不全或者是附件形式,所以进行一些处理)body=echo $3|tr '\r\n' '\n'email_File=/tmp/email.log-m "$body" >>$email_Fileecho "$body" | mail -v -r "[email protected]" -s "$subject" $to >>$email_File (你的邮箱用户名)chown -R zabbix:zabbix send_mail.sh

重启zabbix服务端/etc/init.d/zabbix-server restart

之后配置zabbix报警系统即可成功报警,虽然最后可能回提升证书失效,但是不影响邮件发送,不必理会,还有初次接受报警邮件可能回在黑名单或者垃圾邮件中,注意加白。短信和微信报警也有,需要的小伙伴可以留言

原文地址:http://blog.51cto.com/huangmoumou/2131408

时间: 2024-08-29 15:47:28

关于zabbix发送报警邮件25端口不通问题的解决方案的相关文章

使用Zabbix服务端本地邮箱账号发送报警邮件的部署记录

邮件报警有两种情况:1)Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:[email protected]),只能发送,不能接收外部邮件.2)使用一个可以在互联网上正常收发邮件的邮箱账号(例如:[email protected]),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱.上面第2中使用外部邮箱发送报警邮件之前已经介绍了:分布式监控系统Zabbix-3.0.3-完整安装记录(5)-邮件报警部署.下面说下

linux服务器发送报警邮件

由于公司业务需要,领导要求发送报警邮件,在我的认知中应该是有两种,一种是将服务器搭建为邮件服务器,这种可以使用postfix或者sendmail等,但是配置相对比较复杂,对运维人员水平要求也比较高.其实完全没有必要这么做.这就说到我们的第二种方法了,可以调用第三方邮件服务器.我们公司有自己的邮件服务器,所以直接新建了个账户,然后在这台需要发送的服务器上进行配置就可以了.服务器是centos6.8的系统.配置是在/etc/mail.rc这个文件中配置的.主要有以下几个配置项需要调整 [[email

定时监控所有服务器的端口,如果挂起,发送报警邮件

功能:1:ping所有网内机器的IP地址,如果不通,发送报警 2:检测网内所有机器的服务端口,如果不通,发送报警 #!/bin/bash ##读取IP列表,测试ip的某个端口## while read ip1do ping -c 2 $ip1 >> /dev/null 2>&1 if [ $? -eq 0 ]; then echo "************************"echo "ping $ip1 ,ok" elseecho

解决阿里云邮件发送不能使用25端口问题

本地测试发邮件功能很流畅,部署到阿里云上以后发现总是NOT FIND,这就很奇怪.开始以为是url写错了导致的,检查N多遍发现完全一毛一样的.后来各种百度,发现是因为阿里云禁用了25端口导致的.查看各种资料,解决的办法五花八门.试了几种解决方案,都解决了问题.现在整理如下:(不用去尝试申请解禁25端口的,可以很认真负责的告诉你,完全没有卵用) 首先,是阿里大大给的官方的解决方案,用SMTP发送邮件:代码如下 # -*- coding:utf-8 -*- import urllib, urllib

云服务器 zabbix 配置报警邮件

配置邮件报警功能 1.在 zabbix 服务器上安装 mail 服务 : yum install mailx -y 问题:could not connect: Connection timed out "/root/dead.letter" 11/318 . . . message not sent. 分析:阿里云服务器关闭了25端口,发送邮件连接不上服务器的缘故,而且官方不允许打开该端口 一.请求数字证书 依次完成以下命令 mkdir -p /data/.certs/ chmod -

Python3 实现简易ping监控并发送报警邮件

Python3 实现简易ping监控并发动报警邮件 1.实现原理通过ping命令结果获取丢包率和延时情况,当丢包率和延时达到预设值时,将结果作为邮件内容,并发送邮件 2.邮件是用smtplib和email实现发送的 3.目前脚本有个小问题就是:我打开文件,循环读,当读第一行时,我执行ping,获取结果,把结果写到一个文件里,同时判断是否达到预设值,如果达到,就把结果加到邮件内容,就这样一直循环,当把文件读完,然后关闭这两个文件,再发送邮件.总学得有点问题,应该将结果存到一个列表,一次性写入.算了

python脚本发送报警邮件

最近在搞把nagios报警邮箱换到163.sina这种免费邮箱上边,之前用过msmtp搞过也可以发送邮件,现在估计是他们系统都升级了,只能使用TSL加密连接,而msmtp怎么配置都配不通,无奈只能转移战术,正好最近在学习Python,也不知道从哪瞄到过有个email的模块,所以准备试试自己搞个脚本. (新手,无编程基础,希望多多指教) -----2016.1.4 修改---- 前提: 更改nagios/etc/object/command.cfg里发送邮件的command配置,例如我这样: # 

阿里云服务器 发送邮箱 STMP 25端口 465端口问题 Javamail 25被禁用

我们传统使用的比较简单的是 STMP 25端口收发邮件 今天发现刚购买的阿里云服务器不能作为客户端通过STMP 25端口发送邮件 开始在网上有说发现是JDK1.8的原因,然后自己也把JDK1.8换到了JDK1.7 还是不行,所以这里排除了JDK的原因. 那么问题来了,是否25端口不能连接适用喃? 然后在终端输入命令行 ,可测试25端口是否可连接. telnet smtp.163.com 25 返回成功 说明你的服务器 是没有封掉25端口的.上面的图是我自己的电脑,当然能连通. 当换到服务器测试的

Centos 6.5 服务器下面配置邮件客户端 发送报警邮件

以Centos 系统为例,确保服务器可以正常连接外网 Centos 6.5 下面默认 安装 postfix 查看 rpm -qa | grep postfix postfix-2.6.6-2.2.el6_1.x86_64 配置邮件客户端 set [email protected] set smtp=smtp.163.com set [email protected] set smtp-auth-password=UserPassword set smtp-auth=login 发送测试邮件  e