这两天在学习zabbix,在设置邮件报警时遇到了点状况。zabbix web端时间记录显示邮件已发送,sendEmail邮件却发送失败,查看/tmp/22.log日志文件有以下错误日志
Dec 27 18:27:30 chensh sendEmail[5440]: ERROR => You must specify at least o ne recipient via -t, -cc, or -bcc
380 print() on closed filehandle LOGFILE at /usr/local/bin/sendEmail/sendEmail l ine 1136.
收索网上的资料多有不全,经过不懈寻找终于解决了问题,是WEB端没有配置脚本传参的缘故。特此整合下分享给童鞋们,希望后者一切顺利,并谢过前者。
一、安装sendEmail
sendEmail下载地址:
http://caspian.dotconf.net/menu/Software/SendEmail/
[root@chensh ~]tar xvzf sendEmail-v1.56.tar.gz
[root@chensh ~]cp sendEmail-v1.56/sendEmail/sendEmail /usr/local/bin/
[root@chensh ~]chmod
755 /usr/local/bin/sendEmail
二、网易邮箱设置
选择【设置】->【OP3/SMTP】开通POP3/SMTP服务
POP3服务器: pop.163.com
SMTP服务器: smtp.163.com
三、zabbix服务器端发送邮件脚本
[root@chensh ~]mkdir -p /usr/local/zabbix/share/zabbix/alertscripts
[root@chensh ~]vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=
/usr/local/zabbix/share/zabbix/alertscripts
重启zabbix server
[root@chensh ~]vim /usr/local/zabbix/share/zabbix/alertscripts/mail.sh
#!/bin/bash
# 脚本的日志文件
LOGFILE=
"/tmp/Email.log"
:>
"$LOGFILE"
exec
1>
"$LOGFILE"
exec
2>&1
SMTP_server=
‘smtp.163.com‘
# SMTP服务器,变量值需要自行修改
username=
‘zabbix@163.com‘
# 用户名,变量值需要自行修改
password=
‘zabbix‘
# 密码,变量值需要自行修改
from_email_address=
‘zabbix@163.com‘
# 发件人Email地址,变量值需要自行修改
to_email_address=
"$1"
# 收件人Email地址,zabbix传入的第一个参数
message_subject_utf8=
"$2"
# 邮件标题,zabbix传入的第二个参数
message_body_utf8=
"$3"
# 邮件内容,zabbix传入的第三个参数
# 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。
message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -
eq
0 ] && message_subject=
"$message_subject_gb2312"
|| message_subject=
"$message_subject_utf8"
# 转换邮件内容为GB2312,解决收到邮件内容乱码
message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_body_utf8
EOF`
[ $? -
eq
0 ] && message_body=
"$message_body_gb2312"
|| message_body=
"$message_body_utf8"
# 发送邮件
sendEmail=
‘/usr/local/zabbix/share/zabbix/alertscripts/mail.sh‘
set
-x
$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
[root@chensh ~]touch /tmp/Email.log
[root@chensh ~]chown zabbix:zabbix /tmp/Email.log
[root@chensh ~]chown zabbix:zabbix /usr/local/zabbix/share/zabbix/alertscripts/mail.sh
[root@chensh ~]chmod +x /usr/local/zabbix/share/zabbix/alertscripts/mail.sh
四、zabbixWEB配置Email告警方式
选择【Administration】->【Users】,配置user。
选择【Administration】->【Users】,配置Media。
【Administration】->【media types】
【configuration】->【actions】->【actions】
【configuration】->【actions】->【conditions】
【configuration】->【actions】->【operations】
五、测试
关闭agent服务器,查看报警邮箱能否收到报警,有问题请查看/tmp/22.log日志文件解决。
本文出自 “来之火星的你” 博客,谢绝转载!
原文地址:http://10815916.blog.51cto.com/10805916/1886841