公共監控報警管理調用平臺

    監控報警是每個運維人員面臨的問題,而報警方式更是多樣化,從原來的人肉報警,飛信,139郵箱,短信貓,短信接口,微信報警,語言報警.帶內,帶外的都有

    起初我們把報警方式整合了一起,通過一個HTTP接口方式報警,監控工具也是多樣化,nagios,zabbix,自定義腳本,而且每次寫接收報警人的時候都需要找他的電話號碼....痛定思痛,我決定重新設計.


一.發送報警

URL:http://alarm.ops.xxx.cn/send/

方法: POST,GET

參數:

描述
to@dba 或 zhangsan 多個收件人使用英文逗號分隔(,) 必填可以發送給dba組,或者 張三 單獨一個人
msg"10.1.1.1 http is error " 必填報警信息,需要url編碼
typesms 或者 wechat 選填 如果不加爲隨機指定報警方式, sms短信 wechat微信

GET 請求方式舉例

Python 代碼

#!/usr/bin/python
#coding=utf-8
import urllib
import urllib2
msg = "hello world"
msg = urllib.quote(msg)  #URL編碼
res = urllib2.urlopen("http://alarm.ops.xxx.cn/send/?to=zhangsan&msg=%s&type=sms" % msg)   #發給單用戶張三
print res.read()
res.close()

shell 代碼

#!/bin/bash
msg="hello  world" #定義報警信息
msg=$(echo $msg|sed 's/ /%20/g') #URL編碼空格轉換爲%20
curl "http://alarm.ops.xxx.cn/send/?to=zhangsan&msg=${msg}&type=sms"   #發給單用戶張三
curl "http://alarm.ops.xxx.cn/send/?to=@dba&msg=${msg}&type=sms"      #發給DBA組所有成員

成功返回:

    OK

錯誤返回爲JSON:

    例如:

    {

    msg"user wanger not found",

    code"-2"

    }

二.獲取用戶信息

URL: http://alarm.ops.xxx.cn/user/<username>/

方法: GET

參數: URI三級目錄的名稱

例如: http://alram.ops.xxx.cn/user/zhangsan/    #查看張三信息

返回:

{

    message"成功",

    code0,

    data:- {

    username"zhangsan",

    wechat"zhangsan655",

    first_name"張三",

    sms"13422211123",

    id2

    }

}


三. 獲取組信息

URL:http://alarm.ops.xxx.cn/group/<groupname>/

 

方法: GET

 

參數: URI三級目錄的名稱

 

例如: http://alarm.ops.xxx.cn/user/sa/    #查看sa組人員名單

返回:

{

    message"成功",

    code0,

    data:- {

    username"張三 王五 趙六 "

    }

}

整個系統爲Python+Django編寫


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