配置:
centos:7.5
zabbix-server:5.2
mysql:5.7
zabbix-agent:5.2
阿里云短信服務SDK:2
Python:3.8
1花墩、準備阿里云短信簽名和模板
登錄阿里云平臺董济,搜索短信服務,選擇國內(nèi)服務,點擊“添加簽名”窖梁,如下圖所示
添加完簽名再添加模板酿秸,有不清楚的問阿里服務人員
2、準備key和秘鑰头滔,鼠標放到右上角用戶處,可以看到一個AccessKey管理涎显,入不記得秘鑰可以重新生成
3坤检、下載SDK和python腳本
進入阿里首頁,搜索短信 SDK期吓,如下圖
pip install aliyun-python-sdk-core-v3
可以直接復制代碼早歇,只需要修改以下幾個配置【key的id、秘鑰讨勤、電話號碼箭跳、模板code】
vim duanxin.py
#!/usr/bin/env python
#coding=utf-8
import sys #此處是我自己加的,用來調(diào)用下面的參數(shù)
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
client = AcsClient('<accessKeyId>', '<accessSecret>', 'ap-northeast-1')
request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dysmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SendSms')
request.add_query_param('PhoneNumbers', "%s" %sys.argv[1]) #zabbix傳過來的第一個參數(shù)
#request.add_query_param('PhoneNumbers', "1503871****")
request.add_query_param('SignName', "阿里大于測試專用")
request.add_query_param('TemplateCode', "SMS_209335004")
request.add_query_param('TemplateParam', "{\"remark\": \"%s\"}" %sys.argv[2]) #zabbix傳過來的第二個參數(shù),此處remark為阿里云模板中的變量
#request.add_query_param('TemplateParam', "{\"code\":\"1111\"}")
response = client.do_action(request)
# python2: print(response)
print(str(response, encoding = 'utf-8'))
加執(zhí)行權限:chmod +x duanxin.py
本地測試:
./duanxin.py 183********* test
手機可以正常收到短信潭千,說明腳本沒錯谱姓,接下來配置zabbix-web端
4、配置zabbix報警媒介類型
創(chuàng)建媒介類型
這2個參數(shù)分別對應腳本里的2個參數(shù)刨晴,一個是發(fā)送人的手機號碼屉来,一個是發(fā)送的短信內(nèi)容路翻,短信內(nèi)容可以在Message templates里面定義
告警主機: {HOSTNAME1}
告警時間: {EVENT.DATE} {EVENT.TIME}
告警等級: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
問題詳情: {ITEM.NAME}:{ITEM.VALUE}
當前狀態(tài): {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
因為只傳了2個參,所以沒有配置主題茄靠,感興趣可以自己添加
5茂契、創(chuàng)建報警用戶
報警媒介-類型 選擇我們剛創(chuàng)建的媒介,輸入收件人電話
6慨绳、創(chuàng)建告警動作
這里我選擇所有觸發(fā)條件掉冶,實際情況可以自行選擇
設置接收告警人員
可以自己手動更改一個觸發(fā)器的閾值來主動觸發(fā)告警