晓夏

新手菜鸟Linux学习之路

不怕从零开始,只怕从未启程

关于ZABBIX3.0.1脚本报警问题(邮箱及微信)

浏览量:938

前不久zabbix3.0.1版本正式出炉了,现在示警媒介里面的脚本类型需要自己添加$1,$2...$n参数了,不再是之前的局限3个参数了,今天也是溜溜弄了一天,感谢常同学竭尽全力的帮我解决问题。

邮箱告警设置

一、安装sendEmail

# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz   //下载sendEmail源码包

# tar zxf sendEmail-v1.56.tar.gz -C /usr/local/    //解压缩源码包到/usr/local/下

# cd /usr/local/sendEmail-v1.56/    //进入解压后的源码包目录

# ln -s /usr/local/sendEmail-v1.56/sendEmail /usr/bin/sendEmail    //将sendEmail做个软链接


二、开启zabbix_server.conf中的AlertScriptsPath(定义报警脚本路径)

# vim /usr/local/zabbix/etc/zabbix_server.conf(修改zabbix_server的配置文件)
==========修改如下内容===================

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts/    //这个路径随意指定,稍后讲脚本放到这个目录下即可;

=========================================
注意:这里有一点需要注意,这个目录必须是zabbix服务的启动用户


三、编写报警脚本(脚本是网上找的)

# vim sendemail.sh    //名称随意定,放到AlertScriptsPath指定的目录中

=================脚本内容如下=====================
#!/bin/bash
SMTP_server='smtp.163.com'    # SMTP服务器
username='**********@163.com'     # 用户名
password='*********'             # 密码
from_email_address='***********@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/bin/sendEmail'
$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
echo "`date +"%F %T"` send to $to_email_address" >> /var/log/send.log  #将发送结果记录到日志中

===========================================


另一种脚本形式(需要安装mailx,sendmail)

也可以使用这个脚本
# vim sendemail.sh    //名称随意定,放到AlertScriptsPath指定的目录中
==========修改如下内容===================
#!/bin/bash
#export.UTF-8
echo "$3" | sed s/'\r'//g | mail -s "$2" $1

=====================================


添加权限及测试
# chown zabbix.zabbix sendemail.sh        //修改脚本的属主属组

# chmod +x sendemail.sh    //为脚本添加执行权限

# sh sendemail.sh *******@qq.com test  123  //测试脚本是否发送成功,出现sent successfully 表示成功
May 04 18:35:29 localhost sendEmail[57473]: Email was sent successfully!

ok.png


四、在ZABBIX网页中配置报警脚本

1、添加示警媒介

示警类型.png


补.png


2、创建用户并选择示警媒介(请将许可权设置为超级管理员权限)



4.png


3、添加动作(选择触发器)





4、测试(这里我是关闭了之前添加的其他主机的nginx)

完成.png





微信告警设置


关于微信如何设置报警,我找到了一篇很详细的博客,可以按照这个博客进行操作!

http://wuhf2015.blog.51cto.com/8213008/1688614


需要注意的两点,

第一点:必须为企业公众号,只有企业公众号发信量不受到限制。

第二点:在设置脚本时不要忘记加上参数,参数和邮箱的参数一样!



分享:

支付宝

微信