• 记录一次zabbix邮件告警搭建过程和问题处理


    (不是一天写成blog,有截图上的时间差)

    流程:

    1.配置zabbix-server服务端mailx,并在zabbix-server.conf配置文件的脚本路径中添加邮件脚本;

    2.配置web界面选项的动作报警媒介类型

    3.在用户中添加告警媒介,设置类型,收件人等选项

    首先,在zabbix-server客户端安装mailx,先停掉postfix

    systemctl stop postfix.service
    yum install mailx -y

    在配置文件最后面编写发送使用的配置邮件:

    vim /etc/mail.rc 

    set bsdcompat set from=yourmail@163.com set smtp=smtp.163.com set smtp-auth-user=yourmail@163.com set smtp-auth-password=163邮箱授权码 set smtp-auth=login

    163邮箱授权码获得方式:

    需要手机发送短信收到之后网页163邮箱确定会会出现一次,记住在添加到配置中去。。

    测试,自己给自己发一下吧:

    echo "yourmail@163.com test" | mailx -s "zabbix-alert" yourmail@163.com 

    测试 成功了!!!

    ===

    创建邮件发送脚本

    先看下zabbix-server配置文件查看下发送脚本的目录

    找到alertscripts目录,

    编写脚本mail.sh,并赋予执行权限x,

    #!/bin/bash
    echo "use mailx to send mail"
    echo "$3" | mail -s "$2" "$1"
    

    OK,,

    配置报警媒介回到zabbix-server 界面,在告警媒介添加新的告警

     

     脚本名称要和配置文件中的一样,,点击测试

     要添加发送的邮箱收告警信息,成功如下图,

     配置动作

    紧接着配置zabbix界面上的动作选项,

    动作选项中,在子选项条件选项中添加对应的触发条件,我设置的是主机web1的nginx宕机为触发条件,也可以添加一个主机组,

     

    操作选项中,消息内容要把需要的报警信息填进去,会在邮件中显示,操作细节必须填写,要设定发送邮件给定的主机或主机组,恢复操作细节也是,但也可以不写,不写在事故恢复时,不会发邮件告诉我事故已经没有了,,

    操作-->消息内容:

    故障{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}

    看下演示:

    然后在用户中添加告警媒介

     当监控主机web1的nginx停掉后,zabbix-server会发送邮件通知。

    ===============================================================

    报错集合:

    1.碰到的错误如图,发送邮件的时候显示以失败,并报错No media defined for user.

     

     原因如图,我在玩配置用户报警媒介的时候类型忘记选择自定义的邮件告警,将类型选择邮件告警,正常发送:

     2.这个也不是错误

    就是收到的邮件是个bin文件,需要下载之后改成txt类型查看,怎么解决?

    解决了!!

    mail.sh脚本配置文件:

    #!/bin/bash
    #export LANG=zh_CN.UTF-8
    
    #dos2unix -k "$3"
    #echo "use mailx to send mail"
    #echo "$3" | mail -s "$2" "$1"
    
    
    #export.UTF-8 ###解决发送的中文变成了乱码的问题 
    #FILE=/tmp/zabbix_mail.txt 
    #echo "$3" >$FILE
    #dos2unix -k $FILE ###解决了发送的邮件内容变成附件的问题。 
    #/usr/bin/mail -s "$2" $1 < $FILE
    SENT_TO=$1
    SENT_SUBJECT=$2
    SENT_CONTENT="/tmp/alert_$$.tmp"
    
    echo "$3">$SENT_CONTENT
    dos2unix $SENT_CONTENT
    mailx -s "SENT_SUBJECT" $SENT_TO<$SENT_CONTENT
    

     

  • 相关阅读:
    VS 2008 和 .NET 3.5 Beta 2 发布了
    搭建.NET 3.0环境
    Expression Studio和Silverlight学习资源、安装问题汇总
    Discuz! NT官方社区
    VS2005中ajax安装指南[转]
    IT人 不要一辈子靠技术生存(转)
    Discuz!NT2.5发布 正式版同步开源
    VS2005下开发Silverlight 1.1翻译加补充
    自动化测试案例
    [原]JavaScript必备知识系列开篇
  • 原文地址:https://www.cnblogs.com/5444de/p/12597656.html
Copyright © 2020-2023  润新知