單位內服務器、交換機等通過ZABBIX監控平臺監控管理,配置了郵件和微信都能實作告警功能,但是在配置短信告警功能時候遇到挫折。
Python腳本手動觸發可以收到短信

zabbix告警媒介設定

zabbix服務器動作事件中也顯示告警資訊“已送達”

但是手機就是沒有收到短信,查看阿里云短信平臺,顯示發送資訊數量沒有增加,顯然沒有呼叫阿里平臺介面發送短信,但為什么zabbix服務器動作事件中顯示告警資訊“已送達”。問題出哪一步,是介面代碼沒寫好嗎?
求大神出現知道。
zabbix服務器下,運行腳本放在以下目錄
/usr/lib/zabbix/alertscripts/sendmail.py
[root@localhost alertscripts]# cat sendmail.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
from aliyunsdkcore.client import AcsClient
import uuid
from aliyunsdkcore.profile import region_provider
from aliyunsdkcore.http import method_type as MT
from aliyunsdkcore.http import format_type as FT
import json
try:
reload(sys)
sys.setdefaultencoding('utf8')
except NameError:
pass
except Exception as err:
raise err
# 注意:不要更改
REGION = "cn-hangzhou"
PRODUCT_NAME = "Dysmsapi"
DOMAIN = "dysmsapi.aliyuncs.com"
ACCESS_KEY_ID = "ACCESS-ID" #阿里云短信注冊的ID
ACCESS_KEY_SECRET = "ACCESS-SECRET" #阿里云短信生成密碼
acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):
smsRequest = SendSmsRequest.SendSmsRequest()
# 申請的短信模板編碼,必填
smsRequest.set_TemplateCode(template_code)
# 短信模板變數引數
if template_param is not None:
smsRequest.set_TemplateParam(template_param)
# 設定業務請求流水號,必填。
smsRequest.set_OutId(business_id)
# 短信簽名
smsRequest.set_SignName(sign_name)
# 資料提交方式
# smsRequest.set_method(MT.POST)
# 資料提交格式
# smsRequest.set_accept_format(FT.JSON)
# 短信發送的號碼串列,必填。
smsRequest.set_PhoneNumbers(phone_numbers)
# 呼叫短信發送介面,回傳json
smsResponse = acs_client.do_action_with_exception(smsRequest)
# TODO 業務處理
return smsResponse
if __name__ == '__main__':
__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, "短信簽名", "SMS_193519875", params))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/18235.html
上一篇:go語言
