zabbix实现邮件告警的方法

时间:2021-11-24 02:34:42

根据网络教程实现。zabbix3.4,使用脚本和sendemail。

1.下载并解压缩sendemail到/usr/local/bin下面,修改权限。

下载网址:

sendemail - send email with this free command line email client  http://caspian.dotconf.net/menu/software/sendemail/

修改权限:

chown zabbix:zabbix /usr/local/bin/sendemail

2.进行发邮件测试。

?
1
/usr/local/bin/sendemail -f xxxx@163.com(发件邮箱) -s smtp.163.com -u "邮件标题" -m "邮件内容" -o message-content-type=html -o message-charset=utf8 -xu xxxx@163.com(发件邮箱账号) -xp “网易邮箱授权码” -t “目标邮箱”

3.发邮件测试通过后,进入/usr/local/zabbix/share/zabbix/alertscripts/目录,并新建mail.sh文件,授予权限;

4.mail.sh内容:

?
1
2
3
4
5
#!/bin/bash
to=$1
subject=$2
body=$3
/usr/local/bin/sendemail -o tls=auto -f xxxx@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu xxxx@163.com -xp "邮箱客户端授权码" -m "$body"

5.测试报错

?
1
2
3
4
5
6
7
8
9
10
11
[root@centos7 alertscripts]# ./mail.sh “目标邮箱” test_topic hello_world!
*******************************************************************
 using the default of ssl_verify_mode of ssl_verify_none for client
 is deprecated! please set ssl_verify_mode to ssl_verify_peer
 possibly with ssl_ca_file|ssl_ca_path for verification.
 if you really don't want to verify the certificate and keep the
 connection open to man-in-the-middle attacks please set
 ssl_verify_mode explicitly to ssl_verify_none in your application.
*******************************************************************
 at /usr/local/bin/sendemail line 1906.
invalid ssl_version specified at /usr/share/perl5/vendor_perl/io/socket/ssl.pm line 444.

在sendemail中1906行的内容,从

if (! io::socket::ssl->start_ssl($server, ssl_version => ‘sslv3 tlsv1‘)) {

修改为

if (! io::socket::ssl->start_ssl($server)) {

再次测试,成功。

?
1
2
3
4
5
6
7
8
9
10
11
[root@centos7 alertscripts]# ./mail.sh “目标邮箱” test_topic hello_world!
*******************************************************************
 using the default of ssl_verify_mode of ssl_verify_none for client
 is deprecated! please set ssl_verify_mode to ssl_verify_peer
 possibly with ssl_ca_file|ssl_ca_path for verification.
 if you really don't want to verify the certificate and keep the
 connection open to man-in-the-middle attacks please set
 ssl_verify_mode explicitly to ssl_verify_none in your application.
*******************************************************************
 at /usr/local/bin/sendemail line 1906.
aug 08 15:42:42 wanbu sendemail[25763]: email was sent successfully!

6.zabbix-web配置

在zabbix3.4中,有3处需要配置,actions,media type,users。actions负责判断,发送邮件;media type负责选择脚本,传递参数;users负责明确告警信息发送给谁等信息。

按照官网的介绍配置即可,这部分实在懒得写了。唯一需要注意的是,media type需要添加3个参数,分别是{alert.sendto},{alert.subject},{alert.mesage},分别对于mail.sh中的to、subject和body。

zabbix实现邮件告警的方法

7.最后,点击“reports”-“action log”,可以查看邮件是否发送成功,不成功的原因。

zabbix实现邮件告警的方法

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/zsx0728/article/details/81510017