zoukankan      html  css  js  c++  java
  • zabbix邮件报警设置

    第一、安装邮件发送工具mailx

      这里我选择的是mailx,所以的关闭其他的邮件发送工具

       service sendmail stop #关闭
       chkconfig sendmail off #禁止开机启动
       service postfix stop
       chkconfig postfix  off

       执行安装mailx的命令:yum install mailx

      第二、配置Zabbix服务端外部邮箱 

       打开文件vi /etc/mail.rc 如果mail.rc文件没有,就手动创建 内容如下:

         set sendcharsets=iso-8859-1,utf-8
         set from=xxx@139.com

         set smtp="smtps://smtp.139.com:465"

         set smtp-auth-user=xxx@139.com
         set smtp-auth-password=xxx
         set smtp-auth=login
         set ssl-verify=ignore
         set nss-config-dir=/etc/pki/nssdb

      第三、测试邮件是否可以发出

       echo"zabbix test mail" |mail -s "zabbix" yyy@163.com

      #这时候,邮箱yyy@163.com会收到来自xxx@163.com的测试邮件

      第四、编写发送邮件脚本

      进入下面路径:/usr/local/zabbix/share/zabbix/alertscripts

    创建sendmail.sh文件,内容如下

      #!/bin/bash

    to=$1
    subject=$2
    file="/tmp/mail$RANDOM"
    echo $3 > $file

    sed -i -e 's/ //g' -e 's/ / /g' $file

    date "+%F %T" >> /usr/local/zabbix/share/zabbix/alertscripts/sendmail.log
    echo "$to" "$subject" >> /usr/local/zabbix/share/zabbix/alertscripts/sendmail.log
    cat "$file" >> /usr/local/zabbix/share/zabbix/alertscripts/sendmail.log

    cat "$file" | /bin/mail -s "$subject" "$to"
    rm -f $file

       上面的这个三个参数是接收从web页面中传递过来的,$1:收件人邮箱地址;$2:邮件标题;$3:邮件内容

       为什么我们会在这个路径下面创建这个脚本呢,这是在我们的zabbix_server.conf文件中配置的

      AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

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

      第四、配置web页面

      4.1、创建媒体类型

       

      点击创建媒体类型

     

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

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

      4.2、给用户添加报警媒介

      在这以Admin用户为例 管理—》用户—》点击Admin

       

     点击Admin

     

     4.3、创建动作

     

      填写动作选项 

     

      除了自己填写一个名称以外,其余的都默认就好了。当然也可以修改成中文:参考如下

     默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
     默认信息:
     告警主机:{HOSTNAME1}
     告警时间:{EVENT.DATE}{EVENT.TIME}
     告警等级:{TRIGGER.SEVERITY}
     告警信息: {TRIGGER.NAME}
     告警项目:{TRIGGER.KEY1}
     问题详情:{ITEM.NAME}:{ITEM.VALUE}
     当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
     事件ID:{EVENT.ID}
     恢复信息:打钩
     恢复主旨:恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
     恢复信息:
     告警主机:{HOSTNAME1}
     告警时间:{EVENT.DATE}{EVENT.TIME}
     告警等级:{TRIGGER.SEVERITY}
     告警信息: {TRIGGER.NAME}
     告警项目:{TRIGGER.KEY1}
     问题详情:{ITEM.NAME}:{ITEM.VALUE}
     当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
     事件ID:{EVENT.ID}
     已启用:打钩

      填写条件选项

     

      填写操作详细信息

     

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

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

     测试邮件报警

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

     点击触发器

     点击修改

     

      保存以后 我将每一分钟收到一份报警邮件 内容如下:

      

      

    参考文章:http://blog.csdn.net/hao134838/article/details/57568332

    实例配置:

    [root@zabbix-server ~]# cat /etc/mail.rc |grep -v "^#"
    
    
    set hold
    
    set append
    
    set ask
    
    set crt
    
    set dot
    
    set keep
    
    set emptybox
    
    set indentprefix="> "
    
    set quote
    
    set sendcharsets=iso-8859-1,utf-8
    
    set showname
    
    set showto
    
    set newmail=nopoll
    
    set autocollapse
    
    set markanswered
    
    ignore received in-reply-to message-id references
    ignore mime-version content-transfer-encoding
    
    fwdretain subject date from to
    
    set bsdcompat
    
    
    set from=alert@******.cn
    set smtp="smtps://smtp.exmail.qq.com:465"
    set smtp-auth-user=alert@******.cn
    set smtp-auth-password=B******N
    set smtp-auth=login
    set ssl-verify=ignore
    set nss-config-dir=/etc/pki/nssdb
    

      

    [root@zabbix-server alertscripts]# cat sendmail.sh 
    #!/bin/bash
    
    to=$1
    subject=$2
    file="/tmp/mail$RANDOM"
    echo $3 > $file
    
    sed -i -e 's/ //g' -e 's/
    /
    /g' $file
    
    date "+%F %T" >> /usr/lib/zabbix/alertscripts/sendmail.log
    echo "$to" "$subject" >> /usr/lib/zabbix/alertscripts/sendmail.log
    cat "$file" >> /usr/lib/zabbix/alertscripts/sendmail.log
    
    cat "$file" | /bin/mail -s "$subject" "$to"
    rm -f $file
    

    {HOST.NAME}:{TRIGGER.STATUS}:{TRIGGER.NAME}
    
    告警名称: {HOST.NAME}:{TRIGGER.NAME}
    告警状态: {TRIGGER.STATUS}
    告警级别: {TRIGGER.SEVERITY}
    
    Item values:
    {HOST.NAME}({HOST.IP}) {ITEM.NAME} :{ITEM.VALUE1}
    

      

    已恢复,{HOST.NAME}:{TRIGGER.NAME}
    
    告警名称: {HOST.NAME}:{TRIGGER.NAME}
    告警状态: 已恢复
    告警级别: {TRIGGER.SEVERITY}
    
    Item values:
    {HOST.NAME}({HOST.IP}) {ITEM.NAME} :{ITEM.VALUE1}
    

      

  • 相关阅读:
    石家庄地铁线路查询系统(补)
    构建之法阅读笔记03
    构建之法阅读笔记02
    Day 3-3 内置方法
    Day3-2 函数之递归
    Day3-1 函数
    Day2 列表,元组,字典,集合
    Day1 基础知识
    Day1. Python基础知识
    iptables防火墙配置
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/7508485.html
Copyright © 2011-2022 走看看