zabbix利用阿里云短信服务添加短信报警

注册阿里云,在短信服务里申请短信签名

签名名称会在脚本中用到。

申请短信模板

模板CODE会在脚本中用到,模板内容要添加参数,即zabbix传来的报警内容。

创建AccessKey 

使用阿里云api需要访问秘钥,在访问控制页面-->用户管理-->新建用户

第一次生成AccessKey时会给你密码,AccessKey ID和密码脚本里会用到。

编写报警脚本

# vim /usr/lib/zabbix/alertscripts/sendSMS.py
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
from aliyunsdkcore.client import AcsClient
import json
import uuid
import sys

reload(sys)
sys.setdefaultencoding('utf-8')

"""
短信产品-发送短信接口
Created on 2017-06-12
"""
REGION = "cn-hangzhou"# 暂时不支持多region
# ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申请的账号信息进行替换
ACCESS_KEY_ID = "你的AccessKey ID"
ACCESS_KEY_SECRET = "你的AccessKey密码"
acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
# 请参考本文档步骤2
def send_sms(business_id, phone_number, sign_name, template_code, template_param=None):
    smsRequest = SendSmsRequest.SendSmsRequest()
    # 申请的短信模板编码,必填
    smsRequest.set_TemplateCode(template_code)
    # 短信模板变量参数,友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
    if template_param is not None:
        smsRequest.set_TemplateParam(template_param)
    # 设置业务请求流水号,必填。
    smsRequest.set_OutId(business_id)
    # 短信签名
    smsRequest.set_SignName(sign_name);
    # 短信发送的号码,必填。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
    smsRequest.set_PhoneNumbers(phone_number)
    # 发送请求
    smsResponse = acs_client.do_action_with_exception(smsRequest)
    return smsResponse
__business_id = uuid.uuid1()
print __business_id
sendto = str(sys.argv[1])     #zabbix传过来的第一个参数
message = str(sys.argv[2])    #zabbix传过来的第二个参数
params = {"message": message} #对应短信模板里设置的参数
params = json.dumps(params)
print send_sms(__business_id, sendto, "你的短信签名", "你的短信模板CODE", params)

zabbix配置

大功告成!

 

转载于:https://www.cnblogs.com/hcl5717/p/7567553.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值