内容纲要
概要描述
Aquila 支持通过webhook 或者 脚本的方式,将告警对接到短信平台。
以下为某银行脚本方式对接短信告警的参考demo。
详细说明
版本要求
Aquila >=9.3.4
登录 Aquila,打开通知策略
这里使用的是脚本告警示例V2(支持sendsms.sh对接短信平台和告警收敛)
其中 脚本路径(节点:kv3) 需要放入短信发送脚本send_msg.py,以及告警推送的执行脚本 sendsms.sh。
将脚本放到 Aquila Insights Server 节点的 /var/lib/transwarp-manager/master/scripts目录中。

send_msg.py 脚本参考如下:
import requests
import hashlib
import json
from datetime import datetime
import urllib.parse
import argparse
def SendMsg(mobile, msg):
"""
发送短信。
:param mobile: 接收短信的手机号
:param msg: 发送的短信内容
:return: 请求结果
"""
# 测试环境
# url = "http://111.11.111.111:8082/sms/v2/std/send_single"
# 生产环境
url = "http://111.11.111.111:8082/sms/v2/std/send_single"
# 用户名
userid = "XXXXX"
# 密码
pwd = "XXXXXX"
# 获取时间戳
now = datetime.now()
timestamp = f"{now.month:02}{now.day:02}{now.hour:02}{now.minute:02}{now.second:02}"
print(timestamp)
# 字符串
token_str = userid + "00000000" + pwd + timestamp
# MD5加密
md5 = hashlib.md5()
md5.update(token_str.encode('utf-8'))
md5_str = md5.hexdigest()
print(md5_str)
print(len(md5_str))
# 发送内容编码
msg = msg.encode('UTF-8')
content = urllib.parse.urlencode({"par": msg}).split("=")[1]
print(content)
# return
data = {
"userid": userid,
"pwd": md5_str,
"mobile": mobile,
"content": content,
"timestamp": timestamp
}
js_data = json.dumps(data)
print(data)
headers = {"Content-Type": "application/json"}
resp = requests.post(url, headers=headers, data=js_data).json()
print(resp)
#mobile = "186……"
#msg = "【公务卡月报统计】: 流程运行成功.请到后管系统中查看!"
#SendMsg(mobile, msg)
if __name__ == "__main__":
# 配置命令行参数解析
parser = argparse.ArgumentParser(description="发送短信脚本")
parser.add_argument("--mobile", required=True, help="接收短信的手机号")
parser.add_argument("--msg", required=True, help="短信内容")
args = parser.parse_args()
args.msg += " \n\n 拒收请回复R" # 自动拼接
# 调用发送函数
SendMsg(args.mobile, args.msg)
注意:
其中
url = "http://111.11.111.111:8082/sms/v2/std/send_single"
# 用户名
userid = "XXXXX"
# 密码
pwd = "XXXXXX"
为短信平台的接口和用户名密码。
sendsms.sh 脚本参考如下
#!/bin/bash
#TIMESTAMP=date "+%F %T"
#echo $TIMESTAMP $1 $2 >> /var/lib/transwarp-manager/master/scripts/alter.log
python3 /var/lib/transwarp-manager/master/scripts/send_msg.py --mobile 186…… --msg "$1"
注意:
其中
1、–mobile 参数为告警短信的发送对象手机号码;
2、–msg "$1" 参数为告警内容,通过 $1 传递获取。
3、注释的部分为告警内容写入alter.log文件,可以用于检查告警信息以及排除问题。
4、sendsms.sh 脚本需要增加执行权限: chmod +x /var/lib/transwarp-manager/master/scripts/sendsms.sh
打开通知策略 ,推送告警验证
