zoukankan      html  css  js  c++  java
  • 基于sendEmail的简单zabbix邮件报警

    一.sendmail和sendEmail区别

    sendmail是一款邮件服务器软件(MTA),sendEmail是命令行SMTP邮件客户端(MUA)

    二.senEmail安装

    下载地址:http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

    #sendEmail解压后即可使用
    wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz -P /download
    tar xf /download/sendEmail-v1.56.tar.gz -C /download/tmp
    cp /download/tmp/sendEmail-v1.56/sendEmail /usr/local/bin/
    

    测试能否成功发送邮件

    /usr/local/bin/sendEmail -f "xiami@qsquant.com" -t "26?????877@qq.com" -s "smtp.mxhichina.com" -u "myTest" -o message-content-type=html -o message-charset=utf-8 -xu "xiami@qsquant.com" -xp "Q????234@" -m "hello,this is the test contents"
    #成功后提示下列内容
    Aug 24 14:50:26 sysqsquantop009 sendEmail[12003]: Email was sent successfully!

    *163邮箱、qq邮箱默认没有开启pop3/smtp/imap服务,若发件端为163或qq,执行将会出错,请先开启pop3/smtp/imap服务后再尝试

    命令说明

    /usr/local/bin/sendEmail 命令主程序
    -f ttlsafrom@163.com  发件人邮箱
    -s smtp.163.com       发件人邮箱的smtp服务器
    -u "我是邮件主题"     邮件的标题
    -o message-content-type=html   邮件内容的格式,html表示它是html格式
    -o message-charset=utf8        邮件内容编码
    -xu ttlsafrom@163.com          发件人邮箱的用户名
    -xp 123456               发件人邮箱密码
    -m "我是邮件内容"        邮件的具体内容
    
    --help          使用命令帮助
    命令说明

    三.编写报警邮件发送脚本

    #!/bin/bash
    #export LANG=zh_CN.UTF-8
    to=$1
    subject=$2
    iconv -f UTF-8 -t GB2312 $subject > $subject    #解决foxmail收邮件的时候中文标题乱码
    body=$3
    from=xiami@qsquant.com
    smtp=smtp.mxhichina.com
    
    passwd=Q????234@
    /usr/local/bin/sendEmail  -f "$from" -t "$to" -s "$smtp" -u "$subject" -o message-content-type=html -o message-charset=utf-8 -xu "$from"  -xp "$passwd" -m "$body"
    sendEmail.sh

    #chmod +x /opt/alertscripts/sendEmail.sh

    四.配置zabbix

    4.1 创建一个告警动作(参考笔者上一篇博客第七步http://www.cnblogs.com/xiami-xm/p/7323926.html

    第一步:创建告警媒介操作稍有不同,不用设置smtp服务器,直接用脚本实现

    4.2 设置执行脚本路径

    vim /usr/local/etc/zabbix_server.conf
    AlertScriptsPath=/opt/alertscripts 
    #重启zabbix服务
    #ps -ef |grep zabbix_server|awk '{print $2}'|xargs kill -9
    #/usr/local/sbin/zabbix_server 

    五.测试  

    接收的告警邮件内容不换行怎么办?

    sendEmail.sh脚本指定格式是html,所以用<br/>标签进行换行

     嫌英文别扭的可以改为中文:

    ====================================================
    
    # 默认接收人:
    
    故障{TRIGGER.STATUS},服务器【{HOST.NAME1}】发生【 {TRIGGER.NAME}】故障!
    
    ====================================================
    
    # 默认信息:
    
    告警主机:{HOST.NAME1}<br/>
    
    告警时间:{EVENT.DATE} {EVENT.TIME}<br/>
    
    告警等级:{TRIGGER.SEVERITY}<br/>
    
    告警信息: {TRIGGER.NAME}<br/>
    
    告警项目:{TRIGGER.KEY1}<br/>
    
    问题详情:{ITEM.NAME}:{ITEM.VALUE}<br/>
    
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}<br/>
    
    事件ID:{EVENT.ID}<br/>
    
    ====================================================
    
    # 恢复主旨:
    
    恢复{TRIGGER.STATUS},服务器【{HOST.NAME1}】故障【 {TRIGGER.NAME}】已恢复!
    
    ====================================================
    
    # 恢复信息:
    
    告警主机:{HOST.NAME1}<br/>
    
    告警时间:{EVENT.DATE} {EVENT.TIME}<br/>
    
    告警等级:{TRIGGER.SEVERITY}<br/>
    
    告警信息: {TRIGGER.NAME}<br/>
    
    告警项目:{TRIGGER.KEY1}<br/>
    
    问题详情:{ITEM.NAME}:{ITEM.VALUE}<br/>
    
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}<br/>
    
    事件ID:{EVENT.ID}<br/>
    

      

      

      

  • 相关阅读:
    http状态码
    闭包
    节流和防抖
    继承方式
    array和object对比
    排序算法
    算法题
    汇编 asm 笔记
    FFMPEG 内部 YUV444P016 -> P010
    FFMPEG 内部 YUV444p16LE-> P016LE
  • 原文地址:https://www.cnblogs.com/xiami-xm/p/7423230.html
Copyright © 2011-2022 走看看