這個國內(nèi)也有一些第三方的廠商在用,比如 dnspod 的 url 回調(diào)和監(jiān)控寶的 url 回調(diào)!
有人開源了一個腳本,監(jiān)控寶的 url 回調(diào),可以聯(lián)合 dnspod 的 api 接口??梢蕴幚懋?dāng) ip-A 的 web 死掉的時候,dns 記錄切換到 ip-B 上。 當(dāng)然這只是個小應(yīng)用罷了,但不能不說,這個想法確實不錯。 我這邊也實現(xiàn)了類似方式。
所謂的 URL 回調(diào)功能,您可以讓告警通知發(fā)送到您指定的 URL,使你能更加靈活處理告警消息。 打個比方,有個服務(wù)器的 nginx 進(jìn)程死掉了,這個時候 nagios 監(jiān)控到了這個情況,然后調(diào)用了我這邊的接口,我這邊接到的 post 數(shù)據(jù),不僅發(fā)郵件,而且會根據(jù)注冊事件的情況,進(jìn)行處理。 如果注冊了一個遠(yuǎn)程 nginx 重啟的事項,我這邊就遠(yuǎn)程 paramiko 或者是 saltstack 過去重啟該進(jìn)程 !?。?/p>
http://wiki.jikexueyuan.com/project/python-actual-combat/images/57.jpg" alt="pic" />
每個業(yè)務(wù)部門其實都想自己統(tǒng)計 error 情況,但是監(jiān)控平臺一般是在基礎(chǔ)監(jiān)控部門手里掌控者,又不太方便做部署,這個時候,url 回調(diào)是個好方法。我會把每次告警的信息不僅推到你的 mail 和手機(jī)上,而且會給你的 url 地址做 webhook。你服務(wù)端接受認(rèn)證后的 url 地址后,會有相應(yīng)的措施,比如調(diào)用 saltsatck 來進(jìn)行處理特定的主機(jī),比如插入到庫里面,自己做報表統(tǒng)計,根據(jù)來著的信息做自動化處理。
只是個人的想法而已 ~
在監(jiān)控系統(tǒng)的體系下,比如有 nagios,zabbix 專業(yè)監(jiān)控系統(tǒng)。 咱們還是用例子說話: 監(jiān)控 mysql 從是否高延遲,嚴(yán)重不同步問題的時候,咱們一般是在 nagios 里加載監(jiān)控獲取判斷從延遲的腳本,以及在某個節(jié)點上做處理腳本【腳本的內(nèi)容是 while get 每個 mysql 從情況,高延遲的那臺在負(fù)載群里面踢出去】,這樣算的話是兩個腳本了。
如果利用 url 回調(diào),可以用處理腳本,這個腳本也只是當(dāng)觸發(fā) url 回調(diào)的時候,才執(zhí)行才處理的。避免了處理腳本沒完沒了的去判斷和獲取狀態(tài)。要是監(jiān)控一些統(tǒng)計壓力大的服務(wù),那就有點悲催了。
當(dāng)然這樣也會有些問題的,比如 web 死掉的話,他無法接受 url 回調(diào),另一方面 開發(fā)部也不想調(diào)用系統(tǒng)層面的外部命令,畢竟責(zé)任是個問題。
下面是我寫的 url 回調(diào)的 demo,等有機(jī)會上線供大神們測試下。
第一版的時候,沒有定義 post 的方式,以及回調(diào)結(jié)果的查看。
http://wiki.jikexueyuan.com/project/python-actual-combat/images/58.jpg" alt="pic" />
第二版做了,get 和 post 的方式,返回結(jié)果的驗證。
http://wiki.jikexueyuan.com/project/python-actual-combat/images/59.jpg" alt="pic" />
下面是平臺的 demo ~ 我想說的是,現(xiàn)在好多公司的告警信息都沒有統(tǒng)計,隨意的調(diào)用 smtp 發(fā)郵件,而不知道發(fā)送成功了沒有,每個月發(fā)送了幾次,發(fā)送都是啥內(nèi)容。當(dāng)然這些東西在 nagios zabbix 也大體可以看到,但是個人覺得還是綜合到一個管理系統(tǒng)下,管理系統(tǒng)更加直觀。
也有想這么搞的朋友直接提問題就行,我會第一時間給大家解答~
框架:
nginx tornado jquery
http://wiki.jikexueyuan.com/project/python-actual-combat/images/60.jpg" alt="pic" />
http://wiki.jikexueyuan.com/project/python-actual-combat/images/61.jpg" alt="pic" />
此文接上文: http://rfyiamcool.blog.51cto.com/1030776/1332160
有后文,會補上的~
本文出自 “峰云,就她了?!?博客,謝絕轉(zhuǎn)載!