Centos7 Zabbix3.4邮件告警配置(解决邮件内容为xx.bin附件问题)

 更新时间:2021年5月7日 16:35  点击:1604

一、添加监控Linux主机

1、配置-主机-创建主机

2、填写信息

3、添加模板

4、查看状态

二、配置邮箱

系统环境:

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 

1、安装邮件发送工具mailx

如果安装了其他邮件发送工具,先关闭

service sendmail stop ##关闭sendmail
systemctl disable sendmail.service ##禁止开机启动sendmail
service postfix stop ##关闭postfix
systemctl disable postfix.service ##禁止开机启动postfix
[root@localhost ~]# yum install mailx

2、配置Zabbix服务端外部邮箱,打开文件vim /etc/mail.rc 如果mail.rc文件没有,就手动创建,然后添加如下内容:

[root@localhost ~]# vim /etc/mail.rc

set sendcharsets=iso-8859-1,utf-8
set from=xxx@163.com
set smtp=smtp.163.com #163邮箱要开启smtp授权
set smtp-auth-user=xxx@163.com #认证用户
set smtp-auth-password=xxx #认证密码

3、测试邮件发送

[root@localhost ~]# echo "zabbix test mail" | mail -s "zabbix" xxx@163.com

4、编写发送邮件脚本

1)安装dos2unix转换工具( 解决发出的邮件是xx.bin附件格式的问题 ),(7.5.1804这个目录名会更变动)如果这里的下载链接失效就到阿里官网查找对应文件

[root@localhost ~]# rpm -ivh https://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm

获取https://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm

准备中...                          ################################# [100%]

正在升级/安装...

   1:dos2unix-6.0.3-7.el7             ################################# [100%]

如下接受邮件显示,无法显示文字

2)修改邮件发送脚本内容

为什么我们会在这个路径下面创建这个脚本呢,这是在我们的zabbix_serber.conf文件中配置的
AlertScriptsPath=/usr/lib/zabbix/alertscripts

所以你不想将这个脚本放在这个目录下面,需要修改服务端的配置文件中的AlertScriptsPath的值

[root@localhost ~]# vim /usr/lib/zabbix/alertscripts/sendmail.sh
#!/bin/bash 

#export.UTF-8 #解决发送的中文变成了乱码的问题 
FILE=/tmp/mailtmp.txt 
echo "$3" >$FILE 
dos2unix -k $FILE #解决了发送的邮件内容变成附件的问题。 

/bin/mail -s "$2" $1 < $FILE

3)创建临时文件并授权,这里确保你的用户存在zabbix

[root@localhost ~]# touch /tmp/mailtmp.txt
[root@localhost ~]# chown zabbix.zabbix /tmp/mailtmp.txt

4)上面的这三个参数是接收从Web页面传递的信息:

$1:收件人邮箱地址;
$2:邮件标题;
$3:邮件内容

5)给脚本添加权限,要不发生告警的时候邮件无法正常发送出去

[root@localhost ~]# chmod 755 /usr/lib/zabbix/alertscripts/sendmail.sh 

5、管理-报警媒介类型-创建媒体类型

6、填写内容

添加以下3个参数,分别对应sendmail.sh脚本需要的3个参数:收件人地址、主题、详细内容

 {ALERT.SENDTO}
 {ALERT.SUBJECT}
 {ALERT.MESSAGE}

如果在3.0中不添加这三个参数会报错,因为在3.0以后zabbix允许自定义参数了,所以不会默认传递参数,在2.0的时候会默认传递三个参数,所以在3.0如果不写这三个参数会报错。

7、给用户添加报警媒介

8、设置告警条件:配置-动作-创建动作

1)设置条件和名称

2)填写接收人,默认信息,用户是刚填写好的接收邮件人,MyEmail也是刚创建的

故障告警:{TRIGGER.STATUS}: {TRIGGER.NAME} 
告警主机:{HOST.NAME} 
主机地址:{HOST.IP} 
告警时间:{EVENT.DATE} {EVENT.TIME} 
告警等级:{TRIGGER.SEVERITY} 
告警信息:{TRIGGER.NAME} 
问题详情:{ITEM.NAME}:{ITEM.VALUE} 
事件代码:{EVENT.ID} 

解释:默认的步骤是1-1,也即是从1开始到1结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给Admin用户和zabbix administrator组。假如故障持续了1个小时,它也只发送一次。如果改成1-0,0是表示不限制.无限发送 间隔就是默认持续时间60秒。那么一个小时,就会发送60封邮件。

3)恢复操作

故障解除:{TRIGGER.STATUS}: {TRIGGER.NAME} 
恢复主机:{HOST.NAME} 
主机地址:{HOST.IP} 
恢复时间:{EVENT.DATE} {EVENT.TIME} 
恢复等级:{TRIGGER.SEVERITY} 
恢复信息:{TRIGGER.NAME} 
问题详情:{ITEM.NAME}:{ITEM.VALUE} 
事件代码:{EVENT.ID}


到这我们的邮件报警配置就完成了,这是只要我们设置的触发器触发,就会自动给我发送报警邮件。

9、测试邮件告警

1)打开触发器

2)可以将zabbix自带的模板中的对可用内存的监控中的触发器的临界值改为大于20,进入模板列表

改之后

3)修改更新时间,使其更快检测

4)查看告警

5)邮箱确认

如果发送邮件有问题就重启服务端和zabbix-server 和httpd服务,客户端重启zabbix-agent服务

[!--infotagslink--]

相关文章

  • php邮件发送的两种方式

    这篇文章研究的主要内容就是使用PHP来发送电子邮件,总结为以下两种方法:一、使用PHP内置的mail()函数<&#63;php $to = "test@163.com"; //收件人 $subject = "Test"; //主题 $message = "This is a test mail!"; //正文...2015-10-30
  • c# 实现发送邮件的功能

    这篇文章主要介绍了c# 如何实现发送邮件的功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • php邮件发送的两种方式

    这篇文章研究的主要内容就是使用PHP来发送电子邮件,总结为以下两种方法:一、使用PHP内置的mail()函数<&#63;php $to = "test@163.com"; //收件人 $subject = "Test"; //主题 $message = "This is a test mail!"; //正文...2015-10-30
  • c#使用netmail方式发送邮件示例

    这篇文章主要介绍了c#使用netmail方式发送邮件的示例,大家参考使用吧...2020-06-25
  • PHPMailer在SAE上无法发送邮件的解决方法

    PHPMailer在SAE上无法发送邮件怎么回事呢,我们以前在php5.2.7版本中使用了PHPMailer是可以发,但移到sae中发现无法发邮件了,那么此问题如何解决 在SAE上直接用5.2.7...2016-11-25
  • CentOS7.2 安装 MongoDB 3.4的教程

    这篇文章主要介绍了CentOS7.2 安装 MongoDB 3.4的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • node.js 基于 STMP 协议和 EWS 协议发送邮件

    这篇文章主要介绍了node.js 基于 STMP 协议和 EWS 协议发送邮件的示例,帮助大家更好的理解和使用node.js,感兴趣的朋友可以了解下...2021-02-15
  • 整理几个android后台发送邮件的方法

    本文我们整理了三个android后台发送邮件的方法及示例,第一个是不借助Intent在android后台发送Email,第二个是用在收集应用的异常信息,第三个是分享一个android后台发送邮...2016-09-20
  • 网上找到的两个PHP发送邮件的例子,很不错,贴出来给初学者参考吧(不知道是否有兄弟曾贴过),呵呵(2

    Advanced Example Here we will show the full capabilities of the PHP mail function. PHP Code: <?php echo "<html><body>"; $recipient = "Kris Arndt <karn@nu...2016-11-25
  • Perl中使用MIME::Lite发送邮件实例

    这篇文章主要介绍了Perl中使用MIME::Lite发送邮件实例,本文介绍了使用sendmail方式发送、发送HTML格式邮件、smtp方式发送邮件等内容,需要的朋友可以参考下...2020-06-29
  • Delphi7中群发Email邮件的方法

    这篇文章主要介绍了Delphi7中群发Email邮件的方法,涉及邮件服务器软件的使用,电子邮件的判断与发送功能的实现,是非常实用的技巧,需要的朋友可以参考下...2020-06-30
  • PHP利用Jmail组件实现发送邮件

    学过asp的朋友可能知道jmail组件是使用在asp中一个常用的邮箱发送功能,在php中如果想调用jmail功能我们需要使用com组件来操作。 我们先来介绍格式 代码如...2016-11-25
  • phpMailer 发送邮件

    //原创:www.111cn.net 注明:转载说明来处www.111cn.net // 昨天听一网友说用php 里面的mail发邮件发不出去,我想一般都是发不了的,现在大多数据邮件提供商都不准那样了...2016-11-25
  • php中利用curl smtp发送邮件实例

    本文章来介绍人一下关于与我们不同的发送邮件的方法我们来利用php curl stmp来实现邮件的发送程序。 $ telnet 邮箱SMTP服务地址 25 Trying 邮箱服务IP地址......2016-11-25
  • C#编程实现发送邮件的方法(可添加附件)

    这篇文章主要介绍了C#编程实现发送邮件的方法,具备添加附件的功能,涉及C#文件传输及邮件发送的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • CentOS7下安装python3.6.8的教程详解

    这篇文章主要介绍了CentOS7下安装python3.6.8的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-04-30
  • php定时发送邮件

    <?php // 请求 PHPmailer类 文件 require_once("class.phpmailer.php"); //发送Email函数 function smtp_mail ( $sendto_email, $subject, $body, $extra_hd...2016-11-25
  • C# Email发送邮件 对方打开邮件可获得提醒

    这篇文章主要为大家详细介绍了C# Email发送邮件功能,对方打开通知你,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 用PHP发送有附件的电子邮件

    我经常听到这样一个问题:"我有一个从网站发来的合同。我如何给通过表单发送的电子邮件增加一个附件呢?" 首先我要说的是要做到这个没有什么简单的办法。你要很好的理解PH...2016-11-25
  • Drupal实现邮件订阅推送系统的解决方案

    用Drupal如何做一个邮件订阅推送系统? 本文我们将提供解决方案,用drupal搭建一个邮件推送系统,实现用户订阅邮件的发送。 电子邮件营销称为EDM,即Email Direct Marke...2016-11-25