阿里雲監控系統支持用戶自定義監控類型,具備極強的監控擴展能力,支持用戶本身編寫監控插件實現自定義監控類型。編寫完後將插件放到Agent安裝目錄下面的scripts目錄下面,若是是linux服務器則是/usr/local/cms/scripts目錄下面。jquery
監控插件無論以何種語言編寫,只要是能夠直接執行就能夠,它能夠是已編譯成功的可執行二進制程序文件(例如: C, C++等),同時也能夠是可執行腳本文件(例如: shell, Perl, PHP等)。linux
爲了雲監控插件可以被雲監控Agent正確調用和執行,監控插件的參數和退出值必須遵照如下規則,其中業務邏輯徹底由您決定:web
雲監控Agent根據插件的返回值來判斷其狀態是Ok仍是Critical。目前只有Ok和Critical兩種狀態。shell
若是是exit(0),則表示其狀態是OK的。這種狀態表示插件檢測的結果是正常的,不須要報警。服務器
若是是exit(2),則表示其狀態是Critical的。這種狀態表示插件檢測異常,須要報警。ide
若是雲監控插件運行完後的退出值不是以上固定值,雲監控不會作任何處理。阿里雲
具體的報警信息就是雲監控插件執行時的輸出字符串,它能夠徹底由您本身決定。spa
雲監控Agent在調用插件時會向插件傳三個參數。 您能夠不處理這些參數,也能夠處理這些參數。插件
第一個輸入參數是就是頁面上監控項的參數,是由您在頁面上自行輸入的。orm
第二個輸入參數是報警閾值,是您在頁面上配置的報警閾值。若是您的插件須要閾值,則您的插件裏面須要解析閾值,並與閾值比較以決定返回值是0,仍是1或2。
第三個輸入參數是超時時間,是您在頁面上選擇的超時時間。這個參數能夠根據您的須要決定是否處理。若是插件執行時間超過這個時間值,雲監控Agent則會終止這個插件的運行。
若是插件是用腳本語言寫的話,第一行要有解釋器,不然雲監控Agent沒法執行這些插件。好比若是是用shell寫的話,第一行應該是相似這樣的:#!/bin/sh
#!/bin/sh #請注意這個shell的解釋器POLICY_PARAMS=$1 #將第一個參數接收進來,便於後面處理CRITICAL_PARAMS=$2 #將報警閾值接收進來,後面檢測到的值跟這個閾值相好比,若是大於等於閾值,則exit(1)退出,表示Critical;若是小於閾值,則exit(0)退出,表示OK。TIMEOUT=$3 #將超時時間接收進來,便於後面處理。好比裏面調用wget命令,但願這個命令執行超過這個時間後超時,則能夠在wget命令中使用$TIMEOUT這個變量………If (Critical) Echo 「Critical-The filesystem is readonly.」 Exit 1 #異常退出If (OK) Echo 「OK-The filesystem is normal.」 Exit 0 #正常退出