• zabbix3.4 实现sendEmail邮件报警


    zabbix3.4实现sendEmail邮件报警

    转发:https://www.cnblogs.com/pythonal/p/7813948.html

    sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bash

    perl和web站点使用。

    请注意,不是sendmail。我第一次看到这个名字,直接yum install -y sendmail了

    然后下面就蒙圈了。

    下载软件

    wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

    创建目录

    mkdir /usr/local/bin

    解压软件

    tar zxf sendEmail-v1.56.tar.gz -C /usr/src

    进入目录

    cd /usr/src/sendEmail-v1.56

    复制文件,并设置权限

    cp -a sendEmail /usr/local/bin

    chmod +x /usr/local/bin/sendEmail

    安装组件

    yum install perl-Net-SSLeay perl-IO-Socket-SSL -y

    进入zabbix自定义的指定目录

    可以查看zabbix_server.conf配置文件AlertScriptsPath变量是如何定义的。

    cd /usr/local/zabbix/alertscripts/

    编辑脚本

    vim sendEmail.sh

    内容如下:

    复制代码
    #!/bin/bash
    #
    to=$1
    subject=$2
    body=$3
    /usr/local/bin/sendEmail  -f ieee8023@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu ieee8023@163.com -xp xxxxxxx -m "$body"
    复制代码

    说明:

    上面有4个地方我用紫色加粗字体表示了

    a@domain.com 表示发件人邮箱

    smtp.exmail.qq.com 表示邮箱的smtp服务器,因为我是用的腾讯企业邮箱。如果是其他邮箱,需要修改

    password 表示发件人邮箱密码

    编辑完成后,给脚本权限

    chmod +x sendEmail.sh

    chown zabbix.zabbix sendEmail.sh

    手动执行一次脚本,后面的参数分别对应接收人,主题,内容

    ./sendEmail.sh c@domain.com test 123

    登录c@domain.com的账户,查看邮件是否可以收到

    如果脚本执行没有报错,收不到邮件的话,请检查linux网络问题,iptables、selinux是否关闭。

    进入zabbix管理页面

    点击管理->报警媒介类型 点击最右边的创建媒体类型

    输入脚本名称,类型选择脚本

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

    {ALERT.SENDTO}

    {ALERT.SUBJECT}

    {ALERT.MESSAGE}

    解释:很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。

    那是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。

    在2.x版本不存在这个问题,默认会传3个参数。 

    点击Admin用户

    点击添加

    选择sendEmail.sh脚本,输入收件人的邮箱地址

    点击用户群组,点击zabbix administrator后面的调用模式,点击一下,就启用了

    点权限->添加

    选择所有

    点击更新

    点击配置->动作 点击默认的动作

    点击动作->编辑

    修改持续时间为60秒

    修改步骤为3,表示触发3次动作

    选择用户Admin

    选择仅送到sendEmail.sh

    点击更新

    解释:默认的步骤是1-1,也即是从1开始到1结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给Admin用户和zabbix administrator组。

    假如故障持续了1个小时,它也只发送一次。如果改成1-0,0是表示不限制.无限发送

    间隔就是默认持续时间60秒。那么一个小时,就会发送60封邮件。

    如果需要短信报警的话,可以再创建一条新的动作,选择短信脚本。

    下面开始测试邮件报警

    等待几分钟,就会收到邮件报警了

    点击报表->动作日志 可以看到触发动作的次数。只会有3次,除非test主机状态改变,也就是正常的时候,会触发一次,否则不会再触发。

    点击 配置->动作->Report problems to Zabbix administrators

    在默认信息每一行后面添加<br/>

    列如:

    故障消息<br/>
    主机:{HOSTNAME}<br/>
    IP:{IPADDRESS}<br/>
    监控项:{ITEM.NAME}<br/>
    触发器:{TRIGGER.NAME}<br/>
    键值:{ITEM.KEY}:{ITEM.VALUE}<br/>
    时间:{DATE} {TIME}<br/>

    因为我用sendEmail.sh脚本指定格式是html,所以换行就是<br/>

    点击更新

    再添加几台主机

    就这样,邮件报警就写完了

  • 相关阅读:
    C# 类 根据属性名称取属性值
    WebService WCF 契约的解释
    NHibenate xml 数据库配置 说明
    使Spring.NET的IOC容器支持动态加载的程序集
    知识点滴:持久层,DAO,API,DAL,BLL,DLL,csproj,sln
    spring.net nhibernate 分布布式事务(下)
    简明教程 C# Webservice实例
    C# 中 以 &# 打头的 编码 是: html 编码解码地址 转换
    spring.net 结合简单三层实例
    关于行号输出的简单命令
  • 原文地址:https://www.cnblogs.com/zoulixiang/p/9395396.html
Copyright © 2020-2023  润新知