首页 > 代码库 > zabbix3配置短信报警

zabbix3配置短信报警

需求:在zabbix服务器配置短信报警,当服务出现故障达到预警级别是通过发送短信的形式告诉运维人员,以便及时处理.

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

  我的短信脚本放置位置为 /etc/zabbix/alertscripts,这个必须在/etc/zabbix/zabbix_server.conf配置文件中放开 AlertScriptsPath=/etc/zabbix/alertscripts

  进入/etc/zabbix/alertscripts目录,创建短信告警脚本sendSMS.sh,内容入下:

#!/bin/bash

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


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 接口用户名和秘钥
ACCOUNT="jinrgcxxx"
PASS="Jinr1234xxxooxx"

URL="http://222.73.117.158/msg/HttpBatchSendSM?account=${ACCOUNT}&pswd=${PASS}&mobile=${MOBILE_NUMBER}&msg=${MESSAGE_ENCODE}&needstatus=true"


# Send it
set -x
${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"

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

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

手动测试脚本:

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

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

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

二、在zabbix web界面配置告警方式(Media types)

 

 

参考文档:http://www.sxt.cn/u/756/blog/3198

zabbix3配置短信报警