由於業務的關係我們用的是阿裡雲的ECS主機,需要對業務進程需要監控,查看後發現阿裡雲提供自定義監控SDK,這有助於我們定製化的根據自身業務來做監控,下麵我就根據業務需求來介紹一個簡單的自定義監控配置 備註:我用的shell腳本用來部署的 業務需求:我們需要監控ECS伺服器中某個進程是否存在,如果小於 ...
由於業務的關係我們用的是阿裡雲的ECS主機,需要對業務進程需要監控,查看後發現阿裡雲提供自定義監控SDK,這有助於我們定製化的根據自身業務來做監控,下麵我就根據業務需求來介紹一個簡單的自定義監控配置
PYTHON腳本下載地址:http://imgs-storage.cdn.aliyuncs.com/help/jiankong/cms_post.sh?spm=5176.7738831.2.2.bELgkj&file=cms_post.sh shell腳本下載地址:http://imgs-storage.cdn.aliyuncs.com/help/jiankong/cms_post.sh?spm=5176.7738831.2.2.bELgkj&file=cms_post.sh
備註:我用的shell腳本用來部署的
業務需求:我們需要監控ECS伺服器中某個進程是否存在,如果小於1,就說明進程關閉,然後根據設定的報警規則報警。
自定義選項
備註:腳本post方法說明
a.命名空間中的數字串,即是用戶的aliuid
b. 監控項名稱,即是用戶創建監控項時填寫的名稱
c. 欄位信息,結合監控項,表示具體業務欄位的實際意義。
腳本分析:
vim dubbo_check.sh
#!/bin/bash #-------------------------------------------- #PATH用來獲取運行命令的路徑 export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin #VAUL用來獲取監控存活數值或狀態 export VAUL=$(ps -ef |grep mysql |grep -w 'usr\/local/mysql\/bin\/mysqld' |grep -v 'grep'|awk '{print $2}' |wc -l) # HOSTS用來獲取你的主機名 export HOSTS=$(hostname) #1腳本位置 #2命名空間中的數字串-即是用戶的aliuid #3即是用戶創建監控項時填寫的名稱 #4欄位信息結合監控項,表示具體業務欄位的實際意義 #這裡需要註意,欄位的值一定要與腳本中欄位的值一致,否則即使監控的值觸發了你的報警規則,狀態依然是正常的。(我用的欄位信息是主機名,因為我的業務和主機名是一樣的,hosts後面的是那個業務報警的狀態,自己定義的) # 1 2 3 4 /usr/local/cloudmonitor/script/cms_post.sh 1421981683758115 test_web $VAUL dubbo=$HOSTS-dubbo-stop
賦予許可權
chmod 777 /usr/local/cloudmonitor/script/cms_post.sh chmod 777 /usr/local/cloudmonitor/script/dubbo_chenk.sh
cloudmonitor監控:
腳本上傳到任意位置即可,我放在 /usr/local/cloudmonitor/script/ (script需要自己建立)cloudmonitor進程如果沒有安裝或啟動是收集不到的。
增加定時任務每分鐘執行一次,這個和上面的上報頻率要保持一致
* * * * * /bin/bash /usr/local/cloudmonitor/script/tomcat_dubbo_check.sh >/dev/null 2>&1
/etc/init.d/crond restart
報警規則:
報警結果
這個時候你的手機、釘釘、旺旺、郵件、就都收到報警信息了。