阿里云自定义监控tomcat进程数
阿里云提供自定義監(jiān)控SDK,這有助于我們定制化的根據(jù)自身業(yè)務(wù)來(lái)做監(jiān)控,下面我就根據(jù)業(yè)務(wù)需求來(lái)介紹一個(gè)簡(jiǎn)單的自定義監(jiān)控配置。
阿里提供了2個(gè)版本的自定義監(jiān)控接口:
自定義監(jiān)控SDK(python版) :cms_post.py
自定義監(jiān)控SDK(bash版) :cms_post.sh
下載地址:http://help.aliyun.com/knowledge_detail.htm?knowledgeId=5974901
本文使用shell版本做演示
? ? ? ?這里說(shuō)下我的簡(jiǎn)單需求,我們需要監(jiān)控ECS服務(wù)器中tomcat的進(jìn)程是否存在,如果小于1,就說(shuō)明tomcat進(jìn)程關(guān)閉,然后根據(jù)設(shè)定的報(bào)警規(guī)則報(bào)警。
首先我們需要在阿里云自定義監(jiān)控頁(yè)面建立一個(gè)自定義監(jiān)控,如下圖:
1、添加自定義監(jiān)控
腳本post方法說(shuō)明
post方法中傳入4個(gè)參數(shù),分別為?aliuid,監(jiān)控項(xiàng)名稱(chēng),監(jiān)控項(xiàng)值,字段信息(以下腳本中傳入?yún)?shù))。
最后按照第4部分的說(shuō)明,添加定時(shí)任務(wù)即可。
再次強(qiáng)調(diào)這些參數(shù)的意義,參見(jiàn)云監(jiān)控控制臺(tái)自定義監(jiān)控自定義監(jiān)控項(xiàng)管理
a.命名空間中的數(shù)字串,即是用戶(hù)的aliuid
b. 監(jiān)控項(xiàng)名稱(chēng),即是用戶(hù)創(chuàng)建監(jiān)控項(xiàng)時(shí)填寫(xiě)的名稱(chēng)
c. 監(jiān)控項(xiàng)值,是用戶(hù)上報(bào)到云監(jiān)控的業(yè)務(wù)數(shù)據(jù)
d. ?字段信息,結(jié)合監(jiān)控項(xiàng),表示具體業(yè)務(wù)字段的實(shí)際意義。
????例如字段信息是 ?machineIp,監(jiān)控項(xiàng)名稱(chēng)是 cpuutilization,若當(dāng)前cpu利用率80%,那么在上面的示例中傳入的 參數(shù)分別是 1359099605207770?,cpuutilization,0.8,machineIp=192.168.1.1
2、定制腳本
我制作的調(diào)用自定義SDK的腳本內(nèi)容如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | vi?tomcat_process_check.sh #!/bin/bash ##?This?is?a?monitor?shell?script?for?aliyun?ecs ##?It?is?mainly?used?to?monitor?the?presence?of?the?Tomcat?process ##?Created?in?2015.07.25 ##?Written?by?Edison ##?Version?1.0 export?PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin export?VAUL=$(ps?--user?tomcat?|grep?java?|wc?-l) #export?VAUL=$(ps?aux?--user?deploy?|grep?java?|grep?-E?"a|b|c"|wc?-l) #export?IP=$(ifconfig?|?sed?'/.*inet?addr:/!d;s///;s/?.*//'?|grep?-v?"127.0.0.1"?|sed?-n?"1p") export?HOSTS=$(hostname) #新版監(jiān)控腳本位置自定義 /usr/local/aegis/script/cms_post.sh?1359099605207770?tomcat?$VAUL?java=$HOSTS-tomcat-stop |
給予腳本執(zhí)行權(quán)限
chmod +x cms_post.sh tomcat_process_check.sh
3、配置調(diào)度任務(wù)
3-1新版監(jiān)控(cloudmonitor進(jìn)程):
將腳本放置到任意位置中:
/usr/local/aegis/script/
添加crontab定時(shí)任務(wù)(與云監(jiān)控控制臺(tái)中設(shè)置監(jiān)控項(xiàng)【上報(bào)頻率】保持一致)
* * * * * /bin/bash /usr/local/aegis/script/tomcat_process_check.sh >/dev/null 2>&1
3-2舊版監(jiān)控:如果是利用阿里云監(jiān)控自帶的調(diào)度任務(wù),那么我們需要將腳本放置到制定位置:
/usr/local/aegis/aegis_quartz/libexec/user
然后添加調(diào)度任務(wù),執(zhí)行此命令必須使用絕對(duì)路徑
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /usr/local/aegis/aegis_quartz/aegis_quartz?-e?"AddTask?[0?0/5?*?*?*??] /usr/local/aegis/aegis_quartz/libexec/user/tomcat_process_check.sh" ##刪除 /usr/local/aegis/aegis_quartz/aegis_quartz?-e?"RemoveTask?[0?0/5?*?*?*??] /usr/local/aegis/aegis_quartz/libexec/user/tomcat_process_check.sh" ##查看任務(wù) /usr/local/aegis/aegis_quartz/aegis_quartz?-e?"GetTasks" ##aegis_quartz?幫助 [root@server07?~]#?/usr/local/aegis/aegis_quartz/aegis_quartz?-h Usage:/usr/local/aegis/aegis_quartz/aegis_quartz ???-f??configFile????????????(default:conf/aegis_quartz.conf) ???-c??configFile????????????(only?check?configFile) ???-e?"opType?value"?????????(get?or?set?some?inner?info) ???-v????????????????????????(show?agent?version) ???-h????????????????????????(show?help) about?opType?and?value:? ???SetLogLevel?[error|warn|info|debug]?(set?agent?log?level) ???GetLogLevel????????????(show?agent?log?level) ???GetConfig??????????????(show?config) ???GetTasks???????????????(show?tasks) ???GetTasksJson???????????(show?tasks) ???GetTaskStatus??????????(show?task?status) ???AddTask?"xxx"??????????(add?task) ???RemoveTask?"xxx"???????(remove?task) ???RemoveAllTasks?????????(remove?all?tasks) |
需要用戶(hù)注意的一些事情:
I. aegis_quartz 進(jìn)程請(qǐng)匆停止,系統(tǒng)的監(jiān)控?cái)?shù)據(jù)采集是通過(guò) aegis_quartz 完成
II. aegis_quartz 程序的調(diào)用請(qǐng)使用絕對(duì)路徑,如 linux 環(huán)境下
/usr/local/aegis/aegis_quartz/aegis_quartz
III. aegis_quartz libexec/default 下面的腳本是內(nèi)置的監(jiān)控?cái)?shù)據(jù)采集腳本,請(qǐng)用戶(hù)匆
修改
IV. 用戶(hù)的監(jiān)控?cái)?shù)據(jù)程序只能放在 libexec/user 目錄下面;上面添加任務(wù)與刪除任務(wù)
的示例中,腳本程序的路徑寫(xiě)的即是相對(duì)路徑。因此,用戶(hù)在命令行中的腳本路徑
只需要填寫(xiě)成 user/xxx 即可(其中 xxx,是用戶(hù)的腳本)
V. 關(guān)于任務(wù)的執(zhí)行頻率,是基于標(biāo)準(zhǔn)的 quartz 表達(dá)式,用戶(hù)按照規(guī)范填寫(xiě)即可。腳
本的監(jiān)控?cái)?shù)據(jù)上報(bào)頻率請(qǐng)與云監(jiān)控控制臺(tái)中設(shè)置監(jiān)控項(xiàng)【上報(bào)頻率】保持一致(控
制臺(tái)支持的頻率是 1 分鐘,5 分鐘,15 分鐘),若修改上報(bào)頻率請(qǐng)保持控制臺(tái)與
腳本一致,否則監(jiān)控?cái)?shù)據(jù)處理會(huì)不準(zhǔn)確
如果你發(fā)現(xiàn)不能上報(bào)數(shù)據(jù),可以使用
/usr/local/aegis/aegis_quartz/aegis_quartz?-e?"SetLogLevel?debug"設(shè)置日志級(jí)別,來(lái)查看日志排查問(wèn)題。更多選項(xiàng)請(qǐng)查看 aegis_quartz -h
日志目錄?/usr/local/aegis/aegis_quartz/log
4、配置報(bào)警
然后我們?cè)O(shè)置報(bào)警規(guī)則,在報(bào)警管理如圖:
這里需要注意,字段的值一定要與腳本中字段的值一致,否則即使監(jiān)控的值觸發(fā)了你的報(bào)警規(guī)則,狀態(tài)依然是正常的。
下面就是我收到阿里云的短信報(bào)警信息,上報(bào)頻率5分鐘
【阿里云】您監(jiān)控tomcat的f45966d***e60d在11:10發(fā)生報(bào)警,實(shí)例:(server07-tomcat-stop),值為0個(gè),請(qǐng)登錄云監(jiān)控平臺(tái)查看
【阿里云】您監(jiān)控tomcat的f45966d***e60d在11:15發(fā)生報(bào)警,實(shí)例:(server07-tomcat-stop),值為0個(gè),請(qǐng)登錄云監(jiān)控平臺(tái)查看
配置成功。
本文轉(zhuǎn)自奔跑在路上博客51CTO博客,原文鏈接http://blog.51cto.com/qiangsh/1840371如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
qianghong000
總結(jié)
以上是生活随笔為你收集整理的阿里云自定义监控tomcat进程数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基本ajax交互
- 下一篇: 2.FastJson公司--阿里巴巴开源