环境

  • CentOS7
  • sendEmail 1.56

部署 sendEmail

  • 安装 sendEmail

    1
    2
    
    curl -O http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
    tar zxf sendEmail-v1.56.tar.gz && cp sendEmail-v1.56/sendEmail /usr/local/bin/
  • 查看 zabbix_server.conf 找到告警脚本存放目录,即 AlertScriptsPath,默该目录已存在

  • 在该目录下创建 sendemail.sh,内容如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    #!/bin/bash
    
    recipients="${1//;/ }"
    subject="$2"
    message="$3"
    
    for recipient in $recipients; do
        /usr/local/bin/sendEmail \
            -f <发件人邮箱> \
            -t $recipient \
            -s <发件人邮箱的服务器> \
            -o tls=no \
            -o message-charset=utf8 \
            -xu <发件人邮箱> \
            -xp <发见人邮箱的密码> \
            -u "$subject" \
            -m "$message" \
            -l /var/log/sendEmail.log &
    done
    wait
  • 测试,如果正常收到邮件,则表示脚本正常

    1
    
    ./sendemail.sh person1@email.com;person2@email.com;person3@email.com test_subject test_content

配置 zabbix

  • 登陆 zabbix web,点击“报警媒介类型”-“创建媒体类型”,打开“报警媒介类型”窗口,配置如下
    • 名称: 脚本发邮件报警
    • 类型: 脚本
    • 脚本名称: sendemail.sh #注意这里的名称与上一步创建脚本名称一致
    • 脚本参数:
      • {ALERT.SENDTO}
      • {ALERT.SUBJECT}
      • {ALERT.MESSAGE}
    • 已启用: 启用
  • 点击“添加”完成脚本媒介配置
  • 点击“管理”-“用户”-“admin”-“报警媒介”-“添加”,打开“报警媒介”窗口,配置如下
    • 类型: 脚本发邮件报警
    • 收件人: 一个或多个收件人email,用空格或分号分隔
  • 点击“添加”完成该报警媒介配置
  • 点击“配置”-“动作”-“Report problems to Zabbix administrators”-“操作”,自定义报警信息

测试

  • 触发器被触发后,收件人邮箱收到告警邮件