当前访客身份:游客 [ 登录  | 注册加入尚学堂]
直播

我来了!

拥有积分:3903
尚学堂雄起!!威武。。。

博客分类

笔记中心

课题中心

提问中心

答题中心

解答题中心

zabbix应用之短信报警

我来了! 发表于 2年前 (2014-09-13 20:43:33)  |  评论(2)  |  阅读次数(13154)| 0 人收藏此文章,   我要收藏   

    在本实验中,短信网关使用了中国网建SMS短信通。不同的服务提供商所开发的短信接口不同,不过大都是http接口,脚本略作修改即可~

效果图如下:

wKiom1QRMEDAQpLQAAGPBYdRFuk324.jpg

下面是配置步骤:

一、zabbix服务器端配置短信脚本

    假如你的zabbix server配置文件zabbix_server.conf中AlertScriptsPath参数的路径为/etc/zabbix/alertscripts,进入/etc/zabbix/alertscripts目录,创建短信告警脚本sendSMS.sh(附件有下载):

#!/bin/bash
#
# Filename:    sendSMS.sh
# Revision:    1.0
# Date:        2014/09/11
# Author:      Qicheng
# Email:
# Website:     http://qicheng0211.blog.51cto.com/
# Description: zabbix短信告警脚本
# Notes:       短信网关使用了中国网建SMS短信通
#

# 脚本的日志文件
LOGFILE="/tmp/SMS.log"
:>"$LOGFILE"
exec 1>"$LOGFILE"
exec 2>&1

# Uid和Key的值需要自行修改,http://www.smschinese.cn/api.shtml
# Uid 网站用户名
# Key 接口秘钥
Uid="xxxxxx"
Key="xxxxxx"

MOBILE_NUMBER=$1    # 手机号码
MESSAGE_UTF8=$3        # 短信内容
XXD="/usr/bin/xxd"
CURL="/usr/bin/curl"
TIMEOUT=5

# 短信内容要经过URL编码处理,除了下面这种方法,也可以用curl的--data-urlencode选项实现。
MESSAGE_ENCODE=$(echo "$MESSAGE_UTF8" | ${XXD} -ps | sed 's/\(..\)/%\1/g' | tr -d '\n')
# SMS API
URL="http://utf8.sms.webchinese.cn/?Uid=${Uid}&Key=${Key}&smsMob=${MOBILE_NUMBER}&smsText=${MESSAGE_ENCODE}"
# Send it
set -x
${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"

    然后执行下面的命令,设置脚本和日志文件权限:

shell# touch /tmp/SMS.log
shell# chown zabbix:zabbix /tmp/SMS.log
shell# chown zabbix:zabbix /etc/zabbix/alertscripts/sendSMS.sh
shell# chmod +x /etc/zabbix/alertscripts/sendSMS.sh

    手动测试脚本:

shell# /etc/zabbix/alertscripts/sendSMS.sh xxxxxxxxxxx "" "尊敬的客户,您的订单已出库发货,正在配送中,请您耐心等待。"

    脚本第一个参数为手机号码;第二个参数不会用到,设为空就行;第三个参数为短信内容。

    注意:短信内容要符合要求,不要发送广告或者聊天短信,否则账户可能会被禁用。实测这种订单类短信是不会被屏蔽的。如果短信接收有很高的延迟,可以联系客服。这不是做广告哦,我测试脚本的时候,晚上发出的zabbix告警短信第二天早上才收到,联系客服后问题解决了~

    脚本执行后,到日志文件/tmp/SMS.log里查看返回值,如果大于0代表发送成功,小于0发送失败。见下图:

wKiom1QRLQ-RfKhgAAJhfREMakU221.jpg

二、配置告警方式(Media types)

    选择【Administration】->【Media types】,创建短信告警方式,如下图:

wKiom1QRND2hktgCAAH9PtA8KS0015.jpg

    注意,"Name"给告警方式起个名字,"Type"选择Script类型,"Script name"填写上面创建的脚本名。

三、配置用户的手机号码

    选择【Administration】->【Users】,进入用户配置界面,在"Media"选项卡中配置用户接收告警的手机号码。点击"Add",在弹出的窗口中输入用户手机号,见下图:

wKioL1QRNgWz2v0KAADamyRwGkc103.jpg

四、配置告警动作(Action)

    选择【Configuration】->【Actions】,进入告警动作配置界面,创建新的action。

    官方资料:https://www.zabbix.com/documentation/2.2/manual/config/notifications/action

    1、配置短信内容(Default message)

wKiom1QROCmDog5UAAF-1mLE7Pw739.jpg

    2、配置告警条件(Conditions)

wKioL1QROEXSwE1wAAGchic1RsM276.jpg

    3、配置告警接收人(Action operations)

wKiom1QROETAZ63lAAMpCueXQKQ240.jpg


分享到:0
关注微信,跟着我们扩展技术视野。每天推送IT新技术文章,每周聚焦一门新技术。微信二维码如下:
微信公众账号:尚学堂(微信号:bjsxt-java)
声明:博客文章版权属于原创作者,受法律保护。如果侵犯了您的权利,请联系管理员,我们将及时删除!
(邮箱:webmaster#sxt.cn(#换为@))
北京总部地址:北京市海淀区西三旗桥东建材城西路85号神州科技园B座三层尚学堂 咨询电话:400-009-1906 010-56233821
Copyright 2007-2015 北京尚学堂科技有限公司 京ICP备13018289号-1 京公网安备11010802015183