zoukankan      html  css  js  c++  java
  • Zabbix利用msmtp+mutt发送邮件报警

    Zabbix支持多种报警的方式,其中成本最低、最方便的就是邮件报警的方式了。但是因为它不支持邮件的用户认证,这种方式现在也非常少见,同时安全性也差,如果在本机建邮件服务器的话也容易被误入垃圾邮件。

    现在我们使用163的邮箱或者自己公司内部的邮箱,利用msmtp+mutt完成邮件的报警。(当然也可以利用移动139的邮箱或者联通沃邮箱,可以达到短信通知)

    1.msmtp的安装

    1
    2
    3
    4
    5
    6
    wget http://jaist.dl.sourceforge.net/project/msmtp/msmtp/1.4.32/msmtp-1.4.32.tar.bz2
    tar jxvf msmtp-1.4.32.tar.bz2
    cd msmtp-1.4.32
    mkdir -p /webserver/msmtp/etc
    ./configure --prefix=/webserver/msmtp --sysconfdir=/webserver/msmtp/etc
    make && make install

    2.配置msmtp

    1
    2
    3
    mkdir -p /var/log/zabbix
    touch /var/log/zabbix/msmtp.log
    chown zabbix.zabbix /var/log/zabbix

    vim /webserver/msmtp/etc/msmtprc

    1
    2
    3
    4
    5
    6
    7
    8
    9
        account default
        host smtp.163.com    //SMTP服务器
        port 25
        from zabbix@163.com 
        auth login
        tls off
        user zabbix@163.com   //邮箱用户名
        password zabbix       //邮箱密码
        logfile /var/log/zabbix/msmtp.log     //日志路径

    如果在上面配置的时候没有加上–sysconfdir=/webserver/msmtp/etc选项,msmtp默认读取的是当前用户的主文件夹中(例如root用户则查找/root,zabbix用户则查找/home/zabbix)的.msmtprc文件

    3.测试msmtp

    1
    2
    3
    /webserver/msmtp/bin/msmtp test@test.com
    hello world
    this is a test mail!

    //按Ctrl+D结束即可发送邮件

    查看日志是否正常

    Mar 20 15:01:42 host=smtp.163.com tls=off auth=on user=zabbix@163.com from=zabbix@163.com recipients=test@test.com mailsize=26 smtpstatus=250 smtpmsg='250 Mail OK queued as smtp7,C8CowEB5MVOwkypTKWWWAA–.1291S2 1395299252' exitcode=EX_OK

    4.安装mutt

    1
    yum -y install mutt

    编辑/etc/Muttrc.local文件

    1
    2
    3
    4
    set sendmail="/webserver/msmtp/bin/msmtp"
    set use_from=yes
    set realname="zabbix@163.com"
    set editor="vim"

    5.测试mutt

    1
    echo "helloworld" | mutt -s "test" test@test.com

    //邮件内容为helloworld

    //主题为test

    //如果需要发送多人的话可以继续添加收件人

    //其实这个还可以添加附件 只需要在最后添加 -a /root/test.txt

    //案例:echo "helloworld" | mutt -s "test" a@test.com b@test.com -a /root/test.txt

    6.创建邮件报警脚本

    vim /webserver/zabbix/share/zabbix/alertscripts/email

    1
    2
    #!/bin/bash
    echo "$3" | mutt -s "$2" $1

    对文件进行授权

    1
    2
    chown zabbix.zabbix /webserver/zabbix/share/zabbix/alertscripts/email
    chmod 755  /webserver/zabbix/share/zabbix/alertscripts/email

    7.配置zabbix_server.conf

    报警脚本的位置是由zabbix_server.conf中的参数决定的,权限位置不正确或者权限不对将无法工作

    vim /webserver/zabbix/etc/zabbix_server.conf

    //修改报警脚本路径

    1
    AlertScriptsPath=/webserver/zabbix/share/zabbix/alertscripts

    8.配置zabbix媒体类型

    我这里是直接替换zabbix默认的邮件方式

    wKioL1Mqniyy2PwrAAFqYYLO1Co614.jpg - 1

    然后将Email修改成脚本方式

    wKioL1MqnzCReYxKAAFJEfy3K6Q857.jpg - 2

    然后修改自己的邮件地址,就可以收到报警邮件了.

    wKiom1MqoETDRlgbAAEpm566krA229.jpg - 3

  • 相关阅读:
    oracle拆分逗号分隔字符串 实现split[转]
    Oracle 编译、调用或调试Procedure、Function或Package时卡死问题
    The log sequence numbers 1602631 and 1602631 in ibdata files do not match the log sequence number 2188207 in the ib_logfiles!
    win10下安装pl/sql developer 10.0.5.1710 报错ORA-12154
    Oracle EBS-SQL (INV-5):检查期间拉式物料领用记录数.sql
    Oracle EBS-SQL (INV-4):检查负库存记录数.sql
    Oracle EBS-SQL (WIP-16):检查期间手工下达的车间任务数.sql
    Oracle EBS-SQL (WIP-15):检查车间任务物料未发数量与现有量对照.sql
    Oracle EBS-SQL (WIP-14):检查车间需求与BOM差异对照.sql
    Oracle EBS-SQL (WIP-13):检查任务组件未选MRP净值.sql
  • 原文地址:https://www.cnblogs.com/cdjiangchao/p/3844323.html
Copyright © 2011-2022 走看看