阿里云監(jiān)控系統(tǒng)支持用戶自定義監(jiān)控類型,具有極強的監(jiān)控擴展能力,支持用戶自己編寫監(jiān)控插件實現(xiàn)自定義監(jiān)控類型。編寫完后將插件放到Agent安裝目錄下面的scripts目錄下面,如果是linux服務器則是/usr/local/cms/scripts目錄下面。
監(jiān)控插件不管以何種語言編寫,只要是可以直接執(zhí)行就可以,它可以是已編譯成功的可執(zhí)行二進制程序文件(例如: C, C++等),同時也可以是可執(zhí)行腳本文件(例如: shell, Perl, PHP等)。
為了云監(jiān)控插件能夠被云監(jiān)控Agent正確調(diào)用和執(zhí)行,監(jiān)控插件的參數(shù)和退出值必須遵守以下規(guī)則,其中業(yè)務邏輯完全由您決定:
1、云監(jiān)控插件輸出規(guī)范
云監(jiān)控Agent根據(jù)插件的返回值來判斷其狀態(tài)是Ok還是Critical。目前只有Ok和Critical兩種狀態(tài)。
如果是exit(0),則表示其狀態(tài)是OK的。這種狀態(tài)表示插件檢測的結果是正常的,不需要報警。
如果是exit(2),則表示其狀態(tài)是Critical的。這種狀態(tài)表示插件檢測異常,需要報警。
如果云監(jiān)控插件運行完后的退出值不是以上固定值,云監(jiān)控不會做任何處理。
具體的報警信息就是云監(jiān)控插件執(zhí)行時的輸出字符串,它可以完全由您自己決定。
2、云監(jiān)控插件輸入規(guī)范
云監(jiān)控Agent在調(diào)用插件時會向插件傳三個參數(shù)。 您可以不處理這些參數(shù),也可以處理這些參數(shù)。
第一個輸入?yún)?shù)是就是頁面上監(jiān)控項的參數(shù),是由您在頁面上自行輸入的。
第二個輸入?yún)?shù)是報警閾值,是您在頁面上配置的報警閾值。如果您的插件需要閾值,則您的插件里面需要解析閾值,并與閾值比較以決定返回值是0,還是1或2。
第三個輸入?yún)?shù)是超時時間,是您在頁面上選擇的超時時間。這個參數(shù)可以根據(jù)您的需要決定是否處理。如果插件執(zhí)行時間超過這個時間值,云監(jiān)控Agent則會終止這個插件的運行。
3、插件注意事項:
如果插件是用腳本語言寫的話,第一行要有解釋器,否則云監(jiān)控Agent無法執(zhí)行這些插件。比如如果是用shell寫的話,第一行應該是類似這樣的:#!/bin/sh
#!/bin/sh #請注意這個shell的解釋器POLICY_PARAMS=$1 #將第一個參數(shù)接收進來,便于后面處理CRITICAL_PARAMS=$2 #將報警閾值接收進來,后面檢測到的值跟這個閾值相比如,如果大于等于閾值,則exit(1)退出,表示Critical;如果小于閾值,則exit(0)退出,表示OK。TIMEOUT=$3 #將超時時間接收進來,便于后面處理。比如里面調(diào)用wget命令,希望這個命令執(zhí)行超過這個時間后超時,則可以在wget命令中使用$TIMEOUT這個變量………If (Critical) Echo “Critical-The filesystem is readonly.” Exit 1 #異常退出If (OK) Echo “OK-The filesystem is normal.” Exit 0 #正常退出
新聞熱點
疑難解答
圖片精選