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

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

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


一.發送報警shell

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

方法: POST,GET微信

參數:運維

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

GET 請求方式舉例curl

Python 代碼ide

#!/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編寫

相關文章
相關標籤/搜索