zabbix3.2使用sendEmail发送告警邮件

时间:2020-12-17 08:48:33

首先介绍下sendemail,sendEmail是一个免费、轻量级、命令行的SMTP邮件客户端。其实就是个Perl脚本文件。使用简单,不需要大量的配置工作。

尽管他是一个很简单的应用,但是白开在使用过程中还有遇到了很多的问题,下面就一一讲解如何使用。

下载并拷贝

sendemail在网上有很多下载的,自行下载就可以了;
白开用的是这个版本的:
http://download.csdn.net/detail/liang_baikai/9710004
下载好了随便在哪给它解压了

# tar -xvzf sendEmail-v1.56.tar.gz

然后将sendEmail这个Perl脚本文件拷贝到/usr/local/bin/ 下面

# cp sendEmail-v1.56/sendEmail /usr/local/bin/

直接给sendemail 777的权限

# chmod 755 /usr/local/bin/sendEmail

写个运行脚本

zabbix 配置目录位置创建alertscripts目录
并创建脚本

# mkdir /usr/local/zabbix/etc/alertscripts
# vim /usr/local/zabbix/etc/alertscripts/SendEmail.sh

脚本内容:(可以直接拷贝,根据自己的情况修改就好了)

  1 #!/bin/bash
2 #
3 # Filename: SendEmail.sh
4 # Date: 2016/12/12
5 # Author: liang_baikai
6 touch /tmp/liang_baikai.log
7 chown zabbix:zabbix /tmp/liang_baikai.log
8 LOGFILE="/tmp/liang_baikai.log"
9 :>"$LOGFILE"
10 exec 1>"$LOGFILE"
11 exec 2>&1
12
13 SMTP_server='smtp.163.com'
14 username='liang_baikai@163.com'
15 password='XXXXXXXXXXXX'
16 from_email_address='liang_baikai@163.com'
17 to_email_address="$1"
18 message_subject_utf8="$2"
19 message_body_utf8="$3"
20 #
21 #
22 message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
23 $message_subject_utf8
24 EOF`
25 [ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
26 #
27 #
28 message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
29 $message_body_utf8
30 EOF`
31 [ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
32 #
33 #
34 sendEmail='/usr/local/bin/sendEmail'
35 set -x
36 $sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312

说明:
13 SMTP_server='smtp.163.com'
SMTP服务器,需要自行修改为要用的SMTP地址

14 username='liang_baikai@163.com'
这是用户名,需要自行修改为自己的账号

15 password='XXXXXXXXXXXX'
这是密码,需要自行修改为自己的邮箱密码

16 from_email_address='liang_baikai@163.com'
发件人Email地址,需要自行修改

注:如果使用163邮箱,需要先登录163邮箱,在设置里面开启SMTP,然后获取授权码,用这个授权码代替你的密码。

修改zabbix配置文件

# vim /usr/local/zabbix/etc/zabbix_server.conf

这里改一下,改成自己的路径
zabbix3.2使用sendEmail发送告警邮件
重启zabbix_server服务就好了

设置脚本归属与权限

# chown zabbix:zabbix /usr/local/zabbix/etc/alertscripts/SendEmail.sh
# chmod +x /usr/local/zabbix/etc/alertscripts/SendEmail.sh

这里可以发一封测试邮件试试能不能收的到,日志在/tmp/liang_baikai.log这个文件里
这里就不多说了,自己试一下就行了。

zabbix界面上的配置

下面就直接上图吧
用户

zabbix3.2使用sendEmail发送告警邮件

zabbix3.2使用sendEmail发送告警邮件
zabbix3.2使用sendEmail发送告警邮件

报警媒介类型这里注意脚本名称别写错了,还有三个宏别写错了
白开这里就曾把第一个宏写错了一个字母,导致死活收不到邮件

这里解释下:三个宏分别是收件人,邮件标题以及邮件内容
zabbix3.2使用sendEmail发送告警邮件

后面设置动作什么的都比较简单,看着就会的,这里就不多说了。

白开这里已经能成功收到报警邮件了,这个就不贴图了。由于白开水平有限,难免有错误的地方,望不吝赐教。祝大家一切顺利!
zabbix3.2使用sendEmail发送告警邮件