zabbix +金笛短信猫告警调用的脚本

本脚本适用于:

zabbix + 金笛短信一体机

zabbix + 金笛短信猫+web中间件


收到短信告警信息如下图所示:


调用的脚本:

注意事项,以下脚本都需要在中间件的系统设置中关闭ssl

bash脚本

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


#!/bin/bash
# 脚本的日志文件
LOGFILE="/tmp/SMS.log"
:>"$LOGFILE"
exec 1>"$LOGFILE"
exec 2>&1
MOBILE_NUMBER=$1 # 手机号码
MESSAGE_UTF8=$3 # 短信内容 $2没有用到
XXD="/usr/bin/xxd"
CURL="/usr/bin/curl"
TIMEOUT=5
# 短信内容要经过URL编码处理
MESSAGE_ENCODE=$(echo "$MESSAGE_UTF8" | ${XXD} -ps | sed 's/(..)/%/g' | tr -d ' ')

# 127.0.0.1需要改为金笛短信一体机的IP
URL="http://127.0.0.1:8060/send?password=1&text=${MESSAGE_ENCODE}&recipient=${MOBILE_NUMBER}&encoding=U"

# Send it
set -x

${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"




注意事项:

脚本要给可执行权限,如下图所示:


python3版本的脚本如下

import sys,requests,urllib

def sendsms(recipient,text):
    #content = urllib.parse.quote_plus(text)
    #如果出现url解析错误,请关闭注释以发送urlencode之后的内容
    content = text
    params = {
    'text' : content,
    'recipient' : recipient,
    'password' : 1,
    'encoding' : 'U',
    }
    print(params)
    post_url='http://127.0.0.1:8060/send'
    resp = requests.get(url=post_url,params=params)    
    resp.encoding = 'utf-8'
    print(resp.text)

if __name__ == '__main__':
    phone = sys.argv[1]
    message = sys.argv[2]
    sendsms(phone,message)
#文档结束


测试方法:

运行

python test.py 13800180018 "你好, 这是我们的短信内容"

如果中间件回复状态显示 UNSENT 即为可以正常使用,此文本说明短信成功进入待发送列表,短信内容是否乱码可以到中间件中查看

附件:
systemSet.png [26.4 ]
  • 这个文档对您有帮助的吗?
  • |