zabbix 實現短信告警

       之前一直調用飛信接口發送告警信息,最近購買了第三方短信接口。所以準備使用接口發送告警。

        短信接口是基於https的摘要認證。https認證還是自己做的,調用接口的時候還需要load證書。感覺超級難用,不管那麼多,先讓它跑起來再說。廢話不多說,先上代碼。


#!/usr/bin/env python
#coding:utf-8

import requests
from requests.auth import HTTPDigestAuth
import json
import argparse


def sendSms(mobile, content, name):
    url = 'https://api.david.com/sms/messages'
    chal = {
        'algorithm': 'MD5', 
        'cnonce': '015b38c9119bbda5', 
        'content-type': 'application/json', 
        'nc': '00000001', 
        'nonce': '1389832695:d3c620a9e645420228c5c7da7d228f8c', 
        'qop': 'auth',
        'realm': 'api.david.com', 
        'response': '07f0d429dffed172f4751ecadd02e68e', 
        'uri': '/sms/messages', 
        'username': '+lw4CNmllLo='}
    
    try:
        data = {"mobile_numbers":[{"mobile":mobile, "name":name}],"content":content}
    except:
        data = {"mobile_numbers":[{"mobile":"xxxxxxxxxxx", "name":name}],"content":content}

    #使用requests post數據給服務器端
    #因爲https證書是第三方自己造的,所以需要導入他們給的pem證書。
    r = requests.post(url, auth=HTTPDigestAuth('+lw4CNmllLo=', 'qmc7pMiSrQXo7Q+lx/6c0A=='), verify='/etc/zabbix/alertscripts/david.com.pem', headers=chal, data=json.dumps(data))
    return r.text

if __name__ == "__main__":
    #mobile  接收信息的電話號碼
    #name    標題
    #content 發送內容
    parser = argparse.ArgumentParser(description='Send sms to user for zabbix alerting')
    parser.add_argument('mobile',action="store", help='The address of the sms that send to user ')
    parser.add_argument('name',action="store", help='The subject of the sms')
    parser.add_argument('content',action="store", help='The content of the sms')
    args = parser.parse_args()
    mobile=args.mobile
    name=args.name
    content=args.content
    logger = mobile+' '+name+' '+content
    sendSms(mobile, content, name)
    
    
#注意:
#1. 腳本所有者爲zabbix:zabbix
#2. 腳本需要有可執行權限

     發送sms告警的腳本已經完成。接下來配置zabbix,使其可以使用該腳本發送短信。

       首先需要創建一個告警"media":


wKioL1TG6zzAvgN-AAJZMQ2tAfE174.jpg       創建一個用戶,將該"media"和用戶進行關聯:

     wKioL1TG63eTtP7jAAMNhuHfu9I722.jpg

  wKiom1TG6qmTPXfgAAOkuFSpKyo614.jpg      創建一個"action",指定用戶進行關聯。當該“action”觸發,發送告警。

  wKiom1TG6wqTi2OYAAOTcQ8Cx7k277.jpgwKiom1TG6xfQIWJsAAMD6uDWW0M341.jpg       zabbix已經配置好了,接下來可以將一臺設備某一項監控項宕掉。觀察是否會觸發trigger,發送告警短信。

       由於時間比較緊,腳本寫的比較簡單,後期還需要完善。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章