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}
    

      

  • 相关阅读:
    Vsftpd 3.0.2 正式版发布
    Putdb WebBuilder 6.5 正式版本发布
    SoaBox 1.1.6 GA 发布,SOA 模拟环境
    pynag 0.4.6 发布,Nagios配置和插件管理
    Percona Playback 0.4,MySQL 负荷回放工具
    xombrero 1.3.1 发布,微型 Web 浏览器
    Hypertable 0.9.6.4 发布,分布式数据库
    libmemcached 1.0.11 发布
    CryptoHeaven 3.7 发布,安全邮件解决方案
    Android Activity生命周期
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/7508485.html
Copyright © 2011-2022 走看看