zabbix-sendemail报警

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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/


[[email protected] ~]tar xvzf sendEmail-v1.56.tar.gz

[[email protected] ~]cp sendEmail-v1.56/sendEmail/sendEmail /usr/local/bin/

[[email protected] ~]chmod 755 /usr/local/bin/sendEmail








二、网易邮箱设置


选择【设置】->【OP3/SMTP】开通POP3/SMTP服务

POP3服务器: pop.163.com

SMTP服务器: smtp.163.com





三、zabbix服务器端发送邮件脚本



[[email protected] ~]mkdir -p /usr/local/zabbix/share/zabbix/alertscripts

[[email protected] ~]vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

重启zabbix server

[[email protected] ~]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=[email protected]     # 用户名,变量值需要自行修改
password=‘zabbix‘             # 密码,变量值需要自行修改
from_email_address=[email protected] # 发件人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






[[email protected] ~]touch /tmp/Email.log

[[email protected] ~]chown zabbix:zabbix /tmp/Email.log

[[email protected] ~]chown zabbix:zabbix /usr/local/zabbix/share/zabbix/alertscripts/mail.sh

[[email protected] ~]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报警的主要内容,如果未能解决你的问题,请参考以下文章

前端页面实现报警器提示音效果

精一伺服驱动器报警代码

163VS2022调试通过海康明眸门禁报警事件中的报警布防C++示例代码

163VS2022调试通过海康明眸门禁报警事件中的报警布防C++示例代码

173VS2022调试通过海康温度报警SDK的C++代码

173VS2022调试通过海康温度报警SDK的C++代码