码迷,mamicode.com
首页 > 其他好文 > 详细

zabbix-sendemail报警

时间:2016-12-28 12:51:04      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:报警   zabbix   sendemail   

这两天在学习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日志文件解决。





打完收工,人品OK的话技术分享


本文出自 “来之火星的你” 博客,谢绝转载!

zabbix-sendemail报警

标签:报警   zabbix   sendemail   

原文地址:http://10815916.blog.51cto.com/10805916/1886841

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!