zoukankan      html  css  js  c++  java
  • Zabbix

    1. 前言

    上一次配置 zabbix 还是 2.4 的版本,这次直接使用 zabbix 4 的版本,变化还是挺大的,将 邮件告警配置记录下来。

    发送邮件主要思路是:触发器 -> 动作 -> 脚本发送邮件

    脚本放置位置,需要在 zabbix_server.conf 里配置,比如我的zabbix 脚本路径:

    AlertScriptsPath=/opt/zabbix/alertscripts
    

     修改完成,记得重启下 zabbix_server 服务。

    mkdir -pv /opt/zabbix/alertscripts
    

    然后就可以在这个目录下编写脚本了,怎么才能将邮件成功发送出去,可以通过 python脚本,但是这里懒得在使用python写发送邮件,直接shell命令发送会简单很多。

    2. 实现shell 发送邮件

    执行下面所有命令:

    wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
    tar zxf sendEmail-v1.56.tar.gz -C /usr/src/
    cd /usr/src/sendEmail-v1.56/
    cp -a sendEmail /usr/local/bin/
    yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
    wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz
    tar zxf perl-5.10.0.tar.gz
    cd perl-5.10.0
    ./configure.gnu -des -Dprefix=/usr/local/perl
    make 
    make install
    mv /usr/bin/perl /usr/bin/perl.bak
    ln -s /usr/local/perl/bin/perl /usr/bin/perl
    

    然后就可以使用 sendMail 发送邮件了,测试如下:

    /usr/local/bin/sendEmail -f 发送方邮箱地址 -t 接收方邮件地址 -s 发送方SMTP服务器 -u "test" -xu 发送方邮箱登录用户名 -xp 发送方邮件服务器登录密码 -m "test-1234567890" -l /var/log/sendmail.log
    

     发送成功,发送的日志会记录到 /var/log/sendmail.log 中,可以自行查看,如果成功了,日志如下:

    … sendEmail[28067]: Email was sent successfully!
    

    邮件测试成功,就可以开始写脚本:

    [root@192.168.1.200 ~]#vim /opt/zabbix/alertscripts/sendmail.sh
    #!/bin/bash
    # Author:hukey
    to=$1
    subject=$2
    body=$3
    user='superman@126.com'
    smtp_server='smtp.126.com'
    password='123456'
    /usr/local/bin/sendEmail  -f $user -t "$to" -s $smtp_server -u "$subject" -o message-content-type=html  -o message-charset=utf8 -xu $user -xp $password -m "$body" >> /var/log/sendmail.log
    

    这里解释下 sendEmail 命令参数:

    $1:收件人邮箱
    $2:标题
    $3:邮件的具体内容
    

    这三个参数,zabbix 触发邮件告警时,需要传参的。

    写完脚本记得给权限,因为 zabbix 是通过 zabbix用户来执行脚本的。

    [root@192.168.1.200 ~]#chown -R zabbix:zabbix /opt/zabbix/alertscripts/sendmail.sh
    [root@192.168.1.200 ~]#touch  /var/log/sendmail.log 
    [root@192.168.1.200 ~]#chown -R zabbix:zabbix /var/log/sendmail.log
    

    3. 页面配置 zabbix 邮件告警

    写完点击更新。

    添加触发器动作

    动作:

    操作:

    默认标题:
    {TRIGGER.STATUS}: {TRIGGER.NAME}
    消息内容:
    <table border="1"  bordercolor="black" cellspacing="0px" cellpadding="4px">
    <tr >
    
    <td>告警主机</td>
    <td bgcolor="#FF3333">{HOSTNAME1}</td>
    </tr>
    
    <tr>
    <td>告警时间</td>
    <td>{EVENT.DATE} {EVENT.TIME}</td>
    </tr>
    
    <tr>
    <td>告警等级</td>
    <td>{TRIGGER.SEVERITY}</td>
    </tr>
    
    <tr>
    <td>告警信息</td>
    <td>{TRIGGER.NAME}</td>
    </tr>
    
    <tr>
    <td>告警项目</td>
    <td>{TRIGGER.KEY1}</td>
    </tr>
    <tr >
    <td>问题详情</td>
    <td bgcolor="#FF3333">{ITEM.NAME}:&nbsp;{ITEM.VALUE}</td>
    </tr>
    <tr>
    <td>当前状态</td>
    <td>{TRIGGER.STATUS}:&nbsp;{ITEM.VALUE1}</td>
    </tr>
    <tr>
    <td>事件ID</td>
    <td>{EVENT.ID}</td>
    </tr>
    
    </table>
    默认标题 和 消息内容

    消息内容是一个html,使用户更清晰的查看告警邮件。

    恢复操作:

     这部分和 操作 类似。

    告警邮件 主机 和 问题详情 是红色  恢复邮件 主机 和问题详情 是绿色

    编写完毕,点击下面的更新。接下来就需要给 superman 这个zabbix 用户添加个人邮箱了。

    到这里,zabbix 4 邮件告警就完成了。 可以尝试 关闭 被监控主机的 zabbix_agent 服务,等待邮件,如下:

    告警邮件:

    告警恢复邮件:

    参考链接:

    https://www.cnblogs.com/topicjie/p/7223121.html

  • 相关阅读:
    swiper.js 点击链接跳转后再次返回到轮播原位置
    KVO和KVC
    XML与HTML的区别
    iOS UIAppearance使用详解
    文件处理
    IOS 四种数据永久保存的方式
    UIImage图片处理(更改颜色,修改透明度,缩小,合并图片)
    从一个视图控制器切换到另一个视图控制器的几种方式
    NSString的常用方法
    NSURLRequest和NSURLConnection
  • 原文地址:https://www.cnblogs.com/hukey/p/11528971.html
Copyright © 2011-2022 走看看