一、邮箱配置:开启smtp服务和授权

  开启smtp选项后,系统会生成一个授权,你需要记住这个授权码,后面需要写入配置文件。

二、配置管理mailx:

  (1)安装mailx:[root@zabbix-server-center ~]# yum install -y mailx

    (2)请求数字证书(这里以qq邮箱为例):

[root@zabbix-server-center ~]# mkdir -p /home/zabbix/.certs
[root@zabbix-server-center ~]# echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /home/zabbix/.certs/qq.crt
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust RSA CA 2018
verify return:1
depth=0 C = CN, ST = Guangdong, L = Shenzhen, O = Tencent Technology (Shenzhen) Company Limited, OU = R&D, CN = pop.qq.com
verify return:1
DONE

  

[root@zabbix-server-center zabbix]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d /home/zabbix/.certs -i /home/zabbix/.certs/qq.crt
[root@zabbix-server-center zabbix]# certutil -A -n "GeoTrust Global CA" -t "C,," -d /home/zabbix/.certs -i /home/zabbix/.certs/qq.crt
[root@zabbix-server-center zabbix]# cd /home/zabbix/.certs/

  

[root@zabbix-server-center .certs]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
Notice: Trust flag u is set automatically if the private key is present.
[root@zabbix-server-center .certs]# certutil -L -d /home/zabbix/.certs Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI GeoTrust SSL CA P,P,P
[root@zabbix-server-center .certs]# chown -R zabbix.zabbix /home/zabbix/

  (3)修改/etc/mail.rc文件:[root@zabbix-server-center ~]# vim /etc/mail.rc

set from=592296813@qq.com  ###用来发送邮件的邮箱账号,这里例子是qq邮箱
set smtp=smtps://smtp.qq.com:465 ###邮件服务器
set smtp-auth-user=592296813@qq.com ###发送邮件的账号
set smtp-auth-password=XXXXXXXXX ###这里是qq邮箱系统提供的“授权码”
set smtp-auth=login      ###默认login即可
set ssl-verify=ignore ###ssl认证方式,这里选择忽略
set nss-config-dir=/home/zabbix/.certs   ###申请的证书所在目录

  (4)发送邮件进行测试:

[root@zabbix-server-center ~]# echo "这里是邮件正文" | mail -s "这里是邮件主题" XXXXXXX@163.com

************************************************************************************************************************************************************************

【可跳过第三步】

三、编写邮件发送脚本:

  (1)创建shell脚本文件:

[root@zabbix-server-center zabbix]#vim /usr/lib/zabbix/alertscripts/mailx.sh

  (2)修改zabbix_server.conf配置文件中alertscripts路径(也就是存放邮件脚本的路径):

  (3)重启zabbix服务:

[root@zabbix-server-center /]# systemctl restart zabbix-server.service

  (4)设置邮件脚本文件:

#!/bin/bash
to=$1
subject=$2
body=$3
FILE=/tmp/mail.tmp
echo "$body" > $FILE
dos2unix -k $FILE    # 解决正文变成附件.bin问题,如果没有dos2unix就使用yum安装dos2unix
mail -s "$subject" "$to" < $FILE

  注意在进行脚本测试# echo "123 zabbix" |mail -s "test mail" xxx@163.com时,记得删除/tmp/mail.tmp文件,否则在后面的报警信息正文会一直显示测试命令时候的信息。

  (5)设置权限:

[root@zabbix-server-center alertscripts]#chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
[root@zabbix-server-center alertscripts]#chown zabbix:zabbix /usr/lib/zabbix/alertscripts/mailx.sh

  (6)进入zabbix的web控制台,设置报警类型:

  (7)其余配置和直接设置邮件报警一致。

************************************************************************************************************************************************************************

四、进入zabbix的web控制台:

 操作配置:

默认标题:
故障:{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME} 消息内容:
告警主机:{HOST.NAME}
告警IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE}
事件ID:{EVENT.ID}

五、测试邮件报警:

  出现以下信息,表明邮件发送是通的,可以正常发送报警邮件。

进入接受邮箱,发现已经成功接收到测试邮件:

模拟测试关闭httpd服务,不久将会收到邮件报警,如下:

好文:https://blog.whsir.com/post-4385.html

https://blog.csdn.net/qq_42988210/article/details/92050440

zabbix4.2配置邮件+脚本报警:以QQ邮箱为例的更多相关文章

  1. zabbix邮件脚本报警

    #启动邮箱服务 systemctl start postfix.service #配置用户的邮箱发送邮件 vim /etc/mail.rc set from="xxx@xxx.com&quo ...

  2. thinkphp5 邮件发送(qq邮箱为例)

    一.首先需要你开启smtp 服务,登录qq邮箱,进入设置 -> 账户 注意: 开启后会生成授权码,一定要记下,两个都记下,登录邮件客户端需要.这里配置邮件发送也需要这个授权码 二. 下载phpm ...

  3. C#发送Email邮件(实例:QQ邮箱和Gmail邮箱)

    下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用: using System.Net.Mail; using System.Text; using System.Net; ...

  4. [转]C#发送Email邮件 (实例:QQ邮箱和Gmail邮箱)

    下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用:using System.Net.Mail;using System.Text;using System.Net; 程序 ...

  5. Python3+smtplib+poplib+imaplib实现发送和收取邮件(以qq邮箱为例)

    一.说明 1.1 程序说明 (1)smtp是邮件发送协议:pop和imap都是邮件接收协议,两者的区别通常的说法是imap的操作会同步到邮箱服务器而pop不会,表现上我也不是很清楚 (2)本程序实现使 ...

  6. outlook创建收信规则,将收到的所有邮件,转发到qq邮箱,然后删除

    因为outlook默认只有400M的空间. 使用企业邮箱的时候,很快就满了. 本来是打算在qq邮箱中,添加其他邮箱来收取的. http://service.mail.qq.com/cgi-bin/he ...

  7. PHPEmailer使用简介(以qq邮箱为例)

    1.从网上下载PHPEmailer: 2.确保PHP环境支持sockets扩展,还要开启openssl,如下图: 3.配置QQ邮箱 1.开启SMTP服务 2.验证密保 3.获取授权码(这个就是IMAP ...

  8. 使用phpmailer发送邮件(以QQ邮箱为例)

    <?php   include("class/class.phpmailer.php"); //下载phpmailer并include两个文件  include(" ...

  9. java邮件发送(以163邮箱为例)

    1.首先应该开通163邮箱的smtp和pop3,得到授权码 2.其次建立一个web项目,否则需要倒jar包mail.jar 3.创建一个类 4.注意:邮件内容必须为正式话语,否则系统会认为是垃圾邮件而 ...

随机推荐

  1. 题解【AcWing1089】烽火传递

    题面 单调队列优化 DP 模板题. 我们考虑设 \(dp_{i}\) 表示从 \(1\) 到 \(i\) 能够准确传递情报,且第 \(i\) 个烽火台发出信号的最小费用. 转移方程不难得出:\(dp_ ...

  2. 获取URL地址参数方法

    //获取url参数 getQueryVariable(variable){ var query =decodeURIComponent(window.location.search.substring ...

  3. 关于SkinTextBox中SkinTxt的事件使用

    SkinTxt的事件中的事件不能像一般的事件那样在属性中直接双击生成,它里面的事件都需要进行一定的转换间接使用,具体用法如下: 1.手动编写事件需要做的操作的方法 public void txtCod ...

  4. DataGridView只显示数据源中绑定的字段

    场景: 由于环境需要,在获取数据源的时候会获取多于DataGridView中绑定的字段,若不做任何处理,直接将数据源绑定到DataGridView上面,DataGridView就会将数据源中没有绑定的 ...

  5. vue 脚手架使用路由

    概念: 后端路由: 后端处理URL和页面之间的映射关系 前端发展阶段: 1.后端渲染阶段(以jsp,php为代表,其特点为html代码和后端语言代码混写在一起 2.前后端分离阶段(随着ajax的兴起, ...

  6. Hadoop学习之路(4)Intelij+Maven搭建Hadoop项目

    1创建工程 点击project--Maven--next 2通过maven导入项目依赖jar包 (1)设置maven自动导入依赖jar包 勾选 Import Maven projects automa ...

  7. centos6离线安装apache2.4

    在/usr/local中新建文件夹 Apache2.4,将httpd安装包放入该文件夹, 解压:tar xvf httpd-2.4.41.tar.gz 进入httpd-2.4.41文件夹中,对Apac ...

  8. Invalid Native Object

    发现是因为没有addChild到父节点上引起的

  9. meet in the middle 折半搜索 刷题记录

    复杂度分析 假设本来是n层,本来复杂度是O(2^n),如果meet in middle那就是n/2层,那复杂度变为O( 2^(n/2) ),跟原来的复杂度相比就相当于开了个方 比如如果n=40那爆搜2 ...

  10. 关于在Ubuntu中无法使用tree命令的原因

    初学linux系统的时候使用的是Ubuntu的操作系统,边看视频边学习,却发现很多命令行在自己使用的时候没有效果,只会盲目的百度,后面回过头来仔细一看才发现,原来终端早就给你答案了,只是自己一看到英语 ...