前言:mysql
這個國內也有一些第三方的廠商在用,好比dnspod的url回調和監控寶的url回調!jquery
有人開源了一個腳本,監控寶的url回調,能夠聯合dnspod的api接口。能夠處理當ip-A的web死掉的時候,dns記錄切換到ip-B上。 固然這只是個小應用罷了,但不能不說,這個想法確實不錯。 我這邊也實現了相似方式。ios
所謂的URL回調功能,您可讓告警通知發送到您指定的URL,使你能更加靈活處理告警消息。 打個比方,有個服務器的nginx進程死掉了,這個時候nagios監控到了這個狀況,而後調用了我這邊的接口,我這邊接到的post數據,不只發郵件,並且會根據註冊事件的狀況,進行處理。 若是註冊了一個遠程nginx重啓的事項,我這邊就遠程paramiko或者是saltstack過去重啓該進程 !!!nginx
怎麼個靈活法:
web
每一個業務部門其實都想本身統計error狀況,可是監控平臺通常是在基礎監控部門手裏掌控者,又不太方便作部署,這個時候,url回調是個好方法。我會把每次告警的信息不只推到你的mail和手機上,並且會給你的url地址作webhook。你服務端接受認證後的url地址後,會有相應的措施,好比調用saltsatck來進行處理特定的主機,好比插入到庫裏面,本身作報表統計,根據來着的信息作自動化處理。sql
關於觸發式的處理:
api
只是我的的想法而已 ~服務器
在監控系統的體系下,好比有nagios,zabbix專業監控系統。 我們仍是用例子說話: 監控mysql從是否高延遲,嚴重不一樣步問題的時候,我們通常是在nagios里加載監控獲取判斷從延遲的腳本,以及在某個節點上作處理腳本【腳本的內容是 while get 每一個mysql從狀況,高延遲的那臺在負載羣裏面踢出去】,這樣算的話是兩個腳本了。
框架
若是利用url回調,能夠用處理腳本,這個腳本也只是當觸發url回調的時候,才執行才處理的。避免了處理腳本沒完沒了的去判斷和獲取狀態。要是監控一些統計壓力大的服務,那就有點悲催了。ide
固然這樣也會有些問題的,好比web死掉的話,他沒法接受url回調,另外一方面 開發部也不想調用系統層面的外部命令,畢竟責任是個問題。
下面是我寫的url回調的demo,等有機會上線供大神們測試下。
初版的時候,沒有定義post的方式,以及回調結果的查看。
第二版作了,get和post的方式,返回結果的驗證。
下面是平臺的demo ~ 我想說的是,如今好多公司的告警信息都沒有統計,隨意的調用smtp發郵件,而不知道發送成功了沒有,每月發送了幾回,發送都是啥內容。固然這些東西在nagios zabbix也大致能夠看到,可是我的以爲仍是綜合到一個管理系統下,管理系統更加直觀。
也有想這麼搞的朋友直接提問題就行,我會第一時間給你們解答~
框架:
nginx tornado jquery
此文接上文: http://rfyiamcool.blog.51cto.com/1030776/1332160
有後文,會補上的~