zabbix3配置短信报警

时间:2024-03-17 16:00:23

需求:在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="xxx"
PASS="1234xxxooxx"

URL="http://10.73.17.10/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)

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

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

三、配置用户的手机号码

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

四、配置告警动作(Action)

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

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

 2、配置告警条件(Conditions)

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

 

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