---
title: "Zabbix 邮件告警"
date: 2019-10-29T21:23:57+08:00
lastmod: 2019-10-29T21:23:57+08:00
keywords: []
tags: ["zabbix", "邮件", "告警"]
categories: ["zabbix"]
---

## 环境
- CentOS7
- sendEmail 1.56

## 部署 sendEmail
- 安装 sendEmail
    ```bash
    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，内容如下：
    ```bash
    #!/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
    ```
- 测试，如果正常收到邮件，则表示脚本正常
    ```bash
    ./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”-“操作”，自定义报警信息

## 测试
- 触发器被触发后，收件人邮箱收到告警邮件

